mirror of
https://github.com/brl/mutter.git
synced 2024-11-27 02:20:43 -05:00
Revert "Use COGL to establish GL state for ClutterGLXTexturePixmap"
This reverts commit f9d996a460
.
The change from calling glBindTexture to using the material API with
cogl_material_flush_gl_state does not always work because it doesn't
necessarily leave the active texture unit as GL_TEXTURE0. For example,
if the previously rendered texture was multi-layered then the last
thing cogl_material_flush_gl_state will do is select GL_TEXTURE1 just
to disable it.
This commit is contained in:
parent
e94e5ad65b
commit
c4dcbb6bdb
@ -126,18 +126,26 @@ G_DEFINE_TYPE (ClutterGLXTexturePixmap, \
|
|||||||
static gboolean
|
static gboolean
|
||||||
texture_bind (ClutterGLXTexturePixmap *tex)
|
texture_bind (ClutterGLXTexturePixmap *tex)
|
||||||
{
|
{
|
||||||
CoglHandle cogl_material;
|
GLuint handle = 0;
|
||||||
|
GLenum target = 0;
|
||||||
CoglHandle cogl_tex;
|
CoglHandle cogl_tex;
|
||||||
|
|
||||||
/* It might be better to track if we've succesfully set a texture yet
|
|
||||||
* explicitly, rather than doing it indirectly like this.
|
|
||||||
*/
|
|
||||||
cogl_tex = clutter_texture_get_cogl_texture (CLUTTER_TEXTURE(tex));
|
cogl_tex = clutter_texture_get_cogl_texture (CLUTTER_TEXTURE(tex));
|
||||||
if (cogl_tex == COGL_INVALID_HANDLE)
|
|
||||||
return FALSE;
|
|
||||||
|
|
||||||
cogl_material = clutter_texture_get_cogl_material (CLUTTER_TEXTURE(tex));
|
if (!cogl_texture_get_gl_texture (cogl_tex, &handle, &target))
|
||||||
cogl_material_flush_gl_state (cogl_material, NULL);
|
return FALSE;
|
||||||
|
|
||||||
|
glEnable(target);
|
||||||
|
|
||||||
|
/* FIXME: fire off an error here? */
|
||||||
|
glBindTexture (target, handle);
|
||||||
|
|
||||||
|
if (clutter_texture_get_filter_quality (CLUTTER_TEXTURE (tex))
|
||||||
|
== CLUTTER_TEXTURE_QUALITY_HIGH && tex->priv->can_mipmap)
|
||||||
|
{
|
||||||
|
cogl_texture_set_filters (cogl_tex,
|
||||||
|
CGL_LINEAR_MIPMAP_LINEAR,
|
||||||
|
CGL_LINEAR);
|
||||||
|
}
|
||||||
|
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user