EmuGL: fix GL view position in window on OS X
The code that creates the GL-accelerated screen view wasn't converting the upper-left-relative coordinates used within the emulator to the lower-left coordinates used by the Cocoa APIs on OS X. Since most skins have the screen view centered vertically this often just happened to work. Bug: 5782118 Change-Id: I2f96ee181e850df5676d10a82d86c94421149b40
This commit is contained in:
@@ -36,10 +36,18 @@
|
||||
EGLNativeWindowType createSubWindow(FBNativeWindowType p_window,
|
||||
EGLNativeDisplayType* display_out,
|
||||
int x, int y,int width, int height){
|
||||
NSRect contentRect = NSMakeRect(x, y, width, height);
|
||||
NSWindow *win = (NSWindow *)p_window;
|
||||
if (!win) {
|
||||
return NULL;
|
||||
}
|
||||
|
||||
/* (x,y) assume an upper-left origin, but Cocoa uses a lower-left origin */
|
||||
NSRect content_rect = [win contentRectForFrameRect:[win frame]];
|
||||
int cocoa_y = (int)content_rect.size.height - (y + height);
|
||||
NSRect contentRect = NSMakeRect(x, cocoa_y, width, height);
|
||||
|
||||
NSView *glView = [[EmuGLView alloc] initWithFrame:contentRect];
|
||||
if (glView) {
|
||||
NSWindow *win = (NSWindow *)p_window;
|
||||
[[win contentView] addSubview:glView];
|
||||
[win makeKeyAndOrderFront:nil];
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user