-
Neil Roberts authored
meta-texture-rectangle and meta-shaped-texture both create textures with GL_TEXTURE_RECTANGLE_ARB as the target using direct GL calls. This patch moves that code into a shared utility function in a separate file instead. The function resolves the required GL symbols dynamically instead of linking to them directly so that if Clutter eventually stops linking to -lGL mutter will continue to build. The function also splits the texture creation into a separate texture creation and data upload stage so that it can use cogl_texture_set_region to upload the data. That way it can avoid clobbering the glPixelStore state and it can let Cogl do any necessary format conversion. The code preserves the old value of the rectangle texture binding instead of clobbering it because Cogl expects to be able to cache this value to avoid redundant glBindTexture calls. Finally, the function uses cogl_object_set_data to automatically destroy the GL texture when the Cogl texture is destroyed. This avoids having to have special code to destroy the cogl texture. https://bugzilla.gnome.org/show_bug.cgi?id=654569
fccd6266