[maemo-commits] [maemo-commits] r17194 - in projects/haf/trunk/clutter: clutter/eglx debian
From: subversion at stage.maemo.org subversion at stage.maemo.orgDate: Thu Jan 15 13:37:00 EET 2009
- Previous message: [maemo-commits] r17193 - projects/haf/tags/hildon-initscripts/1.19-1
- Next message: [maemo-commits] r17195 - in projects/haf/trunk/clutter: clutter/cogl/gl debian
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Author: gw
Date: 2009-01-15 13:36:57 +0200 (Thu, 15 Jan 2009)
New Revision: 17194
Modified:
projects/haf/trunk/clutter/clutter/eglx/clutter-eglx-texture-pixmap.c
projects/haf/trunk/clutter/debian/changelog
Log:
Modified eglx_texture_pixmap to try creating a texture with alpha before
it creates one without - this solves the transparent window issue on Rover
Modified: projects/haf/trunk/clutter/clutter/eglx/clutter-eglx-texture-pixmap.c
===================================================================
--- projects/haf/trunk/clutter/clutter/eglx/clutter-eglx-texture-pixmap.c 2009-01-15 11:10:16 UTC (rev 17193)
+++ projects/haf/trunk/clutter/clutter/eglx/clutter-eglx-texture-pixmap.c 2009-01-15 11:36:57 UTC (rev 17194)
@@ -49,6 +49,7 @@
#endif
#include <X11/extensions/Xcomposite.h>
+#include <string.h>
#include "../x11/clutter-x11-texture-pixmap.h"
#include "clutter-eglx-texture-pixmap.h"
@@ -452,6 +453,9 @@
EGLSurface *surface, EGLNativePixmapType p_or_w)
{
EGLConfig configs[20];
+ EGLint creation_config[
+ MAX(sizeof(pixmap_creation_config),
+ sizeof(window_creation_config))];
int i, nconfigs = 0;
EGLBoolean ret;
@@ -459,11 +463,13 @@
{
ret = eglChooseConfig (display, pixmap_config, configs,
G_N_ELEMENTS (configs), &nconfigs);
+ memcpy(creation_config, pixmap_creation_config, sizeof(pixmap_creation_config));
}
else
{
ret = eglChooseConfig (display, window_config, configs,
G_N_ELEMENTS (configs), &nconfigs);
+ memcpy(creation_config, window_creation_config, sizeof(window_creation_config));
}
if (ret != EGL_TRUE)
@@ -478,26 +484,35 @@
for (i = 0; i < nconfigs; ++i)
{
- if (for_pixmap)
+ int j;
+ /* we don't seem to be able to find out if we have an alpha channel or
+ * not from the pixmap (depth may be 32, but no alpha) - so we'll
+ * just try once with alpha, and if it fails we try without */
+
+ /* set up texture for alpha and try to create a surface... */
+ for (j=0; creation_config[j]!=EGL_NONE; j+=2)
+ if (creation_config[j] == EGL_TEXTURE_FORMAT)
+ creation_config[j+1] = EGL_TEXTURE_RGBA;
+
+ *surface = eglCreatePixmapSurface (display, configs[i],
+ p_or_w, creation_config);
+
+ if (*surface == EGL_NO_SURFACE)
{
+ /* set up texture for no alpha and try... */
+ for (j=0; creation_config[j]!=EGL_NONE; j+=2)
+ if (creation_config[j] == EGL_TEXTURE_FORMAT)
+ creation_config[j+1] = EGL_TEXTURE_RGB;
*surface = eglCreatePixmapSurface (display, configs[i],
- p_or_w, pixmap_creation_config);
+ p_or_w, creation_config);
}
- else
- {
- *surface = eglCreatePixmapSurface (display, configs[i],
- p_or_w, window_creation_config);
- }
- if (*surface == EGL_NO_SURFACE)
- {
- g_debug ("%s: eglCreate(Pixmap|Window)Surface failed for config:",
- __FUNCTION__);
- print_config_info (configs[i]);
- continue;
- }
- else
- break;
+ if (*surface != EGL_NO_SURFACE)
+ break;
+
+ g_debug ("%s: eglCreate(Pixmap|Window)Surface failed for config:",
+ __FUNCTION__);
+ print_config_info (configs[i]);
}
return configs[i];
Modified: projects/haf/trunk/clutter/debian/changelog
===================================================================
--- projects/haf/trunk/clutter/debian/changelog 2009-01-15 11:10:16 UTC (rev 17193)
+++ projects/haf/trunk/clutter/debian/changelog 2009-01-15 11:36:57 UTC (rev 17194)
@@ -8,6 +8,8 @@
set_from_rgb_data
* Added clutter_x11_texture_pixmap_add_shape to deal with transparency in
textures via XShapeGetRectangles
+ * Modified eglx_texture_pixmap to try creating a texture with alpha before
+ it creates one without - this solves the transparent window issue on Rover
-- Gordon Williams <gordon.williams at collabora.co.uk> Mon, 14 Jan 2009 19:21:48 +0000
- Previous message: [maemo-commits] r17193 - projects/haf/tags/hildon-initscripts/1.19-1
- Next message: [maemo-commits] r17195 - in projects/haf/trunk/clutter: clutter/cogl/gl debian
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
