From e5f4495ca0a57c438391308752d9354cef9472f8 Mon Sep 17 00:00:00 2001 From: Lior Halphon Date: Wed, 11 Jul 2018 19:46:27 +0300 Subject: [PATCH] Turns out the last Cocoa fix was neither reliable or actually working. --- Cocoa/Document.m | 4 +--- Cocoa/Document.xib | 10 ++++++++-- Cocoa/GBBorderView.h | 5 +++++ Cocoa/GBBorderView.m | 26 ++++++++++++++++++++++++++ Cocoa/GBViewMetal.m | 7 ------- 5 files changed, 40 insertions(+), 12 deletions(-) create mode 100644 Cocoa/GBBorderView.h create mode 100644 Cocoa/GBBorderView.m diff --git a/Cocoa/Document.m b/Cocoa/Document.m index c9205ce..9866064 100644 --- a/Cocoa/Document.m +++ b/Cocoa/Document.m @@ -333,9 +333,7 @@ static void printImage(GB_gameboy_t *gb, uint32_t *image, uint8_t height, NSMutableParagraphStyle *paragraph_style = [[NSMutableParagraphStyle alloc] init]; [paragraph_style setLineSpacing:2]; - - self.mainWindow.contentView.layer.backgroundColor = [[NSColor blackColor] CGColor]; - + self.debuggerSideViewInput.font = [NSFont userFixedPitchFontOfSize:12]; self.debuggerSideViewInput.textColor = [NSColor whiteColor]; self.debuggerSideViewInput.defaultParagraphStyle = paragraph_style; diff --git a/Cocoa/Document.xib b/Cocoa/Document.xib index 5694ecd..88c5275 100644 --- a/Cocoa/Document.xib +++ b/Cocoa/Document.xib @@ -50,10 +50,16 @@ - + - + + + + + + + diff --git a/Cocoa/GBBorderView.h b/Cocoa/GBBorderView.h new file mode 100644 index 0000000..477add1 --- /dev/null +++ b/Cocoa/GBBorderView.h @@ -0,0 +1,5 @@ +#import + +@interface GBBorderView : NSView + +@end diff --git a/Cocoa/GBBorderView.m b/Cocoa/GBBorderView.m new file mode 100644 index 0000000..a5f5e81 --- /dev/null +++ b/Cocoa/GBBorderView.m @@ -0,0 +1,26 @@ +#import "GBBorderView.h" + +@implementation GBBorderView + + +- (void)awakeFromNib +{ + self.wantsLayer = YES; +} + +- (BOOL)wantsUpdateLayer +{ + return YES; +} + +- (void)updateLayer +{ + /* Wonderful, wonderful windowserver(?) bug. Using 0,0,0 here would cause it to render garbage + on fullscreen windows on some High Sierra machines. Any other value, including the one used + here (which is rendered exactly the same due to rounding) works around this bug. */ + self.layer.backgroundColor = [NSColor colorWithCalibratedRed:0 + green:0 + blue:1.0 / 1024.0 + alpha:1.0].CGColor; +} +@end diff --git a/Cocoa/GBViewMetal.m b/Cocoa/GBViewMetal.m index 1c0a86f..34cd50b 100644 --- a/Cocoa/GBViewMetal.m +++ b/Cocoa/GBViewMetal.m @@ -71,13 +71,6 @@ static const vector_float2 rect[] = [self loadShader]; } -- (void)addSubview:(NSView *)view -{ - /* Fixes rounded corners */ - [super addSubview:view]; - [self setWantsLayer:YES]; -} - - (void) loadShader { NSError *error = nil;