Lines Matching refs:palette
32 static VncPaletteEntry *palette_find(const VncPalette *palette,
37 QLIST_FOREACH(entry, &palette->table[hash], next) {
57 VncPalette *palette;
59 palette = g_malloc0(sizeof(*palette));
60 palette_init(palette, max, bpp);
61 return palette;
64 void palette_init(VncPalette *palette, size_t max, int bpp)
66 memset(palette, 0, sizeof (*palette));
67 palette->max = max;
68 palette->bpp = bpp;
71 void palette_destroy(VncPalette *palette)
73 g_free(palette);
76 int palette_put(VncPalette *palette, uint32_t color)
79 unsigned int idx = palette->size;
82 hash = palette_hash(color, palette->bpp) % VNC_PALETTE_HASH_SIZE;
83 entry = palette_find(palette, color, hash);
85 if (!entry && palette->size >= palette->max) {
91 entry = &palette->pool[palette->size];
94 QLIST_INSERT_HEAD(&palette->table[hash], entry, next);
95 palette->size++;
97 return palette->size;
100 int palette_idx(const VncPalette *palette, uint32_t color)
105 hash = palette_hash(color, palette->bpp) % VNC_PALETTE_HASH_SIZE;
106 entry = palette_find(palette, color, hash);
110 size_t palette_size(const VncPalette *palette)
112 return palette->size;
115 void palette_iter(const VncPalette *palette,
123 QLIST_FOREACH(entry, &palette->table[i], next) {
129 uint32_t palette_color(const VncPalette *palette, int idx, bool *found)
135 QLIST_FOREACH(entry, &palette->table[i], next) {
154 size_t palette_fill(const VncPalette *palette,
157 palette_iter(palette, palette_fill_cb, colors);
158 return palette_size(palette);