Commit fd04552f authored by Ken Thomases's avatar Ken Thomases Committed by Alexandre Julliard

winemac: Move test for valid GL drawable into -[WineContentView addGLContext:].

Improves encapsulation. Avoids a round trip to the main thread.
parent 6d0d018b
......@@ -123,16 +123,11 @@ void macdrv_make_context_current(macdrv_opengl_context c, macdrv_view v)
context.needsUpdate = FALSE;
if (view)
{
__block BOOL viewIsValidDrawable;
macdrv_add_view_opengl_context(v, c);
OnMainThread(^{
viewIsValidDrawable = [[view window] windowNumber] > 0 &&
!NSIsEmptyRect([view visibleRect]);
});
if (viewIsValidDrawable)
if (context.needsUpdate)
{
context.needsUpdate = FALSE;
[context setView:view];
[context setLatentView:nil];
}
......
......@@ -294,8 +294,18 @@ static inline NSUInteger adjusted_modifiers_for_option_behavior(NSUInteger modif
glContexts = [[NSMutableArray alloc] init];
if (!pendingGlContexts)
pendingGlContexts = [[NSMutableArray alloc] init];
[pendingGlContexts addObject:context];
[self setNeedsDisplay:YES];
if ([[self window] windowNumber] > 0 && !NSIsEmptyRect([self visibleRect]))
{
[glContexts addObject:context];
context.needsUpdate = TRUE;
}
else
{
[pendingGlContexts addObject:context];
[self setNeedsDisplay:YES];
}
[(WineWindow*)[self window] updateColorSpace];
}
......@@ -2407,7 +2417,7 @@ void macdrv_add_view_opengl_context(macdrv_view v, macdrv_opengl_context c)
WineContentView* view = (WineContentView*)v;
WineOpenGLContext *context = (WineOpenGLContext*)c;
OnMainThreadAsync(^{
OnMainThread(^{
[view addGLContext:context];
});
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment