diff options
author | Matthias Clasen <mclasen@redhat.com> | 2023-04-25 08:32:00 +0200 |
---|---|---|
committer | Matthias Clasen <mclasen@redhat.com> | 2023-04-25 08:32:00 +0200 |
commit | a339c85a98f523afb8862494461e2c56a6b4e852 (patch) | |
tree | e4b9947195ee0b352067cf6526212c2458d2226b /gdk/gdkgltexturebuilder.c | |
parent | e37dfea637aaff8791da6fae1427088539a90229 (diff) | |
download | gtk+-matthiasc/texture-builder.tar.gz |
texturebuilder: Add has-mipmapmatthiasc/texture-builder
Add this as a builder property, and pass it
to the created texture.
Diffstat (limited to 'gdk/gdkgltexturebuilder.c')
-rw-r--r-- | gdk/gdkgltexturebuilder.c | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/gdk/gdkgltexturebuilder.c b/gdk/gdkgltexturebuilder.c index 98def30003..fc6256581f 100644 --- a/gdk/gdkgltexturebuilder.c +++ b/gdk/gdkgltexturebuilder.c @@ -32,6 +32,7 @@ struct _GdkGLTextureBuilder guint id; int width; int height; + gboolean has_mipmap; GDestroyNotify destroy; gpointer data; }; @@ -63,6 +64,7 @@ enum { PROP_0, PROP_CONTEXT, + PROP_HAS_MIPMAP, PROP_HEIGHT, PROP_ID, PROP_WIDTH, @@ -98,6 +100,10 @@ gdk_gl_texture_builder_get_property (GObject *object, g_value_set_object (value, self->context); break; + case PROP_HAS_MIPMAP: + g_value_set_boolean (value, self->has_mipmap); + break; + case PROP_HEIGHT: g_value_set_int (value, self->height); break; @@ -130,6 +136,10 @@ gdk_gl_texture_builder_set_property (GObject *object, gdk_gl_texture_builder_set_context (self, g_value_get_object (value)); break; + case PROP_HAS_MIPMAP: + gdk_gl_texture_builder_set_has_mipmap (self, g_value_get_boolean (value)); + break; + case PROP_HEIGHT: gdk_gl_texture_builder_set_height (self, g_value_get_int (value)); break; @@ -170,6 +180,18 @@ gdk_gl_texture_builder_class_init (GdkGLTextureBuilderClass *klass) G_PARAM_READWRITE | G_PARAM_EXPLICIT_NOTIFY | G_PARAM_STATIC_STRINGS); /** + * GdkGLTextureBuilder:has-mipmap: (attributes org.gdk.Property.get=gdk_gl_texture_builder_get_has_mipmap org.gdk.Property.set=gdk_gl_texture_builder_set_has_mipmap) + * + * Whether the texture has a mipmap. + * + * Since: 4.12 + */ + properties[PROP_HAS_MIPMAP] = + g_param_spec_boolean ("has-mipmap", NULL, NULL, + FALSE, + G_PARAM_READWRITE | G_PARAM_EXPLICIT_NOTIFY | G_PARAM_STATIC_STRINGS); + + /** * GdkGLTextureBuilder:height: (attributes org.gdk.Property.get=gdk_gl_texture_builder_get_height org.gdk.Property.set=gdk_gl_texture_builder_set_height) * * The height of the texture. @@ -405,6 +427,28 @@ gdk_gl_texture_builder_set_width (GdkGLTextureBuilder *self, g_object_notify_by_pspec (G_OBJECT (self), properties[PROP_WIDTH]); } +gboolean +gdk_gl_texture_builder_get_has_mipmap (GdkGLTextureBuilder *self) +{ + g_return_val_if_fail (GDK_IS_GL_TEXTURE_BUILDER (self), FALSE); + + return self->has_mipmap; +} + +void +gdk_gl_texture_builder_set_has_mipmap (GdkGLTextureBuilder *self, + gboolean has_mipmap) +{ + g_return_if_fail (GDK_IS_GL_TEXTURE_BUILDER (self)); + + if (self->has_mipmap == has_mipmap) + return; + + self->has_mipmap = has_mipmap; + + g_object_notify_by_pspec (G_OBJECT (self), properties[PROP_HAS_MIPMAP]); +} + /** * gdk_gl_texture_builder_set_notify: * @self: a `GdkGLTextureBuilder` @@ -454,6 +498,7 @@ gdk_gl_texture_builder_build (GdkGLTextureBuilder *self) self->id, self->width, self->height, + self->has_mipmap, self->destroy, self->data); } |