Blender  V2.93
BKE_screen.h
Go to the documentation of this file.
1 /*
2  * This program is free software; you can redistribute it and/or
3  * modify it under the terms of the GNU General Public License
4  * as published by the Free Software Foundation; either version 2
5  * of the License, or (at your option) any later version.
6  *
7  * This program is distributed in the hope that it will be useful,
8  * but WITHOUT ANY WARRANTY; without even the implied warranty of
9  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
10  * GNU General Public License for more details.
11  *
12  * You should have received a copy of the GNU General Public License
13  * along with this program; if not, write to the Free Software Foundation,
14  * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
15  *
16  * The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
17  * All rights reserved.
18  */
19 #pragma once
20 
25 #include "BLI_compiler_attrs.h"
26 
27 #include "RNA_types.h"
28 
29 #include "BKE_context.h"
30 
31 #ifdef __cplusplus
32 extern "C" {
33 #endif
34 
35 struct ARegion;
36 struct BlendDataReader;
37 struct BlendLibReader;
38 struct BlendWriter;
39 struct Header;
40 struct ID;
42 struct ListBase;
43 struct Menu;
44 struct Panel;
45 struct Scene;
46 struct ScrArea;
47 struct ScrAreaMap;
48 struct ScrVert;
49 struct SpaceType;
50 struct View3D;
51 struct View3DShading;
52 struct WorkSpace;
53 struct bContext;
54 struct bScreen;
55 struct uiLayout;
56 struct uiList;
57 struct wmGizmoMap;
58 struct wmKeyConfig;
59 struct wmMsgBus;
60 struct wmNotifier;
61 struct wmWindow;
62 struct wmWindowManager;
63 
64 /* spacetype has everything stored to get an editor working, it gets initialized via
65  * ED_spacetypes_init() in editors/space_api/spacetypes.c */
66 /* an editor in Blender is a combined ScrArea + SpaceType + SpaceData */
67 
68 #define BKE_ST_MAXNAME 64
69 
70 typedef struct wmSpaceTypeListenerParams {
71  struct wmWindow *window;
72  struct ScrArea *area;
74  const struct Scene *scene;
76 
77 typedef struct SpaceType {
78  struct SpaceType *next, *prev;
79 
80  char name[BKE_ST_MAXNAME]; /* for menus */
81  int spaceid; /* unique space identifier */
82  int iconid; /* icon lookup for menus */
83 
84  /* Initial allocation, after this WM will call init() too. Some editors need
85  * area and scene data (e.g. frame range) to set their initial scrolling. */
86  struct SpaceLink *(*create)(const struct ScrArea *area, const struct Scene *scene);
87  /* not free spacelink itself */
88  void (*free)(struct SpaceLink *sl);
89 
90  /* init is to cope with file load, screen (size) changes, check handlers */
91  void (*init)(struct wmWindowManager *wm, struct ScrArea *area);
92  /* exit is called when the area is hidden or removed */
93  void (*exit)(struct wmWindowManager *wm, struct ScrArea *area);
94  /* Listeners can react to bContext changes */
96 
97  /* called when the mouse moves out of the area */
98  void (*deactivate)(struct ScrArea *area);
99 
100  /* refresh context, called after filereads, ED_area_tag_refresh() */
101  void (*refresh)(const struct bContext *C, struct ScrArea *area);
102 
103  /* after a spacedata copy, an init should result in exact same situation */
104  struct SpaceLink *(*duplicate)(struct SpaceLink *sl);
105 
106  /* register operator types on startup */
107  void (*operatortypes)(void);
108  /* add default items to WM keymap */
109  void (*keymap)(struct wmKeyConfig *keyconf);
110  /* on startup, define dropboxes for spacetype+regions */
111  void (*dropboxes)(void);
112 
113  /* initialize gizmo-map-types and gizmo-group-types with the region */
114  void (*gizmos)(void);
115 
116  /* return context data */
118 
119  /* Used when we want to replace an ID by another (or NULL). */
120  void (*id_remap)(struct ScrArea *area,
121  struct SpaceLink *sl,
122  struct ID *old_id,
123  struct ID *new_id);
124 
125  int (*space_subtype_get)(struct ScrArea *area);
126  void (*space_subtype_set)(struct ScrArea *area, int value);
127  void (*space_subtype_item_extend)(struct bContext *C, EnumPropertyItem **item, int *totitem);
128 
129  /* region type definitions */
131 
132  /* read and write... */
133 
134  /* default keymaps to add */
136 
138 
139 /* region types are also defined using spacetypes_init, via a callback */
140 
141 typedef struct wmRegionListenerParams {
142  struct wmWindow *window;
143  struct ScrArea *area; /* Can be NULL when the region is not part of an area. */
144  struct ARegion *region;
146  const struct Scene *scene;
148 
150  const struct bContext *context;
153  struct Scene *scene;
154  struct bScreen *screen;
155  struct ScrArea *area;
156  struct ARegion *region;
158 
159 typedef struct ARegionType {
160  struct ARegionType *next, *prev;
161 
162  int regionid; /* unique identifier within this space, defines RGN_TYPE_xxxx */
163 
164  /* add handlers, stuff you only do once or on area/region type/size changes */
165  void (*init)(struct wmWindowManager *wm, struct ARegion *region);
166  /* exit is called when the region is hidden or removed */
167  void (*exit)(struct wmWindowManager *wm, struct ARegion *region);
168  /* draw entirely, view changes should be handled here */
169  void (*draw)(const struct bContext *C, struct ARegion *region);
177  void (*draw_overlay)(const struct bContext *C, struct ARegion *region);
178  /* optional, compute button layout before drawing for dynamic size */
179  void (*layout)(const struct bContext *C, struct ARegion *region);
180  /* snap the size of the region (can be NULL for no snapping). */
181  int (*snap_size)(const struct ARegion *region, int size, int axis);
182  /* contextual changes should be handled here */
184  /* Optional callback to generate subscriptions. */
186 
187  void (*free)(struct ARegion *);
188 
189  /* split region, copy data optionally */
190  void *(*duplicate)(void *poin);
191 
192  /* register operator types on startup */
193  void (*operatortypes)(void);
194  /* add own items to keymap */
195  void (*keymap)(struct wmKeyConfig *keyconf);
196  /* allows default cursor per region */
197  void (*cursor)(struct wmWindow *win, struct ScrArea *area, struct ARegion *region);
198 
199  /* return context data */
201 
202  /* Is called whenever the current visible View2D's region changes.
203  *
204  * Used from user code such as view navigation/zoom operators to inform region about changes.
205  * The goal is to support zoom-to-fit features which gets disabled when manual navigation is
206  * performed.
207  *
208  * This callback is not called on indirect changes of the current viewport (which could happen
209  * when the `v2d->tot is changed and `cur` is adopted accordingly). */
210  void (*on_view2d_changed)(const struct bContext *C, struct ARegion *region);
211 
212  /* custom drawing callbacks */
214 
215  /* panels type definitions */
217 
218  /* header type definitions */
220 
221  /* hardcoded constraints, smaller than these values region is not visible */
223  /* when new region opens (region prefsizex/y are zero then */
225  /* default keymaps to add */
227  /* return without drawing.
228  * lock is set by region definition, and copied to do_lock by render. can become flag. */
229  short do_lock, lock;
232  /* call cursor function on each move event */
235 
236 /* panel types */
237 
238 typedef struct PanelType {
239  struct PanelType *next, *prev;
240 
241  char idname[BKE_ST_MAXNAME]; /* unique name */
242  char label[BKE_ST_MAXNAME]; /* for panel header */
243  char *description; /* for panel tooltip */
245  char context[BKE_ST_MAXNAME]; /* for buttons window */
246  char category[BKE_ST_MAXNAME]; /* for category tabs */
247  char owner_id[BKE_ST_MAXNAME]; /* for work-spaces to selectively show. */
248  char parent_id[BKE_ST_MAXNAME]; /* parent idname for sub-panels */
251  short space_type;
252  short region_type;
253  /* For popovers, 0 for default. */
255  int order;
256 
257  int flag;
258 
259  /* verify if the panel should draw or not */
260  bool (*poll)(const struct bContext *C, struct PanelType *pt);
261  /* draw header (optional) */
262  void (*draw_header)(const struct bContext *C, struct Panel *panel);
263  /* draw header preset (optional) */
264  void (*draw_header_preset)(const struct bContext *C, struct Panel *panel);
265  /* draw entirely, view changes should be handled here */
266  void (*draw)(const struct bContext *C, struct Panel *panel);
267 
268  /* For instanced panels corresponding to a list: */
269 
271  void (*reorder)(struct bContext *C, struct Panel *pa, int new_index);
278  short (*get_list_data_expand_flag)(const struct bContext *C, struct Panel *pa);
285  void (*set_list_data_expand_flag)(const struct bContext *C, struct Panel *pa, short expand_flag);
286 
287  /* sub panels */
288  struct PanelType *parent;
290 
291  /* RNA integration */
294 
295 /* #PanelType.flag */
296 enum {
308 };
309 
310 /* uilist types */
311 
312 /* Draw an item in the uiList */
313 typedef void (*uiListDrawItemFunc)(struct uiList *ui_list,
314  struct bContext *C,
315  struct uiLayout *layout,
316  struct PointerRNA *dataptr,
317  struct PointerRNA *itemptr,
318  int icon,
319  struct PointerRNA *active_dataptr,
320  const char *active_propname,
321  int index,
322  int flt_flag);
323 
324 /* Draw the filtering part of an uiList */
325 typedef void (*uiListDrawFilterFunc)(struct uiList *ui_list,
326  struct bContext *C,
327  struct uiLayout *layout);
328 
329 /* Filter items of an uiList */
330 typedef void (*uiListFilterItemsFunc)(struct uiList *ui_list,
331  struct bContext *C,
332  struct PointerRNA *,
333  const char *propname);
334 
335 typedef struct uiListType {
336  struct uiListType *next, *prev;
337 
338  char idname[BKE_ST_MAXNAME]; /* unique name */
339 
343 
344  /* RNA integration */
347 
348 /* header types */
349 
350 typedef struct HeaderType {
351  struct HeaderType *next, *prev;
352 
353  char idname[BKE_ST_MAXNAME]; /* unique name */
356 
357  bool (*poll)(const struct bContext *C, struct HeaderType *ht);
358  /* draw entirely, view changes should be handled here */
359  void (*draw)(const struct bContext *C, struct Header *header);
360 
361  /* RNA integration */
364 
365 typedef struct Header {
366  struct HeaderType *type; /* runtime */
367  struct uiLayout *layout; /* runtime for drawing */
369 
370 /* menu types */
371 
372 typedef struct MenuType {
373  struct MenuType *next, *prev;
374 
375  char idname[BKE_ST_MAXNAME]; /* unique name */
376  char label[BKE_ST_MAXNAME]; /* for button text */
378  char owner_id[BKE_ST_MAXNAME]; /* optional, see: #wmOwnerID */
379  const char *description;
380 
381  /* verify if the menu should draw or not */
382  bool (*poll)(const struct bContext *C, struct MenuType *mt);
383  /* draw entirely, view changes should be handled here */
384  void (*draw)(const struct bContext *C, struct Menu *menu);
385 
386  /* RNA integration */
389 
390 typedef struct Menu {
391  struct MenuType *type; /* runtime */
392  struct uiLayout *layout; /* runtime for drawing */
394 
395 /* spacetypes */
398 struct ARegionType *BKE_regiontype_from_id(const struct SpaceType *st, int regionid);
399 const struct ListBase *BKE_spacetypes_list(void);
400 void BKE_spacetype_register(struct SpaceType *st);
401 bool BKE_spacetype_exists(int spaceid);
402 void BKE_spacetypes_free(void); /* only for quitting blender */
403 
404 /* spacedata */
406 void BKE_spacedata_copylist(ListBase *lb1, ListBase *lb2);
407 void BKE_spacedata_draw_locks(bool set);
408 
410  const struct ScrArea *area,
411  int region_type) ATTR_WARN_UNUSED_RESULT
412  ATTR_NONNULL();
413 
415  struct ScrArea *area, struct SpaceLink *sl, struct ID *old_id, struct ID *new_id));
416 void BKE_spacedata_id_unref(struct ScrArea *area, struct SpaceLink *sl, struct ID *id);
417 
418 /* area/regions */
419 struct ARegion *BKE_area_region_copy(const struct SpaceType *st, const struct ARegion *region);
420 void BKE_area_region_free(struct SpaceType *st, struct ARegion *region);
422 void BKE_screen_area_free(struct ScrArea *area);
423 /* Gizmo-maps of a region need to be freed with the region.
424  * Uses callback to avoid low-level call. */
427 
428 struct ARegion *BKE_area_find_region_type(const struct ScrArea *area, int type);
430 struct ARegion *BKE_area_find_region_xy(struct ScrArea *area, const int regiontype, int x, int y);
431 struct ARegion *BKE_screen_find_region_xy(struct bScreen *screen,
432  const int regiontype,
433  int x,
435 
436 struct ARegion *BKE_screen_find_main_region_at_xy(struct bScreen *screen,
437  const int space_type,
438  const int x,
439  const int y);
440 
443  ATTR_NONNULL(1, 2);
444 struct ScrArea *BKE_screen_find_big_area(struct bScreen *screen,
445  const int spacetype,
446  const short min);
448  const int spacetype,
449  int x,
450  int y);
451 struct ScrArea *BKE_screen_find_area_xy(struct bScreen *screen, const int spacetype, int x, int y);
452 
453 void BKE_screen_gizmo_tag_refresh(struct bScreen *screen);
454 
455 void BKE_screen_view3d_sync(struct View3D *v3d, struct Scene *scene);
456 void BKE_screen_view3d_scene_sync(struct bScreen *screen, struct Scene *scene);
458  ATTR_NONNULL();
460 
461 /* zoom factor conversion */
462 float BKE_screen_view3d_zoom_to_fac(float camzoom);
463 float BKE_screen_view3d_zoom_from_fac(float zoomfac);
464 
465 void BKE_screen_view3d_shading_init(struct View3DShading *shading);
466 
467 /* screen */
469 
470 void BKE_screen_free(struct bScreen *screen);
471 void BKE_screen_area_map_free(struct ScrAreaMap *area_map) ATTR_NONNULL();
472 
473 struct ScrEdge *BKE_screen_find_edge(const struct bScreen *screen,
474  struct ScrVert *v1,
475  struct ScrVert *v2);
476 void BKE_screen_sort_scrvert(struct ScrVert **v1, struct ScrVert **v2);
477 void BKE_screen_remove_double_scrverts(struct bScreen *screen);
478 void BKE_screen_remove_double_scredges(struct bScreen *screen);
479 void BKE_screen_remove_unused_scredges(struct bScreen *screen);
480 void BKE_screen_remove_unused_scrverts(struct bScreen *screen);
481 
482 void BKE_screen_header_alignment_reset(struct bScreen *screen);
483 
484 /* .blend file I/O */
486  struct View3DShading *shading);
488  struct View3DShading *shading);
489 
490 void BKE_screen_area_map_blend_write(struct BlendWriter *writer, struct ScrAreaMap *area_map);
492  struct ScrAreaMap *area_map);
493 void BKE_screen_view3d_do_versions_250(struct View3D *v3d, ListBase *regions);
495  struct ID *parent_id,
496  struct ScrArea *area);
497 bool BKE_screen_blend_read_data(struct BlendDataReader *reader, struct bScreen *screen);
498 
499 #ifdef __cplusplus
500 }
501 #endif
int(* bContextDataCallback)(const bContext *C, const char *member, bContextDataResult *result)
Definition: BKE_context.h:94
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:709
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))
struct ScrArea * BKE_screen_find_area_xy(struct bScreen *screen, const int spacetype, int x, int y)
Definition: screen.c:1018
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:273
void BKE_spacedata_id_unref(struct ScrArea *area, struct SpaceLink *sl, struct ID *id)
Definition: screen.c:599
void BKE_screen_view3d_sync(struct View3D *v3d, struct Scene *scene)
Definition: screen.c:1023
void BKE_region_callback_refresh_tag_gizmomap_set(void(*callback)(struct wmGizmoMap *))
Definition: screen.c:611
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:313
struct MenuType MenuType
void BKE_spacedata_draw_locks(bool set)
Definition: screen.c:547
struct ARegionType ARegionType
void BKE_area_region_panels_free(struct ListBase *panels)
Definition: screen.c:652
float BKE_screen_view3d_zoom_from_fac(float zoomfac)
Definition: screen.c:1085
void BKE_screen_foreach_id_screen_area(struct LibraryForeachIDData *data, struct ScrArea *area)
Definition: screen.c:100
void BKE_screen_area_map_free(struct ScrAreaMap *area_map) ATTR_NONNULL()
Definition: screen.c:725
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:373
#define BKE_ST_MAXNAME
Definition: BKE_screen.h:68
void BKE_spacedata_copylist(ListBase *lb1, ListBase *lb2)
Definition: screen.c:527
void(* uiListFilterItemsFunc)(struct uiList *ui_list, struct bContext *C, struct PointerRNA *, const char *propname)
Definition: BKE_screen.h:330
struct HeaderType HeaderType
void BKE_screen_remove_double_scredges(struct bScreen *screen)
Definition: screen.c:817
void BKE_screen_view3d_shading_init(struct View3DShading *shading)
Definition: screen.c:1054
struct ARegion * BKE_area_find_region_active_win(struct ScrArea *area)
Definition: screen.c:918
void BKE_spacedata_freelist(ListBase *lb)
Definition: screen.c:440
void BKE_screen_view3d_do_versions_250(struct View3D *v3d, ListBase *regions)
Definition: screen.c:1485
struct ARegion * BKE_area_find_region_xy(struct ScrArea *area, const int regiontype, int x, int y)
Definition: screen.c:933
void BKE_screen_area_map_blend_write(struct BlendWriter *writer, struct ScrAreaMap *area_map)
Definition: screen.c:1390
void BKE_screen_remove_unused_scrverts(struct bScreen *screen)
Definition: screen.c:878
void BKE_screen_remove_unused_scredges(struct bScreen *screen)
Definition: screen.c:833
void BKE_area_region_free(struct SpaceType *st, struct ARegion *region)
Definition: screen.c:663
bool BKE_screen_area_map_blend_read_data(struct BlendDataReader *reader, struct ScrAreaMap *area_map)
Definition: screen.c:1777
void BKE_screen_view3d_scene_sync(struct bScreen *screen, struct Scene *scene)
Definition: screen.c:1041
void BKE_screen_view3d_shading_blend_read_data(struct BlendDataReader *reader, struct View3DShading *shading)
Definition: screen.c:1131
void BKE_screen_area_blend_read_lib(struct BlendLibReader *reader, struct ID *parent_id, struct ScrArea *area)
Definition: screen.c:1802
bool BKE_spacetype_exists(int spaceid)
Definition: screen.c:433
void BKE_spacetype_register(struct SpaceType *st)
Definition: screen.c:420
struct ARegion * BKE_area_region_copy(const struct SpaceType *st, const struct ARegion *region)
void BKE_screen_gizmo_tag_refresh(struct bScreen *screen)
Definition: screen.c:616
bool BKE_screen_is_used(const struct bScreen *screen) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL()
void BKE_screen_free(struct bScreen *screen)
Definition: screen.c:737
void BKE_screen_sort_scrvert(struct ScrVert **v1, struct ScrVert **v2)
Definition: screen.c:756
struct SpaceType * BKE_spacetype_from_id(int spaceid)
Definition: screen.c:382
struct Header Header
struct wmRegionMessageSubscribeParams wmRegionMessageSubscribeParams
void BKE_screen_header_alignment_reset(struct bScreen *screen)
Definition: screen.c:1100
void BKE_region_callback_free_gizmomap_set(void(*callback)(struct wmGizmoMap *))
Definition: screen.c:636
const struct ListBase * BKE_spacetypes_list(void)
Definition: screen.c:415
struct ScrArea struct ScrArea * BKE_screen_find_big_area(struct bScreen *screen, const int spacetype, const short min)
Definition: screen.c:983
struct wmSpaceTypeListenerParams wmSpaceTypeListenerParams
bool BKE_screen_is_fullscreen_area(const struct bScreen *screen) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL()
void BKE_screen_remove_double_scrverts(struct bScreen *screen)
Definition: screen.c:765
struct PanelType PanelType
struct ScrArea * BKE_screen_find_area_from_space(struct bScreen *screen, struct SpaceLink *sl) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL(1
void BKE_screen_view3d_shading_blend_write(struct BlendWriter *writer, struct View3DShading *shading)
Definition: screen.c:1124
float BKE_screen_view3d_zoom_to_fac(float camzoom)
Definition: screen.c:1080
struct uiListType uiListType
struct ARegion * BKE_screen_find_main_region_at_xy(struct bScreen *screen, const int space_type, const int x, const int y)
Definition: screen.c:1060
void(* uiListDrawFilterFunc)(struct uiList *ui_list, struct bContext *C, struct uiLayout *layout)
Definition: BKE_screen.h:325
struct ScrArea * BKE_screen_area_map_find_area_xy(const struct ScrAreaMap *areamap, const int spacetype, int x, int y)
struct ARegion * BKE_screen_find_region_xy(struct bScreen *screen, const int regiontype, int x, int y) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL(1)
Definition: screen.c:952
struct ARegionType * BKE_regiontype_from_id(const struct SpaceType *st, int regionid)
@ PANEL_TYPE_DRAW_BOX
Definition: BKE_screen.h:305
@ PANEL_TYPE_NO_HEADER
Definition: BKE_screen.h:298
@ PANEL_TYPE_INSTANCED
Definition: BKE_screen.h:303
@ PANEL_TYPE_DEFAULT_CLOSED
Definition: BKE_screen.h:297
@ PANEL_TYPE_LAYOUT_VERT_BAR
Definition: BKE_screen.h:301
@ PANEL_TYPE_NO_SEARCH
Definition: BKE_screen.h:307
@ PANEL_TYPE_HEADER_EXPAND
Definition: BKE_screen.h:300
struct Menu Menu
#define ATTR_NONNULL(...)
void BLI_kdtree_nd_() int BLI_kdtree_nd_() int BLI_kdtree_nd_() int BLI_kdtree_nd_() ATTR_WARN_UNUSED_RESULT
_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 y
_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:39
ATTR_WARN_UNUSED_RESULT const BMVert * v2
static DBVT_INLINE btScalar size(const btDbvtVolume &a)
Definition: btDbvt.cpp:52
Scene scene
DEGForeachIDComponentCallback callback
uiWidgetBaseParameters params[MAX_WIDGET_BASE_BATCH]
static void area(int d1, int d2, int e1, int e2, float weights[2])
#define min(a, b)
Definition: sort.c:51
void(* draw)(const struct bContext *C, struct ARegion *region)
Definition: BKE_screen.h:169
bool clip_gizmo_events_by_ui
Definition: BKE_screen.h:231
void(* exit)(struct wmWindowManager *wm, struct ARegion *region)
Definition: BKE_screen.h:167
void(* keymap)(struct wmKeyConfig *keyconf)
Definition: BKE_screen.h:195
void(* message_subscribe)(const wmRegionMessageSubscribeParams *params)
Definition: BKE_screen.h:185
void(* cursor)(struct wmWindow *win, struct ScrArea *area, struct ARegion *region)
Definition: BKE_screen.h:197
int(* snap_size)(const struct ARegion *region, int size, int axis)
Definition: BKE_screen.h:181
short lock
Definition: BKE_screen.h:229
void(* draw_overlay)(const struct bContext *C, struct ARegion *region)
Definition: BKE_screen.h:177
void(* listener)(const wmRegionListenerParams *params)
Definition: BKE_screen.h:183
ListBase drawcalls
Definition: BKE_screen.h:213
struct ARegionType * next
Definition: BKE_screen.h:160
void(* on_view2d_changed)(const struct bContext *C, struct ARegion *region)
Definition: BKE_screen.h:210
int keymapflag
Definition: BKE_screen.h:226
void(* free)(struct ARegion *)
Definition: BKE_screen.h:187
void(* operatortypes)(void)
Definition: BKE_screen.h:193
ListBase headertypes
Definition: BKE_screen.h:219
bContextDataCallback context
Definition: BKE_screen.h:200
void(* layout)(const struct bContext *C, struct ARegion *region)
Definition: BKE_screen.h:179
struct ARegionType * prev
Definition: BKE_screen.h:160
short event_cursor
Definition: BKE_screen.h:233
void(* init)(struct wmWindowManager *wm, struct ARegion *region)
Definition: BKE_screen.h:165
ListBase paneltypes
Definition: BKE_screen.h:216
short do_lock
Definition: BKE_screen.h:229
ListBase panels
short regiontype
void(* draw)(const struct bContext *C, struct Header *header)
Definition: BKE_screen.h:359
int region_type
Definition: BKE_screen.h:355
bool(* poll)(const struct bContext *C, struct HeaderType *ht)
Definition: BKE_screen.h:357
struct HeaderType * next
Definition: BKE_screen.h:351
int space_type
Definition: BKE_screen.h:354
struct HeaderType * prev
Definition: BKE_screen.h:351
char idname[BKE_ST_MAXNAME]
Definition: BKE_screen.h:353
ExtensionRNA rna_ext
Definition: BKE_screen.h:362
struct HeaderType * type
Definition: BKE_screen.h:366
struct uiLayout * layout
Definition: BKE_screen.h:367
Definition: DNA_ID.h:273
const char * description
Definition: BKE_screen.h:379
char owner_id[BKE_ST_MAXNAME]
Definition: BKE_screen.h:378
struct MenuType * next
Definition: BKE_screen.h:373
char label[BKE_ST_MAXNAME]
Definition: BKE_screen.h:376
struct MenuType * prev
Definition: BKE_screen.h:373
ExtensionRNA rna_ext
Definition: BKE_screen.h:387
char idname[BKE_ST_MAXNAME]
Definition: BKE_screen.h:375
bool(* poll)(const struct bContext *C, struct MenuType *mt)
Definition: BKE_screen.h:382
void(* draw)(const struct bContext *C, struct Menu *menu)
Definition: BKE_screen.h:384
char translation_context[BKE_ST_MAXNAME]
Definition: BKE_screen.h:377
struct uiLayout * layout
Definition: BKE_screen.h:392
struct MenuType * type
Definition: BKE_screen.h:391
ExtensionRNA rna_ext
Definition: BKE_screen.h:292
char owner_id[BKE_ST_MAXNAME]
Definition: BKE_screen.h:247
struct PanelType * prev
Definition: BKE_screen.h:239
short(* get_list_data_expand_flag)(const struct bContext *C, struct Panel *pa)
Definition: BKE_screen.h:278
void(* draw)(const struct bContext *C, struct Panel *panel)
Definition: BKE_screen.h:266
void(* draw_header_preset)(const struct bContext *C, struct Panel *panel)
Definition: BKE_screen.h:264
bool(* poll)(const struct bContext *C, struct PanelType *pt)
Definition: BKE_screen.h:260
void(* draw_header)(const struct bContext *C, struct Panel *panel)
Definition: BKE_screen.h:262
short region_type
Definition: BKE_screen.h:252
char idname[BKE_ST_MAXNAME]
Definition: BKE_screen.h:241
struct PanelType * next
Definition: BKE_screen.h:239
short space_type
Definition: BKE_screen.h:251
void(* set_list_data_expand_flag)(const struct bContext *C, struct Panel *pa, short expand_flag)
Definition: BKE_screen.h:285
char context[BKE_ST_MAXNAME]
Definition: BKE_screen.h:245
void(* reorder)(struct bContext *C, struct Panel *pa, int new_index)
Definition: BKE_screen.h:271
char translation_context[BKE_ST_MAXNAME]
Definition: BKE_screen.h:244
int ui_units_x
Definition: BKE_screen.h:254
char active_property[BKE_ST_MAXNAME]
Definition: BKE_screen.h:250
ListBase children
Definition: BKE_screen.h:289
char category[BKE_ST_MAXNAME]
Definition: BKE_screen.h:246
struct PanelType * parent
Definition: BKE_screen.h:288
char * description
Definition: BKE_screen.h:243
char label[BKE_ST_MAXNAME]
Definition: BKE_screen.h:242
char parent_id[BKE_ST_MAXNAME]
Definition: BKE_screen.h:248
ListBase regiontypes
Definition: BKE_screen.h:130
void(* exit)(struct wmWindowManager *wm, struct ScrArea *area)
Definition: BKE_screen.h:93
void(* deactivate)(struct ScrArea *area)
Definition: BKE_screen.h:98
int iconid
Definition: BKE_screen.h:82
void(* keymap)(struct wmKeyConfig *keyconf)
Definition: BKE_screen.h:109
void(* operatortypes)(void)
Definition: BKE_screen.h:107
void(* gizmos)(void)
Definition: BKE_screen.h:114
void(* free)(struct SpaceLink *sl)
Definition: BKE_screen.h:88
struct SpaceType * prev
Definition: BKE_screen.h:78
void(* space_subtype_item_extend)(struct bContext *C, EnumPropertyItem **item, int *totitem)
Definition: BKE_screen.h:127
void(* refresh)(const struct bContext *C, struct ScrArea *area)
Definition: BKE_screen.h:101
int keymapflag
Definition: BKE_screen.h:135
void(* listener)(const wmSpaceTypeListenerParams *params)
Definition: BKE_screen.h:95
void(* init)(struct wmWindowManager *wm, struct ScrArea *area)
Definition: BKE_screen.h:91
int spaceid
Definition: BKE_screen.h:81
bContextDataCallback context
Definition: BKE_screen.h:117
void(* space_subtype_set)(struct ScrArea *area, int value)
Definition: BKE_screen.h:126
void(* id_remap)(struct ScrArea *area, struct SpaceLink *sl, struct ID *old_id, struct ID *new_id)
Definition: BKE_screen.h:120
char name[BKE_ST_MAXNAME]
Definition: BKE_screen.h:80
struct SpaceType * next
Definition: BKE_screen.h:78
void(* dropboxes)(void)
Definition: BKE_screen.h:111
int(* space_subtype_get)(struct ScrArea *area)
Definition: BKE_screen.h:125
struct uiListType * next
Definition: BKE_screen.h:336
char idname[BKE_ST_MAXNAME]
Definition: BKE_screen.h:338
uiListFilterItemsFunc filter_items
Definition: BKE_screen.h:342
struct uiListType * prev
Definition: BKE_screen.h:336
ExtensionRNA rna_ext
Definition: BKE_screen.h:345
uiListDrawFilterFunc draw_filter
Definition: BKE_screen.h:341
uiListDrawItemFunc draw_item
Definition: BKE_screen.h:340
struct wmWindow * window
Definition: BKE_screen.h:142
struct wmNotifier * notifier
Definition: BKE_screen.h:145
struct ScrArea * area
Definition: BKE_screen.h:143
struct ARegion * region
Definition: BKE_screen.h:144
const struct Scene * scene
Definition: BKE_screen.h:146
struct wmMsgBus * message_bus
Definition: BKE_screen.h:151
struct WorkSpace * workspace
Definition: BKE_screen.h:152
const struct bContext * context
Definition: BKE_screen.h:150
struct wmWindow * window
Definition: BKE_screen.h:71
const struct Scene * scene
Definition: BKE_screen.h:74
struct wmNotifier * notifier
Definition: BKE_screen.h:73
struct ScrArea * area
Definition: BKE_screen.h:72