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.
This commit is contained in:
@ -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");
|
||||
|
Reference in New Issue
Block a user