mirror of
https://github.com/JetBrains/JetBrainsRuntime.git
synced 2025-12-21 16:59:41 +01:00
JBR-6696: fix drawableId usage + revert PrinterJob changes (non-appkit thread)
(cherry picked from commit 5229c513e3)
This commit is contained in:
@@ -678,14 +678,8 @@ JNI_COCOA_ENTER(env);
|
|||||||
jobject pageFormatArea = (*env)->CallObjectMethod(env, jthis, jm_getPageFormatArea, page); // AWT_THREADING Safe (!appKit)
|
jobject pageFormatArea = (*env)->CallObjectMethod(env, jthis, jm_getPageFormatArea, page); // AWT_THREADING Safe (!appKit)
|
||||||
CHECK_EXCEPTION();
|
CHECK_EXCEPTION();
|
||||||
|
|
||||||
NSRect rect = JavaToNSRect(env, pageFormatArea);
|
PrinterView* printerView = [[PrinterView alloc] initWithFrame:JavaToNSRect(env, pageFormatArea) withEnv:env withPrinterJob:jthis];
|
||||||
|
[printerView setFirstPage:firstPage lastPage:lastPage];
|
||||||
__block PrinterView *printerView = nil;
|
|
||||||
|
|
||||||
[ThreadUtilities performOnMainThreadWaiting:YES block:^() {
|
|
||||||
printerView = [[PrinterView alloc] initWithFrame:rect withEnv:env withPrinterJob:jthis];
|
|
||||||
[printerView setFirstPage:firstPage lastPage:lastPage];
|
|
||||||
}];
|
|
||||||
|
|
||||||
GET_NSPRINTINFO_METHOD_RETURN(NO)
|
GET_NSPRINTINFO_METHOD_RETURN(NO)
|
||||||
NSPrintInfo* printInfo = (NSPrintInfo*)jlong_to_ptr((*env)->CallLongMethod(env, jthis, sjm_getNSPrintInfo)); // AWT_THREADING Safe (known object)
|
NSPrintInfo* printInfo = (NSPrintInfo*)jlong_to_ptr((*env)->CallLongMethod(env, jthis, sjm_getNSPrintInfo)); // AWT_THREADING Safe (known object)
|
||||||
|
|||||||
@@ -254,9 +254,13 @@ BOOL MTLLayer_isExtraRedrawEnabled() {
|
|||||||
[blitEncoder endEncoding];
|
[blitEncoder endEncoding];
|
||||||
|
|
||||||
BOOL usePresentHandler = NO;
|
BOOL usePresentHandler = NO;
|
||||||
|
NSUInteger drawableId = -1;
|
||||||
|
|
||||||
if (@available(macOS 10.15.4, *)) {
|
if (@available(macOS 10.15.4, *)) {
|
||||||
usePresentHandler = YES;
|
usePresentHandler = YES;
|
||||||
|
if (TRACE_DISPLAY) {
|
||||||
|
drawableId = mtlDrawable.drawableID;
|
||||||
|
}
|
||||||
[self retain];
|
[self retain];
|
||||||
[mtlDrawable addPresentedHandler:^(id <MTLDrawable> drawable) {
|
[mtlDrawable addPresentedHandler:^(id <MTLDrawable> drawable) {
|
||||||
// note: called anyway even if drawable.present() not called!
|
// note: called anyway even if drawable.present() not called!
|
||||||
@@ -301,7 +305,7 @@ BOOL MTLLayer_isExtraRedrawEnabled() {
|
|||||||
if (TRACE_DISPLAY) {
|
if (TRACE_DISPLAY) {
|
||||||
J2dRlsTraceLn(J2D_TRACE_INFO,
|
J2dRlsTraceLn(J2D_TRACE_INFO,
|
||||||
"[%.6lf] MTLLayer.blitTexture: layer[%p] present drawable(%d)",
|
"[%.6lf] MTLLayer.blitTexture: layer[%p] present drawable(%d)",
|
||||||
CACurrentMediaTime(), self, mtlDrawable.drawableID);
|
CACurrentMediaTime(), self, drawableId);
|
||||||
}
|
}
|
||||||
if (isDisplaySyncEnabled()) {
|
if (isDisplaySyncEnabled()) {
|
||||||
[commandBuf presentDrawable:mtlDrawable];
|
[commandBuf presentDrawable:mtlDrawable];
|
||||||
@@ -334,7 +338,7 @@ BOOL MTLLayer_isExtraRedrawEnabled() {
|
|||||||
if (TRACE_DISPLAY) {
|
if (TRACE_DISPLAY) {
|
||||||
J2dRlsTraceLn(J2D_TRACE_INFO,
|
J2dRlsTraceLn(J2D_TRACE_INFO,
|
||||||
"[%.6lf] MTLLayer.blitTexture: layer[%p] commit with drawable(%d)",
|
"[%.6lf] MTLLayer.blitTexture: layer[%p] commit with drawable(%d)",
|
||||||
CACurrentMediaTime(), self, mtlDrawable.drawableID);
|
CACurrentMediaTime(), self, drawableId);
|
||||||
}
|
}
|
||||||
} @finally {
|
} @finally {
|
||||||
// try-finally block to ensure releasing the CPU fence:
|
// try-finally block to ensure releasing the CPU fence:
|
||||||
|
|||||||
Reference in New Issue
Block a user