2007-08-29 Matthew Allum <mallum@openedhand.com>

* clutter/clutter-main.c: (_clutter_do_pick):
        Call glFinish before reading pixels
        * clutter/eglx/clutter-stage-egl.c: (clutter_stage_egl_realize):
        Add missing read surface in making context current.
        Above fixes via Kate Alhola.

        * clutter/glx/clutter-glx.h:
        Add missing filter funcs so there actually exported
This commit is contained in:
Matthew Allum 2007-08-29 19:11:18 +00:00
parent 1ceaf04ac7
commit 818a667836
4 changed files with 22 additions and 1 deletions

View File

@ -1,3 +1,14 @@
2007-08-29 Matthew Allum <mallum@openedhand.com>
* clutter/clutter-main.c: (_clutter_do_pick):
Call glFinish before reading pixels
* clutter/eglx/clutter-stage-egl.c: (clutter_stage_egl_realize):
Add missing read surface in making context current.
Above fixes via Kate Alhola.
* clutter/glx/clutter-glx.h:
Add missing filter funcs so there actually exported
2007-08-24 Matthew Allum <mallum@openedhand.com>
* clutter/clutter-actor.c:

View File

@ -350,6 +350,12 @@ _clutter_do_pick (ClutterStage *stage,
/* Calls should work under both GL and GLES, note GLES needs RGBA */
glGetIntegerv(GL_VIEWPORT, viewport);
/* Below to be safe, particularly on GL ES. an EGL wait call or full
* could be nicer.
*/
glFinish();
glReadPixels(x, viewport[3] - y, 1, 1, GL_RGBA, GL_UNSIGNED_BYTE, pixel);
if (pixel[0] == 0xff && pixel[1] == 0xff && pixel[2] == 0xff)

View File

@ -170,7 +170,7 @@ clutter_stage_egl_realize (ClutterActor *actor)
status = eglMakeCurrent (clutter_eglx_display(),
stage_egl->egl_surface,
EGL_NO_SURFACE,
stage_egl->egl_surface,
stage_egl->egl_context);
if (status != EGL_TRUE)

View File

@ -69,6 +69,10 @@ XVisualInfo *clutter_glx_get_stage_visual (ClutterStage *stage);
gboolean clutter_glx_set_stage_foreign (ClutterStage *stage,
Window xwindow);
void clutter_glx_add_filter (ClutterGLXFilterFunc func, gpointer data);
void clutter_glx_remove_filter (ClutterGLXFilterFunc func,
gpointer data);
G_END_DECLS