summaryrefslogtreecommitdiff
path: root/cogl/cogl-debug.c
diff options
context:
space:
mode:
authorNeil Roberts <neil@linux.intel.com>2010-05-25 18:56:14 +0100
committerNeil Roberts <neil@linux.intel.com>2010-06-22 12:22:48 +0100
commit8458fb7e200ea0ea71b84598aea64e5a1e1bbb45 (patch)
tree92667a49134583b43ed848a5b679dbbb2af4ec3b /cogl/cogl-debug.c
parent9c62265939e3a097cdc0da7b40e65608cc863ec9 (diff)
downloadcogl-8458fb7e200ea0ea71b84598aea64e5a1e1bbb45.tar.gz
Add a CoglTexturePixmapX11 texture backend
This is a publicly exposed texture backend to create a texture which contains the contents of an X11 pixmap. The API is currently marked as experimental. The backend internally holds a handle to another texture. All of the backend virtuals simply redirect to the internal texture. The texture can optionally be automatically updated if the automatic_updates parameter is TRUE. If set then Cogl will listen for damage events on the pixmap and update the texture accordingly. Alternatively a damage object can be created externally and passed down to Cogl. The updates can be performed with XGetImage, XShmGetImage or the GLX_EXT_texture_pixmap extension. If the TFP extension is used it will optionally try to create a rectangle texture if the driver does not support NPOTs or it is forced through the COGL_PIXMAP_TEXTURE_RECTANGLE or CLUTTER_PIXMAP_TEXTURE_RECTANGLE environment variables. If the GLXFBConfig does not support mipmapping then it will fallback to using X{Shm,}GetImage. It keeps a separate texture around for this so that it can later start using the TFP texture again if the texture is later drawn with mipmaps disabled.
Diffstat (limited to 'cogl/cogl-debug.c')
-rw-r--r--cogl/cogl-debug.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/cogl/cogl-debug.c b/cogl/cogl-debug.c
index 68ca4c38..4b792bfd 100644
--- a/cogl/cogl-debug.c
+++ b/cogl/cogl-debug.c
@@ -51,7 +51,8 @@ static const GDebugKey cogl_log_debug_keys[] = {
{ "opengl", COGL_DEBUG_OPENGL },
{ "pango", COGL_DEBUG_PANGO },
{ "show-source", COGL_DEBUG_SHOW_SOURCE},
- { "offscreen", COGL_DEBUG_OFFSCREEN }
+ { "offscreen", COGL_DEBUG_OFFSCREEN },
+ { "texture-pixmap", COGL_DEBUG_TEXTURE_PIXMAP }
};
static const int n_cogl_log_debug_keys =
G_N_ELEMENTS (cogl_log_debug_keys);
@@ -113,6 +114,7 @@ _cogl_parse_debug_string (const char *value,
/* XXX: we should replace the "draw" option its very hand wavy... */
OPT ("draw:", "misc tracing of some drawing operations");
OPT ("pango:", "trace the pango renderer");
+ OPT ("texture-pixmap:", "trace the Cogl texture pixmap backend");
OPT ("rectangles:", "add wire outlines for all rectangular geometry");
OPT ("disable-batching:", "disable the journal batching");
OPT ("disable-vbos:", "disable use of OpenGL vertex buffer objects");