Blender  V3.3
BKE_icons.h
Go to the documentation of this file.
1 /* SPDX-License-Identifier: GPL-2.0-or-later
2  * Copyright 2006-2007 Blender Foundation. All rights reserved. */
3 
4 #pragma once
5 
17 #ifdef __cplusplus
18 extern "C" {
19 #endif
20 
21 #include "BLI_compiler_attrs.h"
22 
23 typedef void (*DrawInfoFreeFP)(void *drawinfo);
24 
25 enum {
38 };
39 
43 struct Icon {
44  void *drawinfo;
50  void *obj;
51  char obj_type;
53  char flag;
55  short id_type;
57 };
58 
60 struct Icon_Geom {
61  int icon_id;
63  int coords_range[2];
64  unsigned char (*coords)[2];
65  unsigned char (*colors)[4];
66  /* when not NULL, the memory of coords and colors is a sub-region of this pointer. */
67  const void *mem;
68 };
69 
70 typedef struct Icon Icon;
71 
72 struct BlendDataReader;
73 struct BlendWriter;
74 struct ID;
75 struct ImBuf;
76 struct PreviewImage;
77 struct StudioLight;
78 struct bGPDlayer;
79 
80 enum eIconSizes;
81 
82 void BKE_icons_init(int first_dyn_id);
83 
87 int BKE_icon_id_ensure(struct ID *id);
88 
93 
97 int BKE_icon_preview_ensure(struct ID *id, struct PreviewImage *preview);
98 
106 
110 struct Icon *BKE_icon_get(int icon_id);
111 
116 void BKE_icon_set(int icon_id, struct Icon *icon);
117 
121 void BKE_icon_id_delete(struct ID *id);
122 
126 bool BKE_icon_delete(int icon_id);
127 bool BKE_icon_delete_unmanaged(int icon_id);
128 
132 void BKE_icon_changed(int icon_id);
133 
137 void BKE_icons_free(void);
138 
142 void BKE_icons_deferred_free(void);
143 
147 void BKE_previewimg_freefunc(void *link);
148 
152 void BKE_previewimg_free(struct PreviewImage **prv);
153 
157 void BKE_previewimg_clear(struct PreviewImage *prv);
158 
163 
167 struct PreviewImage **BKE_previewimg_id_get_p(const struct ID *id);
168 struct PreviewImage *BKE_previewimg_id_get(const struct ID *id);
169 
170 bool BKE_previewimg_id_supports_jobs(const struct ID *id);
171 
175 void BKE_previewimg_id_custom_set(struct ID *id, const char *filepath);
176 
180 void BKE_previewimg_id_free(struct ID *id);
181 
185 struct PreviewImage *BKE_previewimg_create(void);
186 
190 struct PreviewImage *BKE_previewimg_copy(const struct PreviewImage *prv);
191 
196 void BKE_previewimg_id_copy(struct ID *new_id, const struct ID *old_id);
197 
201 struct PreviewImage *BKE_previewimg_id_ensure(struct ID *id);
202 
207 void BKE_previewimg_ensure(struct PreviewImage *prv, int size);
208 
213 struct ImBuf *BKE_previewimg_to_imbuf(struct PreviewImage *prv, int size);
214 
215 void BKE_previewimg_finish(struct PreviewImage *prv, int size);
216 bool BKE_previewimg_is_finished(const struct PreviewImage *prv, int size);
217 
218 struct PreviewImage *BKE_previewimg_cached_get(const char *name);
219 
223 struct PreviewImage *BKE_previewimg_cached_ensure(const char *name);
224 
230 struct PreviewImage *BKE_previewimg_cached_thumbnail_read(const char *name,
231  const char *filepath,
232  int source,
233  bool force_update);
234 
235 void BKE_previewimg_cached_release(const char *name);
236 
238 
239 void BKE_previewimg_blend_write(struct BlendWriter *writer, const struct PreviewImage *prv);
240 void BKE_previewimg_blend_read(struct BlendDataReader *reader, struct PreviewImage *prv);
241 
242 int BKE_icon_geom_ensure(struct Icon_Geom *geom);
243 struct Icon_Geom *BKE_icon_geom_from_memory(uchar *data, size_t data_len);
244 struct Icon_Geom *BKE_icon_geom_from_file(const char *filename);
245 
246 struct ImBuf *BKE_icon_geom_rasterize(const struct Icon_Geom *geom,
247  unsigned int size_x,
248  unsigned int size_y);
249 void BKE_icon_geom_invert_lightness(struct Icon_Geom *geom);
250 
251 int BKE_icon_ensure_studio_light(struct StudioLight *sl, int id_type);
252 
253 #define ICON_RENDER_DEFAULT_HEIGHT 32
254 
255 #ifdef __cplusplus
256 }
257 #endif
struct PreviewImage * BKE_previewimg_id_ensure(struct ID *id)
Definition: icons.cc:385
bool BKE_previewimg_id_supports_jobs(const struct ID *id)
void BKE_icon_id_delete(struct ID *id)
Definition: icons.cc:870
struct ImBuf * BKE_icon_imbuf_get_buffer(int icon_id) ATTR_WARN_UNUSED_RESULT
Definition: icons.cc:817
void BKE_previewimg_cached_release(const char *name)
Definition: icons.cc:508
void(* DrawInfoFreeFP)(void *drawinfo)
Definition: BKE_icons.h:23
struct PreviewImage * BKE_previewimg_create(void)
Definition: icons.cc:261
struct PreviewImage * BKE_previewimg_cached_thumbnail_read(const char *name, const char *filepath, int source, bool force_update)
Definition: icons.cc:463
int BKE_icon_imbuf_create(struct ImBuf *ibuf) ATTR_WARN_UNUSED_RESULT
Definition: icons.cc:807
void BKE_previewimg_ensure(struct PreviewImage *prv, int size)
Definition: icons.cc:517
void BKE_previewimg_id_free(struct ID *id)
Definition: icons.cc:377
struct ImBuf * BKE_icon_geom_rasterize(const struct Icon_Geom *geom, unsigned int size_x, unsigned int size_y)
struct PreviewImage * BKE_previewimg_cached_get(const char *name)
Definition: icons.cc:440
void BKE_previewimg_free(struct PreviewImage **prv)
Definition: icons.cc:283
struct Icon_Geom * BKE_icon_geom_from_file(const char *filename)
Definition: icons.cc:988
bool BKE_icon_delete(int icon_id)
Definition: icons.cc:888
void BKE_previewimg_id_copy(struct ID *new_id, const struct ID *old_id)
void BKE_previewimg_freefunc(void *link)
Definition: icons.cc:266
struct Icon_Geom * BKE_icon_geom_from_memory(uchar *data, size_t data_len)
Definition: icons.cc:949
void BKE_icons_deferred_free(void)
Definition: icons.cc:217
void BKE_icon_set(int icon_id, struct Icon *icon)
Definition: icons.cc:848
void BKE_icon_changed(int icon_id)
Definition: icons.cc:637
void BKE_previewimg_clear(struct PreviewImage *prv)
Definition: icons.cc:303
struct PreviewImage * BKE_previewimg_copy(const struct PreviewImage *prv)
struct Icon * BKE_icon_get(int icon_id)
Definition: icons.cc:832
void BKE_previewimg_blend_read(struct BlendDataReader *reader, struct PreviewImage *prv)
Definition: icons.cc:615
struct PreviewImage ** BKE_previewimg_id_get_p(const struct ID *id)
int BKE_icon_gplayer_color_ensure(struct bGPDlayer *gpl)
Definition: icons.cc:744
struct PreviewImage * BKE_previewimg_cached_ensure(const char *name)
Definition: icons.cc:446
void BKE_icons_free(void)
Definition: icons.cc:200
void BKE_previewimg_clear_single(struct PreviewImage *prv, enum eIconSizes size)
Definition: icons.cc:291
struct PreviewImage * BKE_previewimg_id_get(const struct ID *id)
int BKE_icon_preview_ensure(struct ID *id, struct PreviewImage *preview)
Definition: icons.cc:767
bool BKE_icon_delete_unmanaged(int icon_id)
Definition: icons.cc:905
int BKE_icon_geom_ensure(struct Icon_Geom *geom)
Definition: icons.cc:933
void BKE_previewimg_deferred_release(struct PreviewImage *prv)
Definition: icons.cc:425
void BKE_previewimg_finish(struct PreviewImage *prv, int size)
Definition: icons.cc:584
void BKE_icon_geom_invert_lightness(struct Icon_Geom *geom)
void BKE_previewimg_blend_write(struct BlendWriter *writer, const struct PreviewImage *prv)
void BKE_previewimg_id_custom_set(struct ID *id, const char *filepath)
Definition: icons.cc:399
struct ImBuf * BKE_previewimg_to_imbuf(struct PreviewImage *prv, int size)
Definition: icons.cc:567
bool BKE_previewimg_is_finished(const struct PreviewImage *prv, int size)
@ ICON_DATA_IMBUF
Definition: BKE_icons.h:29
@ ICON_DATA_STUDIOLIGHT
Definition: BKE_icons.h:35
@ ICON_DATA_PREVIEW
Definition: BKE_icons.h:31
@ ICON_DATA_ID
Definition: BKE_icons.h:27
@ ICON_DATA_GPLAYER
Definition: BKE_icons.h:37
@ ICON_DATA_GEOM
Definition: BKE_icons.h:33
int BKE_icon_id_ensure(struct ID *id)
Definition: icons.cc:699
int BKE_icon_ensure_studio_light(struct StudioLight *sl, int id_type)
Definition: icons.cc:1005
void BKE_icons_init(int first_dyn_id)
Definition: icons.cc:183
#define ATTR_WARN_UNUSED_RESULT
unsigned char uchar
Definition: BLI_sys_types.h:70
eIconSizes
Definition: DNA_ID_enums.h:14
static DBVT_INLINE btScalar size(const btDbvtVolume &a)
Definition: btDbvt.cpp:52
SyclQueue void void size_t num_bytes void
static const pxr::TfToken preview("preview", pxr::TfToken::Immortal)
Definition: DNA_ID.h:368
int coords_len
Definition: BKE_icons.h:62
const void * mem
Definition: BKE_icons.h:67
unsigned char(* colors)[4]
Definition: BKE_icons.h:65
int icon_id
Definition: BKE_icons.h:61
unsigned char(* coords)[2]
Definition: BKE_icons.h:64
int coords_range[2]
Definition: BKE_icons.h:63
Definition: BKE_icons.h:43
void * obj
Definition: BKE_icons.h:50
char flag
Definition: BKE_icons.h:53
char obj_type
Definition: BKE_icons.h:51
void * drawinfo
Definition: BKE_icons.h:44
short id_type
Definition: BKE_icons.h:55
DrawInfoFreeFP drawinfo_free
Definition: BKE_icons.h:56