Blender  V3.3
BKE_screen.h
Go to the documentation of this file.
1 /* SPDX-License-Identifier: GPL-2.0-or-later
2  * Copyright 2001-2002 NaN Holding BV. All rights reserved. */
3 #pragma once
4 
9 #include "BLI_compiler_attrs.h"
10 
11 #include "RNA_types.h"
12 
13 #include "BKE_context.h"
14 
15 #ifdef __cplusplus
16 extern "C" {
17 #endif
18 
19 struct ARegion;
20 struct BlendDataReader;
21 struct BlendLibReader;
22 struct BlendWriter;
23 struct Header;
24 struct ID;
25 struct IDRemapper;
27 struct ListBase;
28 struct Menu;
29 struct Panel;
30 struct Scene;
31 struct ScrArea;
32 struct ScrAreaMap;
33 struct ScrVert;
34 struct SpaceType;
35 struct View3D;
36 struct View3DShading;
37 struct WorkSpace;
38 struct bContext;
39 struct bScreen;
40 struct uiLayout;
41 struct uiList;
42 struct wmGizmoMap;
43 struct wmKeyConfig;
44 struct wmMsgBus;
45 struct wmNotifier;
46 struct wmWindow;
47 struct wmWindowManager;
48 
49 /* spacetype has everything stored to get an editor working, it gets initialized via
50  * #ED_spacetypes_init() in `editors/space_api/spacetypes.c` */
51 /* an editor in Blender is a combined ScrArea + SpaceType + SpaceData */
52 
53 #define BKE_ST_MAXNAME 64
54 
55 typedef struct wmSpaceTypeListenerParams {
56  struct wmWindow *window;
57  struct ScrArea *area;
59  const struct Scene *scene;
61 
62 typedef struct SpaceType {
63  struct SpaceType *next, *prev;
64 
65  char name[BKE_ST_MAXNAME]; /* for menus */
66  int spaceid; /* unique space identifier */
67  int iconid; /* icon lookup for menus */
68 
69  /* Initial allocation, after this WM will call init() too. Some editors need
70  * area and scene data (e.g. frame range) to set their initial scrolling. */
71  struct SpaceLink *(*create)(const struct ScrArea *area, const struct Scene *scene);
72  /* not free spacelink itself */
73  void (*free)(struct SpaceLink *sl);
74 
75  /* init is to cope with file load, screen (size) changes, check handlers */
76  void (*init)(struct wmWindowManager *wm, struct ScrArea *area);
77  /* exit is called when the area is hidden or removed */
78  void (*exit)(struct wmWindowManager *wm, struct ScrArea *area);
79  /* Listeners can react to bContext changes */
81 
82  /* called when the mouse moves out of the area */
83  void (*deactivate)(struct ScrArea *area);
84 
85  /* refresh context, called after filereads, ED_area_tag_refresh() */
86  void (*refresh)(const struct bContext *C, struct ScrArea *area);
87 
88  /* after a spacedata copy, an init should result in exact same situation */
89  struct SpaceLink *(*duplicate)(struct SpaceLink *sl);
90 
91  /* register operator types on startup */
93  /* add default items to WM keymap */
94  void (*keymap)(struct wmKeyConfig *keyconf);
95  /* on startup, define dropboxes for spacetype+regions */
97 
98  /* initialize gizmo-map-types and gizmo-group-types with the region */
100 
101  /* return context data */
103 
104  /* Used when we want to replace an ID by another (or NULL). */
105  void (*id_remap)(struct ScrArea *area, struct SpaceLink *sl, const struct IDRemapper *mappings);
106 
107  int (*space_subtype_get)(struct ScrArea *area);
108  void (*space_subtype_set)(struct ScrArea *area, int value);
109  void (*space_subtype_item_extend)(struct bContext *C, EnumPropertyItem **item, int *totitem);
110 
111  /* region type definitions */
113 
114  /* read and write... */
115 
116  /* default keymaps to add */
118 
120 
121 /* region types are also defined using spacetypes_init, via a callback */
122 
123 typedef struct wmRegionListenerParams {
124  struct wmWindow *window;
125  struct ScrArea *area; /* Can be NULL when the region is not part of an area. */
126  struct ARegion *region;
128  const struct Scene *scene;
130 
132  const struct bContext *context;
135  struct Scene *scene;
136  struct bScreen *screen;
137  struct ScrArea *area;
138  struct ARegion *region;
140 
141 typedef struct ARegionType {
142  struct ARegionType *next, *prev;
143 
144  int regionid; /* unique identifier within this space, defines RGN_TYPE_xxxx */
145 
146  /* add handlers, stuff you only do once or on area/region type/size changes */
147  void (*init)(struct wmWindowManager *wm, struct ARegion *region);
148  /* exit is called when the region is hidden or removed */
149  void (*exit)(struct wmWindowManager *wm, struct ARegion *region);
150  /* draw entirely, view changes should be handled here */
151  void (*draw)(const struct bContext *C, struct ARegion *region);
159  void (*draw_overlay)(const struct bContext *C, struct ARegion *region);
160  /* optional, compute button layout before drawing for dynamic size */
161  void (*layout)(const struct bContext *C, struct ARegion *region);
162  /* snap the size of the region (can be NULL for no snapping). */
163  int (*snap_size)(const struct ARegion *region, int size, int axis);
164  /* contextual changes should be handled here */
166  /* Optional callback to generate subscriptions. */
168 
169  void (*free)(struct ARegion *);
170 
171  /* split region, copy data optionally */
172  void *(*duplicate)(void *poin);
173 
174  /* register operator types on startup */
176  /* add own items to keymap */
177  void (*keymap)(struct wmKeyConfig *keyconf);
178  /* allows default cursor per region */
179  void (*cursor)(struct wmWindow *win, struct ScrArea *area, struct ARegion *region);
180 
181  /* return context data */
183 
184  /* Is called whenever the current visible View2D's region changes.
185  *
186  * Used from user code such as view navigation/zoom operators to inform region about changes.
187  * The goal is to support zoom-to-fit features which gets disabled when manual navigation is
188  * performed.
189  *
190  * This callback is not called on indirect changes of the current viewport (which could happen
191  * when the `v2d->tot is changed and `cur` is adopted accordingly). */
192  void (*on_view2d_changed)(const struct bContext *C, struct ARegion *region);
193 
194  /* custom drawing callbacks */
196 
197  /* panels type definitions */
199 
200  /* header type definitions */
202 
203  /* hardcoded constraints, smaller than these values region is not visible */
205  /* when new region opens (region prefsizex/y are zero then */
207  /* default keymaps to add */
209  /* return without drawing.
210  * lock is set by region definition, and copied to do_lock by render. can become flag. */
211  short do_lock, lock;
214  /* call cursor function on each move event */
217 
218 /* panel types */
219 
220 typedef struct PanelType {
221  struct PanelType *next, *prev;
222 
223  char idname[BKE_ST_MAXNAME]; /* unique name */
224  char label[BKE_ST_MAXNAME]; /* for panel header */
225  char *description; /* for panel tooltip */
227  char context[BKE_ST_MAXNAME]; /* for buttons window */
228  char category[BKE_ST_MAXNAME]; /* for category tabs */
229  char owner_id[BKE_ST_MAXNAME]; /* for work-spaces to selectively show. */
230  char parent_id[BKE_ST_MAXNAME]; /* parent idname for sub-panels */
233  short space_type;
234  short region_type;
235  /* For popovers, 0 for default. */
237  int order;
238 
239  int flag;
240 
241  /* verify if the panel should draw or not */
242  bool (*poll)(const struct bContext *C, struct PanelType *pt);
243  /* draw header (optional) */
244  void (*draw_header)(const struct bContext *C, struct Panel *panel);
245  /* draw header preset (optional) */
246  void (*draw_header_preset)(const struct bContext *C, struct Panel *panel);
247  /* draw entirely, view changes should be handled here */
248  void (*draw)(const struct bContext *C, struct Panel *panel);
249 
250  /* For instanced panels corresponding to a list: */
251 
253  void (*reorder)(struct bContext *C, struct Panel *pa, int new_index);
260  short (*get_list_data_expand_flag)(const struct bContext *C, struct Panel *pa);
267  void (*set_list_data_expand_flag)(const struct bContext *C, struct Panel *pa, short expand_flag);
268 
269  /* sub panels */
270  struct PanelType *parent;
272 
273  /* RNA integration */
276 
277 /* #PanelType.flag */
278 enum {
288 };
289 
290 /* uilist types */
291 
292 /* Draw an item in the uiList */
293 typedef void (*uiListDrawItemFunc)(struct uiList *ui_list,
294  struct bContext *C,
295  struct uiLayout *layout,
296  struct PointerRNA *dataptr,
297  struct PointerRNA *itemptr,
298  int icon,
299  struct PointerRNA *active_dataptr,
300  const char *active_propname,
301  int index,
302  int flt_flag);
303 
304 /* Draw the filtering part of an uiList */
305 typedef void (*uiListDrawFilterFunc)(struct uiList *ui_list,
306  struct bContext *C,
307  struct uiLayout *layout);
308 
309 /* Filter items of an uiList */
310 typedef void (*uiListFilterItemsFunc)(struct uiList *ui_list,
311  struct bContext *C,
312  struct PointerRNA *,
313  const char *propname);
314 
315 /* Listen to notifiers. Only for lists defined in C. */
317 
318 typedef struct uiListType {
319  struct uiListType *next, *prev;
320 
321  char idname[BKE_ST_MAXNAME]; /* unique name */
322 
326 
327  /* For lists defined in C only. */
329 
330  /* RNA integration */
333 
334 /* header types */
335 
336 typedef struct HeaderType {
337  struct HeaderType *next, *prev;
338 
339  char idname[BKE_ST_MAXNAME]; /* unique name */
342 
343  bool (*poll)(const struct bContext *C, struct HeaderType *ht);
344  /* draw entirely, view changes should be handled here */
345  void (*draw)(const struct bContext *C, struct Header *header);
346 
347  /* RNA integration */
350 
351 typedef struct Header {
352  struct HeaderType *type; /* runtime */
353  struct uiLayout *layout; /* runtime for drawing */
355 
356 /* menu types */
357 
358 typedef struct MenuType {
359  struct MenuType *next, *prev;
360 
361  char idname[BKE_ST_MAXNAME]; /* unique name */
362  char label[BKE_ST_MAXNAME]; /* for button text */
364  char owner_id[BKE_ST_MAXNAME]; /* optional, see: #wmOwnerID */
365  const char *description;
366 
367  /* verify if the menu should draw or not */
368  bool (*poll)(const struct bContext *C, struct MenuType *mt);
369  /* draw entirely, view changes should be handled here */
370  void (*draw)(const struct bContext *C, struct Menu *menu);
371 
372  /* RNA integration */
375 
376 typedef struct Menu {
377  struct MenuType *type; /* runtime */
378  struct uiLayout *layout; /* runtime for drawing */
380 
381 /* Space-types. */
382 
386 const struct ListBase *BKE_spacetypes_list(void);
387 void BKE_spacetype_register(struct SpaceType *st);
388 bool BKE_spacetype_exists(int spaceid);
389 void BKE_spacetypes_free(void); /* only for quitting blender */
390 
391 /* Space-data. */
392 
397 void BKE_spacedata_copylist(ListBase *lb_dst, ListBase *lb_src);
398 
405 void BKE_spacedata_draw_locks(bool set);
406 
412  const struct ScrArea *area,
413  int region_type) ATTR_WARN_UNUSED_RESULT
414  ATTR_NONNULL();
415 
417  struct ScrArea *area, struct SpaceLink *sl, struct ID *old_id, struct ID *new_id));
421 void BKE_spacedata_id_unref(struct ScrArea *area, struct SpaceLink *sl, struct ID *id);
422 
423 /* Area/regions. */
424 
425 struct ARegion *BKE_area_region_copy(const struct SpaceType *st, const struct ARegion *region);
429 void BKE_area_region_free(struct SpaceType *st, struct ARegion *region);
434 void BKE_screen_area_free(struct ScrArea *area);
441 
448 struct ARegion *BKE_region_find_in_listbase_by_type(const struct ListBase *regionbase,
449  const int region_type);
456 struct ARegion *BKE_area_find_region_type(const struct ScrArea *area, int type);
458 struct ARegion *BKE_area_find_region_xy(struct ScrArea *area, int regiontype, const int xy[2])
459  ATTR_NONNULL(3);
464  int regiontype,
465  const int xy[2]) ATTR_WARN_UNUSED_RESULT
466  ATTR_NONNULL(1, 3);
467 
469  int space_type,
470  const int xy[2]) ATTR_NONNULL(1, 3);
477  ATTR_NONNULL(1, 2);
482 struct ScrArea *BKE_screen_find_big_area(struct bScreen *screen, int spacetype, short min);
484  int spacetype,
485  const int xy[2]) ATTR_NONNULL(1, 3);
486 struct ScrArea *BKE_screen_find_area_xy(struct bScreen *screen, int spacetype, const int xy[2])
487  ATTR_NONNULL(1, 3);
488 
489 void BKE_screen_gizmo_tag_refresh(struct bScreen *screen);
490 
491 void BKE_screen_view3d_sync(struct View3D *v3d, struct Scene *scene);
492 void BKE_screen_view3d_scene_sync(struct bScreen *screen, struct Scene *scene);
494  ATTR_NONNULL();
496 
497 /* Zoom factor conversion. */
498 
499 float BKE_screen_view3d_zoom_to_fac(float camzoom);
500 float BKE_screen_view3d_zoom_from_fac(float zoomfac);
501 
502 void BKE_screen_view3d_shading_init(struct View3DShading *shading);
503 
504 /* Screen. */
505 
511 
515 void BKE_screen_free_data(struct bScreen *screen);
516 void BKE_screen_area_map_free(struct ScrAreaMap *area_map) ATTR_NONNULL();
517 
518 struct ScrEdge *BKE_screen_find_edge(const struct bScreen *screen,
519  struct ScrVert *v1,
520  struct ScrVert *v2);
521 void BKE_screen_sort_scrvert(struct ScrVert **v1, struct ScrVert **v2);
522 void BKE_screen_remove_double_scrverts(struct bScreen *screen);
523 void BKE_screen_remove_double_scredges(struct bScreen *screen);
524 void BKE_screen_remove_unused_scredges(struct bScreen *screen);
525 void BKE_screen_remove_unused_scrverts(struct bScreen *screen);
526 
527 void BKE_screen_header_alignment_reset(struct bScreen *screen);
528 
529 /* .blend file I/O */
530 
532  struct View3DShading *shading);
534  struct View3DShading *shading);
535 
536 void BKE_screen_area_map_blend_write(struct BlendWriter *writer, struct ScrAreaMap *area_map);
541  struct ScrAreaMap *area_map);
545 void BKE_screen_view3d_do_versions_250(struct View3D *v3d, ListBase *regions);
547  struct ID *parent_id,
548  struct ScrArea *area);
552 bool BKE_screen_blend_read_data(struct BlendDataReader *reader, struct bScreen *screen);
553 
554 #ifdef __cplusplus
555 }
556 #endif
int(* bContextDataCallback)(const bContext *C, const char *member, bContextDataResult *result)
Definition: BKE_context.h:83
struct ARegion * BKE_spacedata_find_region_type(const struct SpaceLink *slink, const struct ScrArea *area, int region_type) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL()
void BKE_screen_area_free(struct ScrArea *area)
Definition: screen.c:670
struct wmRegionListenerParams wmRegionListenerParams
void BKE_spacedata_callback_id_remap_set(void(*func)(struct ScrArea *area, struct SpaceLink *sl, struct ID *old_id, struct ID *new_id))
void BKE_screen_free_data(struct bScreen *screen)
Definition: screen.c:697
struct ARegion * BKE_area_find_region_type(const struct ScrArea *area, int type)
bool BKE_screen_blend_read_data(struct BlendDataReader *reader, struct bScreen *screen)
Definition: screen.c:242
void BKE_spacedata_id_unref(struct ScrArea *area, struct SpaceLink *sl, struct ID *id)
Definition: screen.c:563
void BKE_screen_view3d_sync(struct View3D *v3d, struct Scene *scene)
Definition: screen.c:976
void BKE_region_callback_refresh_tag_gizmomap_set(void(*callback)(struct wmGizmoMap *))
Definition: screen.c:575
void(* uiListDrawItemFunc)(struct uiList *ui_list, struct bContext *C, struct uiLayout *layout, struct PointerRNA *dataptr, struct PointerRNA *itemptr, int icon, struct PointerRNA *active_dataptr, const char *active_propname, int index, int flt_flag)
Definition: BKE_screen.h:293
struct ARegion * BKE_region_find_in_listbase_by_type(const struct ListBase *regionbase, const int region_type)
struct MenuType MenuType
void BKE_spacedata_draw_locks(bool set)
Definition: screen.c:516
void(* uiListListener)(struct uiList *ui_list, wmRegionListenerParams *params)
Definition: BKE_screen.h:316
void BKE_spacedata_copylist(ListBase *lb_dst, ListBase *lb_src)
Definition: screen.c:499
struct ARegionType ARegionType
@ PANEL_TYPE_NO_HEADER
Definition: BKE_screen.h:280
@ PANEL_TYPE_INSTANCED
Definition: BKE_screen.h:285
@ PANEL_TYPE_DEFAULT_CLOSED
Definition: BKE_screen.h:279
@ PANEL_TYPE_LAYOUT_VERT_BAR
Definition: BKE_screen.h:283
@ PANEL_TYPE_NO_SEARCH
Definition: BKE_screen.h:287
@ PANEL_TYPE_HEADER_EXPAND
Definition: BKE_screen.h:282
void BKE_area_region_panels_free(struct ListBase *panels)
Definition: screen.c:616
float BKE_screen_view3d_zoom_from_fac(float zoomfac)
Definition: screen.c:1032
void BKE_screen_foreach_id_screen_area(struct LibraryForeachIDData *data, struct ScrArea *area)
Definition: screen.c:85
void BKE_screen_area_map_free(struct ScrAreaMap *area_map) ATTR_NONNULL()
Definition: screen.c:686
struct ARegionType * BKE_regiontype_from_id_or_first(const struct SpaceType *st, int regionid)
struct ScrEdge * BKE_screen_find_edge(const struct bScreen *screen, struct ScrVert *v1, struct ScrVert *v2)
struct SpaceType SpaceType
void BKE_spacetypes_free(void)
Definition: screen.c:344
#define BKE_ST_MAXNAME
Definition: BKE_screen.h:53
void(* uiListFilterItemsFunc)(struct uiList *ui_list, struct bContext *C, struct PointerRNA *, const char *propname)
Definition: BKE_screen.h:310
struct HeaderType HeaderType
void BKE_screen_remove_double_scredges(struct bScreen *screen)
Definition: screen.c:777
void BKE_screen_view3d_shading_init(struct View3DShading *shading)
Definition: screen.c:1007
struct ARegion * BKE_area_find_region_active_win(struct ScrArea *area)
Definition: screen.c:883
void BKE_spacedata_freelist(ListBase *lb)
Definition: screen.c:411
struct ScrArea * BKE_screen_area_map_find_area_xy(const struct ScrAreaMap *areamap, int spacetype, const int xy[2]) ATTR_NONNULL(1
struct ScrArea struct ScrArea * BKE_screen_find_area_xy(struct bScreen *screen, int spacetype, const int xy[2]) ATTR_NONNULL(1
void BKE_screen_view3d_do_versions_250(struct View3D *v3d, ListBase *regions)
Definition: screen.c:1441
void BKE_screen_area_map_blend_write(struct BlendWriter *writer, struct ScrAreaMap *area_map)
Definition: screen.c:1346
void BKE_screen_remove_unused_scrverts(struct bScreen *screen)
Definition: screen.c:838
void BKE_screen_remove_unused_scredges(struct bScreen *screen)
Definition: screen.c:793
void BKE_area_region_free(struct SpaceType *st, struct ARegion *region)
Definition: screen.c:626
bool BKE_screen_area_map_blend_read_data(struct BlendDataReader *reader, struct ScrAreaMap *area_map)
Definition: screen.c:1747
void BKE_screen_view3d_scene_sync(struct bScreen *screen, struct Scene *scene)
Definition: screen.c:994
void BKE_screen_view3d_shading_blend_read_data(struct BlendDataReader *reader, struct View3DShading *shading)
Definition: screen.c:1078
void BKE_screen_area_blend_read_lib(struct BlendLibReader *reader, struct ID *parent_id, struct ScrArea *area)
Definition: screen.c:1772
struct ARegion * BKE_area_find_region_xy(struct ScrArea *area, int regiontype, const int xy[2]) ATTR_NONNULL(3)
Definition: screen.c:898
bool BKE_spacetype_exists(int spaceid)
Definition: screen.c:404
void BKE_spacetype_register(struct SpaceType *st)
Definition: screen.c:391
struct ARegion * BKE_area_region_copy(const struct SpaceType *st, const struct ARegion *region)
struct ARegion * BKE_screen_find_region_xy(struct bScreen *screen, int regiontype, const int xy[2]) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL(1
bool BKE_screen_is_used(const struct bScreen *screen) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL()
void BKE_screen_sort_scrvert(struct ScrVert **v1, struct ScrVert **v2)
Definition: screen.c:716
struct SpaceType * BKE_spacetype_from_id(int spaceid)
Definition: screen.c:353
struct ScrArea struct ScrArea void BKE_screen_gizmo_tag_refresh(struct bScreen *screen)
Definition: screen.c:580
struct Header Header
struct wmRegionMessageSubscribeParams wmRegionMessageSubscribeParams
void BKE_screen_header_alignment_reset(struct bScreen *screen)
Definition: screen.c:1047
void BKE_region_callback_free_gizmomap_set(void(*callback)(struct wmGizmoMap *))
Definition: screen.c:600
const struct ListBase * BKE_spacetypes_list(void)
Definition: screen.c:386
struct wmSpaceTypeListenerParams wmSpaceTypeListenerParams
bool BKE_screen_is_fullscreen_area(const struct bScreen *screen) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL()
struct ARegion struct ARegion * BKE_screen_find_main_region_at_xy(struct bScreen *screen, int space_type, const int xy[2]) ATTR_NONNULL(1
void BKE_screen_remove_double_scrverts(struct bScreen *screen)
Definition: screen.c:725
struct PanelType PanelType
void BKE_screen_view3d_shading_blend_write(struct BlendWriter *writer, struct View3DShading *shading)
Definition: screen.c:1071
float BKE_screen_view3d_zoom_to_fac(float camzoom)
Definition: screen.c:1027
struct uiListType uiListType
void(* uiListDrawFilterFunc)(struct uiList *ui_list, struct bContext *C, struct uiLayout *layout)
Definition: BKE_screen.h:305
struct ARegion struct ARegion struct ScrArea * BKE_screen_find_area_from_space(struct bScreen *screen, struct SpaceLink *sl) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL(1
struct ARegion struct ARegion struct ScrArea struct ScrArea * BKE_screen_find_big_area(struct bScreen *screen, int spacetype, short min)
Definition: screen.c:937
struct ARegionType * BKE_regiontype_from_id(const struct SpaceType *st, int regionid)
struct Menu Menu
#define ATTR_WARN_UNUSED_RESULT
#define ATTR_NONNULL(...)
_GL_VOID GLfloat value _GL_VOID_RET _GL_VOID const GLuint GLboolean *residences _GL_BOOL_RET _GL_VOID GLsizei GLfloat GLfloat GLfloat GLfloat const GLubyte *bitmap _GL_VOID_RET _GL_VOID GLenum type
_GL_VOID GLfloat value _GL_VOID_RET _GL_VOID const GLuint GLboolean *residences _GL_BOOL_RET _GL_VOID GLsizei GLfloat GLfloat GLfloat GLfloat const GLubyte *bitmap _GL_VOID_RET _GL_VOID GLenum const void *lists _GL_VOID_RET _GL_VOID const GLdouble *equation _GL_VOID_RET _GL_VOID GLdouble GLdouble blue _GL_VOID_RET _GL_VOID GLfloat GLfloat blue _GL_VOID_RET _GL_VOID GLint GLint blue _GL_VOID_RET _GL_VOID GLshort GLshort blue _GL_VOID_RET _GL_VOID GLubyte GLubyte blue _GL_VOID_RET _GL_VOID GLuint GLuint blue _GL_VOID_RET _GL_VOID GLushort GLushort blue _GL_VOID_RET _GL_VOID GLbyte GLbyte GLbyte alpha _GL_VOID_RET _GL_VOID GLdouble GLdouble GLdouble alpha _GL_VOID_RET _GL_VOID GLfloat GLfloat GLfloat alpha _GL_VOID_RET _GL_VOID GLint GLint GLint alpha _GL_VOID_RET _GL_VOID GLshort GLshort GLshort alpha _GL_VOID_RET _GL_VOID GLubyte GLubyte GLubyte alpha _GL_VOID_RET _GL_VOID GLuint GLuint GLuint alpha _GL_VOID_RET _GL_VOID GLushort GLushort GLushort alpha _GL_VOID_RET _GL_VOID GLenum mode _GL_VOID_RET _GL_VOID GLint GLsizei GLsizei GLenum type _GL_VOID_RET _GL_VOID GLsizei GLenum GLenum const void *pixels _GL_VOID_RET _GL_VOID const void *pointer _GL_VOID_RET _GL_VOID GLdouble v _GL_VOID_RET _GL_VOID GLfloat v _GL_VOID_RET _GL_VOID GLint GLint i2 _GL_VOID_RET _GL_VOID GLint j _GL_VOID_RET _GL_VOID GLfloat param _GL_VOID_RET _GL_VOID GLint param _GL_VOID_RET _GL_VOID GLdouble GLdouble GLdouble GLdouble GLdouble zFar _GL_VOID_RET _GL_UINT GLdouble *equation _GL_VOID_RET _GL_VOID GLenum GLint *params _GL_VOID_RET _GL_VOID GLenum GLfloat *v _GL_VOID_RET _GL_VOID GLenum GLfloat *params _GL_VOID_RET _GL_VOID GLfloat *values _GL_VOID_RET _GL_VOID GLushort *values _GL_VOID_RET _GL_VOID GLenum GLfloat *params _GL_VOID_RET _GL_VOID GLenum GLdouble *params _GL_VOID_RET _GL_VOID GLenum GLint *params _GL_VOID_RET _GL_VOID GLsizei const void *pointer _GL_VOID_RET _GL_VOID GLsizei const void *pointer _GL_VOID_RET _GL_BOOL GLfloat param _GL_VOID_RET _GL_VOID GLint param _GL_VOID_RET _GL_VOID GLenum GLfloat param _GL_VOID_RET _GL_VOID GLenum GLint param _GL_VOID_RET _GL_VOID GLushort pattern _GL_VOID_RET _GL_VOID GLdouble GLdouble GLint GLint const GLdouble *points _GL_VOID_RET _GL_VOID GLdouble GLdouble GLint GLint GLdouble v1
#define C
Definition: RandGen.cpp:25
ATTR_WARN_UNUSED_RESULT const BMVert * v2
static DBVT_INLINE btScalar size(const btDbvtVolume &a)
Definition: btDbvt.cpp:52
Scene scene
DEGForeachIDComponentCallback callback
SyclQueue void void size_t num_bytes void
uiWidgetBaseParameters params[MAX_WIDGET_BASE_BATCH]
static void area(int d1, int d2, int e1, int e2, float weights[2])
static const pxr::TfToken st("st", pxr::TfToken::Immortal)
#define min(a, b)
Definition: sort.c:35
void(* draw)(const struct bContext *C, struct ARegion *region)
Definition: BKE_screen.h:151
bool clip_gizmo_events_by_ui
Definition: BKE_screen.h:213
void(* exit)(struct wmWindowManager *wm, struct ARegion *region)
Definition: BKE_screen.h:149
void(* keymap)(struct wmKeyConfig *keyconf)
Definition: BKE_screen.h:177
void(* message_subscribe)(const wmRegionMessageSubscribeParams *params)
Definition: BKE_screen.h:167
void(* cursor)(struct wmWindow *win, struct ScrArea *area, struct ARegion *region)
Definition: BKE_screen.h:179
int(* snap_size)(const struct ARegion *region, int size, int axis)
Definition: BKE_screen.h:163
short lock
Definition: BKE_screen.h:211
void(* draw_overlay)(const struct bContext *C, struct ARegion *region)
Definition: BKE_screen.h:159
void(* listener)(const wmRegionListenerParams *params)
Definition: BKE_screen.h:165
ListBase drawcalls
Definition: BKE_screen.h:195
struct ARegionType * next
Definition: BKE_screen.h:142
void(* on_view2d_changed)(const struct bContext *C, struct ARegion *region)
Definition: BKE_screen.h:192
int keymapflag
Definition: BKE_screen.h:208
void(* free)(struct ARegion *)
Definition: BKE_screen.h:169
void(* operatortypes)(void)
Definition: BKE_screen.h:175
ListBase headertypes
Definition: BKE_screen.h:201
bContextDataCallback context
Definition: BKE_screen.h:182
void(* layout)(const struct bContext *C, struct ARegion *region)
Definition: BKE_screen.h:161
struct ARegionType * prev
Definition: BKE_screen.h:142
short event_cursor
Definition: BKE_screen.h:215
void(* init)(struct wmWindowManager *wm, struct ARegion *region)
Definition: BKE_screen.h:147
ListBase paneltypes
Definition: BKE_screen.h:198
short do_lock
Definition: BKE_screen.h:211
ListBase panels
short regiontype
void(* draw)(const struct bContext *C, struct Header *header)
Definition: BKE_screen.h:345
int region_type
Definition: BKE_screen.h:341
bool(* poll)(const struct bContext *C, struct HeaderType *ht)
Definition: BKE_screen.h:343
struct HeaderType * next
Definition: BKE_screen.h:337
int space_type
Definition: BKE_screen.h:340
struct HeaderType * prev
Definition: BKE_screen.h:337
char idname[BKE_ST_MAXNAME]
Definition: BKE_screen.h:339
ExtensionRNA rna_ext
Definition: BKE_screen.h:348
struct HeaderType * type
Definition: BKE_screen.h:352
struct uiLayout * layout
Definition: BKE_screen.h:353
Definition: DNA_ID.h:368
const char * description
Definition: BKE_screen.h:365
char owner_id[BKE_ST_MAXNAME]
Definition: BKE_screen.h:364
struct MenuType * next
Definition: BKE_screen.h:359
char label[BKE_ST_MAXNAME]
Definition: BKE_screen.h:362
struct MenuType * prev
Definition: BKE_screen.h:359
ExtensionRNA rna_ext
Definition: BKE_screen.h:373
char idname[BKE_ST_MAXNAME]
Definition: BKE_screen.h:361
bool(* poll)(const struct bContext *C, struct MenuType *mt)
Definition: BKE_screen.h:368
void(* draw)(const struct bContext *C, struct Menu *menu)
Definition: BKE_screen.h:370
char translation_context[BKE_ST_MAXNAME]
Definition: BKE_screen.h:363
struct uiLayout * layout
Definition: BKE_screen.h:378
struct MenuType * type
Definition: BKE_screen.h:377
ExtensionRNA rna_ext
Definition: BKE_screen.h:274
char owner_id[BKE_ST_MAXNAME]
Definition: BKE_screen.h:229
struct PanelType * prev
Definition: BKE_screen.h:221
short(* get_list_data_expand_flag)(const struct bContext *C, struct Panel *pa)
Definition: BKE_screen.h:260
void(* draw)(const struct bContext *C, struct Panel *panel)
Definition: BKE_screen.h:248
void(* draw_header_preset)(const struct bContext *C, struct Panel *panel)
Definition: BKE_screen.h:246
bool(* poll)(const struct bContext *C, struct PanelType *pt)
Definition: BKE_screen.h:242
void(* draw_header)(const struct bContext *C, struct Panel *panel)
Definition: BKE_screen.h:244
short region_type
Definition: BKE_screen.h:234
char idname[BKE_ST_MAXNAME]
Definition: BKE_screen.h:223
struct PanelType * next
Definition: BKE_screen.h:221
short space_type
Definition: BKE_screen.h:233
void(* set_list_data_expand_flag)(const struct bContext *C, struct Panel *pa, short expand_flag)
Definition: BKE_screen.h:267
char context[BKE_ST_MAXNAME]
Definition: BKE_screen.h:227
void(* reorder)(struct bContext *C, struct Panel *pa, int new_index)
Definition: BKE_screen.h:253
char translation_context[BKE_ST_MAXNAME]
Definition: BKE_screen.h:226
int ui_units_x
Definition: BKE_screen.h:236
char active_property[BKE_ST_MAXNAME]
Definition: BKE_screen.h:232
ListBase children
Definition: BKE_screen.h:271
char category[BKE_ST_MAXNAME]
Definition: BKE_screen.h:228
struct PanelType * parent
Definition: BKE_screen.h:270
char * description
Definition: BKE_screen.h:225
char label[BKE_ST_MAXNAME]
Definition: BKE_screen.h:224
char parent_id[BKE_ST_MAXNAME]
Definition: BKE_screen.h:230
ListBase regiontypes
Definition: BKE_screen.h:112
void(* exit)(struct wmWindowManager *wm, struct ScrArea *area)
Definition: BKE_screen.h:78
void(* deactivate)(struct ScrArea *area)
Definition: BKE_screen.h:83
int iconid
Definition: BKE_screen.h:67
void(* keymap)(struct wmKeyConfig *keyconf)
Definition: BKE_screen.h:94
void(* operatortypes)(void)
Definition: BKE_screen.h:92
void(* id_remap)(struct ScrArea *area, struct SpaceLink *sl, const struct IDRemapper *mappings)
Definition: BKE_screen.h:105
void(* gizmos)(void)
Definition: BKE_screen.h:99
void(* free)(struct SpaceLink *sl)
Definition: BKE_screen.h:73
struct SpaceType * prev
Definition: BKE_screen.h:63
void(* space_subtype_item_extend)(struct bContext *C, EnumPropertyItem **item, int *totitem)
Definition: BKE_screen.h:109
void(* refresh)(const struct bContext *C, struct ScrArea *area)
Definition: BKE_screen.h:86
int keymapflag
Definition: BKE_screen.h:117
void(* listener)(const wmSpaceTypeListenerParams *params)
Definition: BKE_screen.h:80
void(* init)(struct wmWindowManager *wm, struct ScrArea *area)
Definition: BKE_screen.h:76
int spaceid
Definition: BKE_screen.h:66
bContextDataCallback context
Definition: BKE_screen.h:102
void(* space_subtype_set)(struct ScrArea *area, int value)
Definition: BKE_screen.h:108
char name[BKE_ST_MAXNAME]
Definition: BKE_screen.h:65
struct SpaceType * next
Definition: BKE_screen.h:63
void(* dropboxes)(void)
Definition: BKE_screen.h:96
int(* space_subtype_get)(struct ScrArea *area)
Definition: BKE_screen.h:107
struct uiListType * next
Definition: BKE_screen.h:319
char idname[BKE_ST_MAXNAME]
Definition: BKE_screen.h:321
uiListFilterItemsFunc filter_items
Definition: BKE_screen.h:325
struct uiListType * prev
Definition: BKE_screen.h:319
ExtensionRNA rna_ext
Definition: BKE_screen.h:331
uiListDrawFilterFunc draw_filter
Definition: BKE_screen.h:324
uiListDrawItemFunc draw_item
Definition: BKE_screen.h:323
uiListListener listener
Definition: BKE_screen.h:328
struct wmWindow * window
Definition: BKE_screen.h:124
struct wmNotifier * notifier
Definition: BKE_screen.h:127
struct ScrArea * area
Definition: BKE_screen.h:125
struct ARegion * region
Definition: BKE_screen.h:126
const struct Scene * scene
Definition: BKE_screen.h:128
struct wmMsgBus * message_bus
Definition: BKE_screen.h:133
struct WorkSpace * workspace
Definition: BKE_screen.h:134
const struct bContext * context
Definition: BKE_screen.h:132
struct wmWindow * window
Definition: BKE_screen.h:56
const struct Scene * scene
Definition: BKE_screen.h:59
struct wmNotifier * notifier
Definition: BKE_screen.h:58
struct ScrArea * area
Definition: BKE_screen.h:57
int xy[2]
Definition: wm_draw.c:135