Blender V5.0
BKE_icons.h
Go to the documentation of this file.
1/* SPDX-FileCopyrightText: 2006-2007 Blender Authors
2 *
3 * SPDX-License-Identifier: GPL-2.0-or-later */
4
5#pragma once
6
17
18#include "BLI_compiler_attrs.h"
19#include "BLI_sys_types.h"
20
21typedef void (*DrawInfoFreeFP)(void *drawinfo);
22
23enum {
36};
37
41struct Icon {
42 void *drawinfo;
48 void *obj;
51 char flag;
53 short id_type;
55};
56
58struct Icon_Geom {
62 unsigned char (*coords)[2];
63 unsigned char (*colors)[4];
64 /* when not NULL, the memory of coords and colors is a sub-region of this pointer. */
65 const void *mem;
66};
67
68typedef struct Icon Icon;
69
70struct ID;
71struct ImBuf;
72struct PreviewImage;
73struct StudioLight;
74struct bGPDlayer;
75
76void BKE_icons_init(int first_dyn_id);
77
81int BKE_icon_id_ensure(struct ID *id);
82
87
91int BKE_icon_preview_ensure(struct ID *id, struct PreviewImage *preview);
92
100
104struct Icon *BKE_icon_get(int icon_id);
105
110void BKE_icon_set(int icon_id, struct Icon *icon);
111
115void BKE_icon_id_delete(struct ID *id);
116
120bool BKE_icon_delete(int icon_id);
121bool BKE_icon_delete_unmanaged(int icon_id);
122
126void BKE_icon_changed(int icon_id);
127
131void BKE_icons_free(void);
132
136void BKE_icons_deferred_free(void);
137
138int BKE_icon_geom_ensure(struct Icon_Geom *geom);
139struct Icon_Geom *BKE_icon_geom_from_memory(uchar *data, size_t data_len);
140struct Icon_Geom *BKE_icon_geom_from_file(const char *filename);
141
142struct ImBuf *BKE_icon_geom_rasterize(const struct Icon_Geom *geom,
143 unsigned int size_x,
144 unsigned int size_y);
146
147int BKE_icon_ensure_studio_light(struct StudioLight *sl, int id_type);
148
149#define ICON_RENDER_DEFAULT_HEIGHT 32
void BKE_icon_id_delete(struct ID *id)
Definition icons.cc:437
void(* DrawInfoFreeFP)(void *drawinfo)
Definition BKE_icons.h:21
int BKE_icon_imbuf_create(struct ImBuf *ibuf) ATTR_WARN_UNUSED_RESULT
Definition icons.cc:375
struct ImBuf * BKE_icon_imbuf_get_buffer(int icon_id) ATTR_WARN_UNUSED_RESULT
Definition icons.cc:385
bool BKE_icon_delete(int icon_id)
Definition icons.cc:455
void BKE_icons_deferred_free(void)
Definition icons.cc:190
void BKE_icon_set(int icon_id, struct Icon *icon)
Definition icons.cc:416
void BKE_icon_changed(int icon_id)
Definition icons.cc:204
int BKE_icon_gplayer_color_ensure(struct bGPDlayer *gpl)
Definition icons.cc:312
void BKE_icons_free(void)
Definition icons.cc:178
struct Icon_Geom * BKE_icon_geom_from_memory(uchar *data, size_t data_len)
Definition icons.cc:516
int BKE_icon_preview_ensure(struct ID *id, struct PreviewImage *preview)
Definition icons.cc:335
struct Icon * BKE_icon_get(int icon_id)
Definition icons.cc:400
bool BKE_icon_delete_unmanaged(int icon_id)
Definition icons.cc:472
int BKE_icon_geom_ensure(struct Icon_Geom *geom)
Definition icons.cc:500
struct ImBuf * BKE_icon_geom_rasterize(const struct Icon_Geom *geom, unsigned int size_x, unsigned int size_y)
void BKE_icon_geom_invert_lightness(struct Icon_Geom *geom)
@ ICON_DATA_IMBUF
Definition BKE_icons.h:27
@ ICON_DATA_STUDIOLIGHT
Definition BKE_icons.h:33
@ ICON_DATA_PREVIEW
Definition BKE_icons.h:29
@ ICON_DATA_ID
Definition BKE_icons.h:25
@ ICON_DATA_GPLAYER
Definition BKE_icons.h:35
@ ICON_DATA_GEOM
Definition BKE_icons.h:31
int BKE_icon_id_ensure(struct ID *id)
Definition icons.cc:267
int BKE_icon_ensure_studio_light(struct StudioLight *sl, int id_type)
Definition icons.cc:572
struct Icon_Geom * BKE_icon_geom_from_file(const char *filename)
Definition icons.cc:555
void BKE_icons_init(int first_dyn_id)
Definition icons.cc:165
#define ATTR_WARN_UNUSED_RESULT
unsigned char uchar
BMesh const char void * data
Definition DNA_ID.h:414
int coords_len
Definition BKE_icons.h:60
const void * mem
Definition BKE_icons.h:65
unsigned char(* colors)[4]
Definition BKE_icons.h:63
int icon_id
Definition BKE_icons.h:59
unsigned char(* coords)[2]
Definition BKE_icons.h:62
int coords_range[2]
Definition BKE_icons.h:61
void * obj
Definition BKE_icons.h:48
char flag
Definition BKE_icons.h:51
char obj_type
Definition BKE_icons.h:49
void * drawinfo
Definition BKE_icons.h:42
short id_type
Definition BKE_icons.h:53
DrawInfoFreeFP drawinfo_free
Definition BKE_icons.h:54