gdk: register GdkRgbCmap as boxed type

This commit is contained in:
Daemonratte 2026-05-10 13:04:19 +02:00
commit 81b3cb9331
3 changed files with 34 additions and 0 deletions

View file

@ -1086,6 +1086,8 @@ gdk_region_polygon
#if IN_HEADER(__GDK_RGB_H__)
#if IN_FILE(__GDK_RGB_C__)
gdk_rgb_cmap_free
gdk_rgb_cmap_copy
gdk_rgb_cmap_get_type G_GNUC_CONST
gdk_rgb_cmap_new
gdk_rgb_colormap_ditherable
gdk_rgb_ditherable

View file

@ -3587,6 +3587,34 @@ gdk_rgb_cmap_get_info (GdkRgbCmap *cmap,
return cmap_info;
}
GdkRgbCmap *
gdk_rgb_cmap_copy (const GdkRgbCmap *cmap)
{
GdkRgbCmap *copy;
g_return_val_if_fail (cmap != NULL, NULL);
copy = g_new (GdkRgbCmap, 1);
copy->n_colors = cmap->n_colors;
memcpy (copy->colors, cmap->colors, sizeof (copy->colors));
copy->info_list = NULL;
return copy;
}
GType
gdk_rgb_cmap_get_type (void)
{
static GType our_type = 0;
if (our_type == 0)
our_type = g_boxed_type_register_static (g_intern_static_string ("GdkRgbCmap"),
(GBoxedCopyFunc) gdk_rgb_cmap_copy,
(GBoxedFreeFunc) gdk_rgb_cmap_free);
return our_type;
}
GdkRgbCmap *
gdk_rgb_cmap_new (guint32 *colors, gint n_colors)
{

View file

@ -35,6 +35,8 @@
G_BEGIN_DECLS
#define GDK_TYPE_RGB_CMAP (gdk_rgb_cmap_get_type ())
typedef struct _GdkRgbCmap GdkRgbCmap;
typedef enum
@ -125,6 +127,8 @@ void gdk_draw_indexed_image (GdkDrawable *drawable,
const guchar *buf,
gint rowstride,
GdkRgbCmap *cmap);
GType gdk_rgb_cmap_get_type (void) G_GNUC_CONST;
GdkRgbCmap *gdk_rgb_cmap_copy (const GdkRgbCmap *cmap);
GdkRgbCmap *gdk_rgb_cmap_new (guint32 *colors,
gint n_colors);
void gdk_rgb_cmap_free (GdkRgbCmap *cmap);