aboutsummaryrefslogtreecommitdiffstats
path: root/src/native
diff options
context:
space:
mode:
authorLyubomir Marinov <lyubomir.marinov@jitsi.org>2010-05-10 17:37:26 +0000
committerLyubomir Marinov <lyubomir.marinov@jitsi.org>2010-05-10 17:37:26 +0000
commit8bd683d875d4ff2d66604382140900739d1d4614 (patch)
treee162794983acb965c7e3939bd4ed0db9e1cef70e /src/native
parent8389d8e931594398b55c91798e5eb45dfad5a82b (diff)
downloadjitsi-8bd683d875d4ff2d66604382140900739d1d4614.zip
jitsi-8bd683d875d4ff2d66604382140900739d1d4614.tar.gz
jitsi-8bd683d875d4ff2d66604382140900739d1d4614.tar.bz2
Fixes the locking of the UI upon resizing with the native VideoRenderer on Mac OS X.
Diffstat (limited to 'src/native')
-rw-r--r--src/native/jawtrenderer/JAWTRenderer_MacOSX.m65
1 files changed, 23 insertions, 42 deletions
diff --git a/src/native/jawtrenderer/JAWTRenderer_MacOSX.m b/src/native/jawtrenderer/JAWTRenderer_MacOSX.m
index bc16820..153f87a 100644
--- a/src/native/jawtrenderer/JAWTRenderer_MacOSX.m
+++ b/src/native/jawtrenderer/JAWTRenderer_MacOSX.m
@@ -133,7 +133,6 @@ JAWTRenderer_process
{
JAWTRenderer *renderer;
NSAutoreleasePool *autoreleasePool;
- jboolean repaint;
renderer = (JAWTRenderer *) handle;
autoreleasePool = [[NSAutoreleasePool alloc] init];
@@ -200,27 +199,10 @@ JAWTRenderer_process
}
renderer->width = width;
renderer->height = height;
-
- /*
- * The component needs repainting now. Upon return, a paint of the
- * component will be scheduled. But #paint and #process both want the
- * lock on the renderer and it may turn out that #process will manage to
- * execute once again without #paint being able to depict the current
- * frame. So try to paint now and don't schedule a paint for later.
- */
- if (renderer->view)
- {
- [renderer paint];
- repaint = JNI_FALSE;
- }
- else
- repaint = JNI_TRUE;
}
- else
- repaint = JNI_TRUE;
[autoreleasePool release];
- return repaint;
+ return JNI_TRUE;
}
@implementation JAWTRenderer
@@ -314,31 +296,26 @@ JAWTRenderer_process
- (void)paint
{
- if ([view lockFocusIfCanDraw])
- {
- [glContext makeCurrentContext];
+ [glContext makeCurrentContext];
- // drawRect:
- glClear(GL_COLOR_BUFFER_BIT);
- if (texture)
- {
- glEnable(JAWT_RENDERER_TEXTURE);
- glBegin(GL_QUADS);
- glTexCoord2f(0, 0);
- glVertex2f(-1.0, 1.0);
- glTexCoord2f(width, 0);
- glVertex2f(1.0, 1.0);
- glTexCoord2f(width, height);
- glVertex2f(1.0, -1.0);
- glTexCoord2f(0, height);
- glVertex2f(-1.0, -1.0);
- glEnd();
- glDisable(JAWT_RENDERER_TEXTURE);
- }
- glFlush();
-
- [view unlockFocus];
+ // drawRect:
+ glClear(GL_COLOR_BUFFER_BIT);
+ if (texture)
+ {
+ glEnable(JAWT_RENDERER_TEXTURE);
+ glBegin(GL_QUADS);
+ glTexCoord2f(0, 0);
+ glVertex2f(-1.0, 1.0);
+ glTexCoord2f(width, 0);
+ glVertex2f(1.0, 1.0);
+ glTexCoord2f(width, height);
+ glVertex2f(1.0, -1.0);
+ glTexCoord2f(0, height);
+ glVertex2f(-1.0, -1.0);
+ glEnd();
+ glDisable(JAWT_RENDERER_TEXTURE);
}
+ glFlush();
}
- (void)reshape
@@ -366,6 +343,7 @@ JAWTRenderer_process
{
if (view)
{
+#ifdef JAWT_RENDERER_USE_NSNOTIFICATIONCENTER
NSNotificationCenter *notificationCenter;
notificationCenter = [NSNotificationCenter defaultCenter];
@@ -380,6 +358,7 @@ JAWTRenderer_process
name:NSViewFrameDidChangeNotification
object:view];
}
+#endif /* JAWT_RENDERER_USE_NSNOTIFICATIONCENTER */
[view release];
}
@@ -395,6 +374,7 @@ JAWTRenderer_process
if ([glContext view] != view)
[glContext setView:view];
+#ifdef JAWT_RENDERER_USE_NSNOTIFICATIONCENTER
notificationCenter = [NSNotificationCenter defaultCenter];
if (notificationCenter)
{
@@ -411,6 +391,7 @@ JAWTRenderer_process
name:NSViewFrameDidChangeNotification
object:view];
}
+#endif /* JAWT_RENDERER_USE_NSNOTIFICATIONCENTER */
[self update];
}