[084/906] add a glfilterapp which holds the client draw and reshape callbacks (some "wanted" regressions about the glvideomaker, have been done with this version. Will be fix in next commits)

git-svn-id: svn://svn.wobow.com/GStreamer_playground/gst-plugins-gl@496 93df14bb-0f41-7a43-8087-d3e2a2f0e464
This commit is contained in:
Julien Isorce 2008-06-08 02:19:43 +00:00 committed by Tim-Philipp Müller
parent dc4119eafe
commit 7973568f07
2 changed files with 33 additions and 0 deletions

View file

@ -1332,7 +1332,38 @@ gst_gl_display_set_windowId (GstGLDisplay* display, gulong winId)
display->textureFBOWidth, display->textureFBOHeight, display->textureFBOWidth, display->textureFBOHeight,
winId, winId,
TRUE); TRUE);
}
/* Called by gst_gl elements */
void
gst_gl_display_resetGLcontext (GstGLDisplay* display,
gint glcontext_width, gint glcontext_height)
{
static gint glheight = 0;
gst_gl_display_lock (display);
gst_gl_display_postMessage (GST_GL_DISPLAY_ACTION_DESTROY, display);
g_cond_wait (display->cond_destroy, display->mutex);
gst_gl_display_unlock (display);
if (g_hash_table_size (gst_gl_display_map) == 0)
{
g_thread_join (gst_gl_display_glutThread);
g_print ("Glut thread joined when setting winId\n");
gst_gl_display_glutThread = NULL;
g_async_queue_unref (gst_gl_display_messageQueue);
g_hash_table_unref (gst_gl_display_map);
gst_gl_display_map = NULL;
}
//init opengl context
gst_gl_display_initGLContext (display,
50, glheight++ * (glcontext_height+50) + 50,
glcontext_width, glcontext_height,
display->textureFBOWidth, display->textureFBOHeight,
display->winId,
FALSE);
} }

View file

@ -252,5 +252,7 @@ void gst_gl_display_useFBO (GstGLDisplay* display, gint textureFBOWidth, gint te
void gst_gl_display_rejectFBO (GstGLDisplay* display, guint fbo, void gst_gl_display_rejectFBO (GstGLDisplay* display, guint fbo,
guint depthbuffer, guint texture); guint depthbuffer, guint texture);
void gst_gl_display_set_windowId (GstGLDisplay* display, gulong winId); void gst_gl_display_set_windowId (GstGLDisplay* display, gulong winId);
void gst_gl_display_resetGLcontext (GstGLDisplay* display,
gint glcontext_width, gint glcontext_height);
#endif #endif