2008-06-27 Matthew Allum <mallum@openedhand.com>

* clutter/cogl/gl/cogl.c:
        Temp workaround for 10.4 ATI card OSX folks, see #929
        (Tommi Komulainen)

        Bug 998 - clutter always captures X input events

* clutter/eglx/clutter-stage-egl.c:
        * clutter/glx/clutter-stage-glx.c:
When we disable X event retrival, dont still select for window
events.
This commit is contained in:
Matthew Allum 2008-06-27 23:02:30 +00:00
parent bff2f01712
commit 03d7fdacd6
4 changed files with 81 additions and 35 deletions

View File

@ -1,3 +1,16 @@
2008-06-27 Matthew Allum <mallum@openedhand.com>
* clutter/cogl/gl/cogl.c:
Temp workaround for 10.4 ATI card OSX folks, see #929
(Tommi Komulainen)
Bug 998 - clutter always captures X input events
* clutter/eglx/clutter-stage-egl.c:
* clutter/glx/clutter-stage-glx.c:
When we disable X event retrival, dont still select for window
events.
2008-06-27 Emmanuele Bassi <ebassi@openedhand.com>
* clutter/clutter-event.h:

View File

@ -840,6 +840,32 @@ cogl_setup_viewport (guint width,
GE( glTranslatef (0.0f, -1.0 * height, 0.0f) );
}
#ifdef HAVE_CLUTTER_OSX
static gboolean
really_enable_npot (void)
{
/* OSX backend + ATI Radeon X1600 + NPOT texture + GL_REPEAT seems to crash
* http://bugzilla.openedhand.com/show_bug.cgi?id=929
*
* Temporary workaround until post 0.8 we rejig the features set up a
* little to allow the backend to overide.
*/
const char *gl_renderer;
const char *env_string;
/* Regardless of hardware, allow user to decide. */
env_string = g_getenv ("COGL_ENABLE_NPOT");
if (env_string != NULL)
return env_string[0] == '1';
gl_renderer = (char*)glGetString (GL_RENDERER);
if (strstr (gl_renderer, "ATI Radeon X1600") != NULL)
return FALSE;
return TRUE;
}
#endif
static void
_cogl_features_init ()
{
@ -855,6 +881,9 @@ _cogl_features_init ()
if (cogl_check_extension ("GL_ARB_texture_non_power_of_two", gl_extensions))
{
#ifdef HAVE_CLUTTER_OSX
if (really_enable_npot ())
#endif
flags |= COGL_FEATURE_TEXTURE_NPOT;
}

View File

@ -177,6 +177,8 @@ clutter_stage_egl_realize (ClutterActor *actor)
WhitePixel (stage_x11->xdpy,
stage_x11->xscreen));
if (!backend_x11->no_xevent_retrieval)
{
if (clutter_x11_has_xinput())
{
XSelectInput (stage_x11->xdpy, stage_x11->xwin,
@ -193,11 +195,11 @@ clutter_stage_egl_realize (ClutterActor *actor)
StructureNotifyMask |
FocusChangeMask |
ExposureMask |
/* FIXME: we may want to eplicity enable MotionMask */
PointerMotionMask |
KeyPressMask | KeyReleaseMask |
ButtonPressMask | ButtonReleaseMask |
PropertyChangeMask);
}
/* FIXME, do these in a clutterstage_x11_realise? */
clutter_stage_x11_fix_window_size (stage_x11);

View File

@ -180,6 +180,8 @@ clutter_stage_glx_realize (ClutterActor *actor)
mask, &xattr);
}
if (!backend_x11->no_xevent_retrieval)
{
if (clutter_x11_has_xinput())
{
XSelectInput (stage_x11->xdpy, stage_x11->xwin,
@ -196,11 +198,11 @@ clutter_stage_glx_realize (ClutterActor *actor)
StructureNotifyMask |
FocusChangeMask |
ExposureMask |
/* FIXME: we may want to eplicity enable MotionMask */
PointerMotionMask |
KeyPressMask | KeyReleaseMask |
ButtonPressMask | ButtonReleaseMask |
PropertyChangeMask);
}
/* no user resize.. */
clutter_stage_x11_fix_window_size (stage_x11);