GDK_TYPE_TEXTURE
GDK_IS_TEXTURE
GDK_TEXTURE
+GdkGLTextureClass
+gdk_gl_texture_get_type
+GDK_TYPE_GL_TEXTURE
+GDK_IS_GL_TEXTURE
+GDK_GL_TEXTURE
+GdkMemoryTextureClass
+gdk_memory_texture_get_type
+GDK_TYPE_MEMORY_TEXTURE
+GDK_IS_MEMORY_TEXTURE
+GDK_MEMORY_TEXTURE
</SECTION>
<SECTION>
/**
* gdk_gl_texture_release:
- * @texture: a #GdkTexture wrapping a GL texture
+ * @self: a #GdkTexture wrapping a GL texture
*
- * Releases the GL resources held by a #GdkTexture that
- * was created with gdk_texture_new_for_gl().
+ * Releases the GL resources held by a #GdkGLTexture that
+ * was created with gdk_gl_texture_new().
*
* The texture contents are still available via the
* gdk_texture_download() function, after this function
* has been called.
*/
void
-gdk_gl_texture_release (GdkTexture *texture)
+gdk_gl_texture_release (GdkGLTexture *self)
{
- GdkGLTexture *self;
GdkWindow *window;
+ GdkTexture *texture;
cairo_t *cr;
- g_return_if_fail (GDK_IS_GL_TEXTURE (texture));
-
- self = GDK_GL_TEXTURE (texture);
-
+ g_return_if_fail (GDK_IS_GL_TEXTURE (self));
g_return_if_fail (self->saved == NULL);
+ texture = GDK_TEXTURE (self);
self->saved = cairo_image_surface_create (CAIRO_FORMAT_ARGB32,
texture->width, texture->height);
}
/**
- * gdk_gl_texture_new: (constructor)
+ * gdk_gl_texture_new:
* @context: a #GdkGLContext
* @id: the ID of a texture that was created with @context
* @width: the nominal width of the texture
#error "Only <gdk/gdk.h> can be included directly."
#endif
-#include <gdk/gdktypes.h>
#include <gdk/gdkglcontext.h>
+#include <gdk/gdktexture.h>
G_BEGIN_DECLS
+#define GDK_TYPE_GL_TEXTURE (gdk_gl_texture_get_type ())
+
+#define GDK_GL_TEXTURE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GDK_TYPE_GL_TEXTURE, GdkGLTexture))
+#define GDK_IS_GL_TEXTURE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GDK_TYPE_GL_TEXTURE))
+
+typedef struct _GdkGLTexture GdkGLTexture;
+typedef struct _GdkGLTextureClass GdkGLTextureClass;
+
+G_DEFINE_AUTOPTR_CLEANUP_FUNC(GdkGLTexture, g_object_unref)
+
+GDK_AVAILABLE_IN_ALL
+GType gdk_gl_texture_get_type (void) G_GNUC_CONST;
GDK_AVAILABLE_IN_ALL
GdkTexture * gdk_gl_texture_new (GdkGLContext *context,
gpointer data);
GDK_AVAILABLE_IN_ALL
-void gdk_gl_texture_release (GdkTexture *texture);
+void gdk_gl_texture_release (GdkGLTexture *texture);
G_END_DECLS
G_BEGIN_DECLS
-#define GDK_TYPE_GL_TEXTURE (gdk_gl_texture_get_type ())
-
-G_DECLARE_FINAL_TYPE (GdkGLTexture, gdk_gl_texture, GDK, GL_TEXTURE, GdkTexture)
-
GdkGLContext * gdk_gl_texture_get_context (GdkGLTexture *self);
guint gdk_gl_texture_get_id (GdkGLTexture *self);
#error "Unknown byte order for GDK_MEMORY_DEFAULT"
#endif
+#define GDK_TYPE_MEMORY_TEXTURE (gdk_memory_texture_get_type ())
+
+#define GDK_MEMORY_TEXTURE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GDK_TYPE_MEMORY_TEXTURE, GdkMemoryTexture))
+#define GDK_IS_MEMORY_TEXTURE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GDK_TYPE_MEMORY_TEXTURE))
+
+typedef struct _GdkMemoryTexture GdkMemoryTexture;
+typedef struct _GdkMemoryTextureClass GdkMemoryTextureClass;
+
+G_DEFINE_AUTOPTR_CLEANUP_FUNC(GdkMemoryTexture, g_object_unref)
+
+
+GDK_AVAILABLE_IN_ALL
+GType gdk_memory_texture_get_type (void) G_GNUC_CONST;
+
GDK_AVAILABLE_IN_ALL
GdkTexture * gdk_memory_texture_new (int width,
int height,
#define GDK_MEMORY_CAIRO_FORMAT_ARGB32 GDK_MEMORY_DEFAULT
-#define GDK_TYPE_MEMORY_TEXTURE (gdk_memory_texture_get_type ())
-
-G_DECLARE_FINAL_TYPE (GdkMemoryTexture, gdk_memory_texture, GDK, MEMORY_TEXTURE, GdkTexture)
-
GdkMemoryFormat gdk_memory_texture_get_format (GdkMemoryTexture *self);
const guchar * gdk_memory_texture_get_data (GdkMemoryTexture *self);
gsize gdk_memory_texture_get_stride (GdkMemoryTexture *self);
Texture *texture = data;
if (texture->holder)
- gdk_gl_texture_release (texture->holder);
+ gdk_gl_texture_release (GDK_GL_TEXTURE (texture->holder));
if (texture->id != 0)
{