Blender  V2.93
BKE_context.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 
20 #pragma once
21 
26 #include "DNA_listBase.h"
27 #include "DNA_object_enums.h"
28 #include "RNA_types.h"
29 
30 #ifdef __cplusplus
31 extern "C" {
32 #endif
33 
34 struct ARegion;
35 struct Base;
36 struct CacheFile;
37 struct Collection;
38 struct Depsgraph;
39 struct EditBone;
40 struct ID;
41 struct Image;
42 struct LayerCollection;
43 struct ListBase;
44 struct Main;
45 struct Object;
46 struct PointerRNA;
47 struct RegionView3D;
48 struct RenderEngineType;
49 struct ReportList;
50 struct Scene;
51 struct ScrArea;
52 struct SpaceClip;
53 struct SpaceImage;
54 struct SpaceLink;
55 struct SpaceText;
56 struct StructRNA;
57 struct Text;
58 struct ToolSettings;
59 struct View3D;
60 struct ViewLayer;
61 struct bGPDframe;
62 struct bGPDlayer;
63 struct bGPdata;
64 struct bPoseChannel;
65 struct bScreen;
66 struct wmWindow;
67 struct wmWindowManager;
68 
69 /* Structs */
70 
71 struct bContext;
72 typedef struct bContext bContext;
73 
74 struct bContextDataResult;
76 
77 /* Result of context lookups.
78  * The specific values are important, and used implicitly in ctx_data_get(). Some functions also
79  * still accept/return `int` instead, to ensure that the compiler uses the correct storage size
80  * when mixing C/C++ code. */
81 typedef enum eContextResult {
82  /* The context member was found, and its data is available. */
84 
85  /* The context member was not found. */
87 
88  /* The context member was found, but its data is not available.
89  * For example, "active_bone" is a valid context member, but has not data in Object mode. */
92 
93 /* Function mapping a context member name to its value. */
94 typedef int /*eContextResult*/ (*bContextDataCallback)(const bContext *C,
95  const char *member,
97 
98 typedef struct bContextStoreEntry {
100 
101  char name[128];
104 
105 typedef struct bContextStore {
107 
109  bool used;
111 
112 /* for the context's rna mode enum
113  * keep aligned with data_mode_strings in context.c */
114 typedef enum eContextObjectMode {
135 #define CTX_MODE_NUM (CTX_MODE_VERTEX_GPENCIL + 1)
136 
137 /* Context */
138 
139 bContext *CTX_create(void);
140 void CTX_free(bContext *C);
141 
142 bContext *CTX_copy(const bContext *C);
143 
144 /* Stored Context */
145 
146 bContextStore *CTX_store_add(ListBase *contexts, const char *name, const PointerRNA *ptr);
149 void CTX_store_set(bContext *C, bContextStore *store);
151 void CTX_store_free(bContextStore *store);
152 void CTX_store_free_list(ListBase *contexts);
153 
154 /* need to store if python is initialized or not */
155 bool CTX_py_init_get(bContext *C);
156 void CTX_py_init_set(bContext *C, bool value);
157 
158 void *CTX_py_dict_get(const bContext *C);
159 void *CTX_py_dict_get_orig(const bContext *C);
160 
162  void *py_context;
164 };
165 void CTX_py_state_push(bContext *C, struct bContext_PyState *pystate, void *value);
166 void CTX_py_state_pop(bContext *C, struct bContext_PyState *pystate);
167 
168 /* Window Manager Context */
169 
170 struct wmWindowManager *CTX_wm_manager(const bContext *C);
171 struct wmWindow *CTX_wm_window(const bContext *C);
172 struct WorkSpace *CTX_wm_workspace(const bContext *C);
173 struct bScreen *CTX_wm_screen(const bContext *C);
174 struct ScrArea *CTX_wm_area(const bContext *C);
175 struct SpaceLink *CTX_wm_space_data(const bContext *C);
176 struct ARegion *CTX_wm_region(const bContext *C);
177 void *CTX_wm_region_data(const bContext *C);
178 struct ARegion *CTX_wm_menu(const bContext *C);
179 struct wmGizmoGroup *CTX_wm_gizmo_group(const bContext *C);
180 struct wmMsgBus *CTX_wm_message_bus(const bContext *C);
181 struct ReportList *CTX_wm_reports(const bContext *C);
182 
183 struct View3D *CTX_wm_view3d(const bContext *C);
185 struct SpaceText *CTX_wm_space_text(const bContext *C);
186 struct SpaceImage *CTX_wm_space_image(const bContext *C);
189 struct SpaceFile *CTX_wm_space_file(const bContext *C);
190 struct SpaceSeq *CTX_wm_space_seq(const bContext *C);
192 struct SpaceNla *CTX_wm_space_nla(const bContext *C);
193 struct SpaceNode *CTX_wm_space_node(const bContext *C);
194 struct SpaceGraph *CTX_wm_space_graph(const bContext *C);
195 struct SpaceAction *CTX_wm_space_action(const bContext *C);
196 struct SpaceInfo *CTX_wm_space_info(const bContext *C);
198 struct SpaceClip *CTX_wm_space_clip(const bContext *C);
199 struct SpaceTopBar *CTX_wm_space_topbar(const bContext *C);
201 
202 void CTX_wm_manager_set(bContext *C, struct wmWindowManager *wm);
203 void CTX_wm_window_set(bContext *C, struct wmWindow *win);
204 void CTX_wm_screen_set(bContext *C, struct bScreen *screen); /* to be removed */
205 void CTX_wm_area_set(bContext *C, struct ScrArea *area);
206 void CTX_wm_region_set(bContext *C, struct ARegion *region);
207 void CTX_wm_menu_set(bContext *C, struct ARegion *menu);
208 void CTX_wm_gizmo_group_set(bContext *C, struct wmGizmoGroup *gzgroup);
209 const char *CTX_wm_operator_poll_msg_get(struct bContext *C);
210 void CTX_wm_operator_poll_msg_set(struct bContext *C, const char *msg);
211 
212 /* Data Context
213  *
214  * - listbases consist of CollectionPointerLink items and must be
215  * freed with BLI_freelistN!
216  * - the dir listbase consists of LinkData items */
217 
218 /* data type, needed so we can tell between a NULL pointer and an empty list */
219 enum {
222 };
223 
224 PointerRNA CTX_data_pointer_get(const bContext *C, const char *member);
225 PointerRNA CTX_data_pointer_get_type(const bContext *C, const char *member, StructRNA *type);
227  const char *member,
228  StructRNA *type);
229 ListBase CTX_data_collection_get(const bContext *C, const char *member);
231  const bool use_store,
232  const bool use_rna,
233  const bool use_all);
235 int /*eContextResult*/ CTX_data_get(
236  const bContext *C, const char *member, PointerRNA *r_ptr, ListBase *r_lb, short *r_type);
237 
240 
242 void CTX_data_list_add(bContextDataResult *result, struct ID *id, StructRNA *type, void *data);
243 
244 void CTX_data_dir_set(bContextDataResult *result, const char **dir);
245 
246 void CTX_data_type_set(struct bContextDataResult *result, short type);
248 
249 bool CTX_data_equals(const char *member, const char *str);
250 bool CTX_data_dir(const char *member);
251 
252 #define CTX_DATA_BEGIN(C, Type, instance, member) \
253  { \
254  ListBase ctx_data_list; \
255  CollectionPointerLink *ctx_link; \
256  CTX_data_##member(C, &ctx_data_list); \
257  for (ctx_link = ctx_data_list.first; ctx_link; ctx_link = ctx_link->next) { \
258  Type instance = ctx_link->ptr.data;
259 
260 #define CTX_DATA_END \
261  } \
262  BLI_freelistN(&ctx_data_list); \
263  } \
264  (void)0
265 
266 #define CTX_DATA_BEGIN_WITH_ID(C, Type, instance, member, Type_id, instance_id) \
267  CTX_DATA_BEGIN (C, Type, instance, member) \
268  Type_id instance_id = (Type_id)ctx_link->ptr.owner_id;
269 
270 int ctx_data_list_count(const bContext *C, int (*func)(const bContext *, ListBase *));
271 
272 #define CTX_DATA_COUNT(C, member) ctx_data_list_count(C, CTX_data_##member)
273 
274 /* Data Context Members */
275 
276 struct Main *CTX_data_main(const bContext *C);
277 struct Scene *CTX_data_scene(const bContext *C);
279 struct Collection *CTX_data_collection(const bContext *C);
280 struct ViewLayer *CTX_data_view_layer(const bContext *C);
283 
284 const char *CTX_data_mode_string(const bContext *C);
285 enum eContextObjectMode CTX_data_mode_enum_ex(const struct Object *obedit,
286  const struct Object *ob,
287  const eObjectMode object_mode);
289 
290 void CTX_data_main_set(bContext *C, struct Main *bmain);
291 void CTX_data_scene_set(bContext *C, struct Scene *scene);
292 
293 /* Only Outliner currently! */
294 int CTX_data_selected_ids(const bContext *C, ListBase *list);
295 
298 
299 int CTX_data_editable_objects(const bContext *C, ListBase *list);
300 int CTX_data_editable_bases(const bContext *C, ListBase *list);
301 
302 int CTX_data_selected_objects(const bContext *C, ListBase *list);
303 int CTX_data_selected_bases(const bContext *C, ListBase *list);
304 
305 int CTX_data_visible_objects(const bContext *C, ListBase *list);
306 int CTX_data_visible_bases(const bContext *C, ListBase *list);
307 
309 int CTX_data_selectable_bases(const bContext *C, ListBase *list);
310 
311 struct Object *CTX_data_active_object(const bContext *C);
312 struct Base *CTX_data_active_base(const bContext *C);
313 struct Object *CTX_data_edit_object(const bContext *C);
314 
315 struct Image *CTX_data_edit_image(const bContext *C);
316 
317 struct Text *CTX_data_edit_text(const bContext *C);
319 struct Mask *CTX_data_edit_mask(const bContext *C);
320 
322 
323 int CTX_data_selected_nodes(const bContext *C, ListBase *list);
324 
325 struct EditBone *CTX_data_active_bone(const bContext *C);
326 int CTX_data_selected_bones(const bContext *C, ListBase *list);
328 int CTX_data_visible_bones(const bContext *C, ListBase *list);
329 int CTX_data_editable_bones(const bContext *C, ListBase *list);
330 
335 
336 struct bGPdata *CTX_data_gpencil_data(const bContext *C);
342 
343 bool CTX_wm_interface_locked(const bContext *C);
344 
345 /* Gets pointer to the dependency graph.
346  * If it doesn't exist yet, it will be allocated.
347  *
348  * The result dependency graph is NOT guaranteed to be up-to-date neither from relation nor from
349  * evaluated data points of view.
350  *
351  * NOTE: Can not be used if access to a fully evaluated datablock is needed. */
353 
354 /* Get dependency graph which is expected to be fully evaluated.
355  *
356  * In the release builds it is the same as CTX_data_depsgraph_pointer(). In the debug builds extra
357  * sanity checks are done. Additionally, this provides more semantic meaning to what is exactly
358  * expected to happen. */
360 
361 /* Gets fully updated and evaluated dependency graph.
362  *
363  * All the relations and evaluated objects are guaranteed to be up to date.
364  *
365  * NOTE: Will be expensive if there are relations or objects tagged for update.
366  * NOTE: If there are pending updates depsgraph hooks will be invoked. */
368 
369 /* Will Return NULL if depsgraph is not allocated yet.
370  * Only used by handful of operators which are run on file load.
371  */
373 
374 #ifdef __cplusplus
375 }
376 #endif
int CTX_data_get(const bContext *C, const char *member, PointerRNA *r_ptr, ListBase *r_lb, short *r_type)
Definition: context.c:498
struct SpaceTopBar * CTX_wm_space_topbar(const bContext *C)
Definition: context.c:908
int CTX_data_visible_pose_bones(const bContext *C, ListBase *list)
Definition: context.c:1366
struct WorkSpace * CTX_wm_workspace(const bContext *C)
Definition: context.c:704
struct ScrArea * CTX_wm_area(const bContext *C)
Definition: context.c:714
struct Scene * CTX_data_scene(const bContext *C)
Definition: context.c:1034
int CTX_data_selectable_objects(const bContext *C, ListBase *list)
Definition: context.c:1269
PointerRNA CTX_data_pointer_get(const bContext *C, const char *member)
Definition: context.c:445
bContext * CTX_copy(const bContext *C)
Definition: context.c:112
void CTX_store_set(bContext *C, bContextStore *store)
Definition: context.c:186
int CTX_data_visible_bones(const bContext *C, ListBase *list)
Definition: context.c:1341
bool CTX_wm_interface_locked(const bContext *C)
Definition: context.c:694
struct SpaceClip * CTX_wm_space_clip(const bContext *C)
Definition: context.c:899
int ctx_data_list_count(const bContext *C, int(*func)(const bContext *, ListBase *))
Definition: context.c:659
struct SpaceInfo * CTX_wm_space_info(const bContext *C)
Definition: context.c:881
void CTX_wm_region_set(bContext *C, struct ARegion *region)
Definition: context.c:985
void CTX_data_dir_set(bContextDataResult *result, const char **dir)
Definition: context.c:672
struct ARegion * CTX_wm_menu(const bContext *C)
Definition: context.c:736
PointerRNA CTX_data_pointer_get_type_silent(const bContext *C, const char *member, StructRNA *type)
Definition: context.c:475
struct SpaceNode * CTX_wm_space_node(const bContext *C)
Definition: context.c:854
struct SpaceProperties * CTX_wm_space_properties(const bContext *C)
Definition: context.c:809
int CTX_data_selected_bones(const bContext *C, ListBase *list)
Definition: context.c:1331
struct Object * CTX_data_edit_object(const bContext *C)
Definition: context.c:1296
bool CTX_data_equals(const char *member, const char *str)
Definition: context.c:623
short CTX_data_type_get(struct bContextDataResult *result)
Definition: context.c:682
void CTX_data_pointer_set(bContextDataResult *result, struct ID *id, StructRNA *type, void *data)
Definition: context.c:638
void CTX_data_scene_set(bContext *C, struct Scene *scene)
Definition: context.c:1197
struct RenderEngineType * CTX_data_engine_type(const bContext *C)
Definition: context.c:1064
bool CTX_py_init_get(bContext *C)
Definition: context.c:215
int CTX_data_visible_objects(const bContext *C, ListBase *list)
Definition: context.c:1259
int CTX_data_editable_objects(const bContext *C, ListBase *list)
Definition: context.c:1239
void CTX_wm_menu_set(bContext *C, struct ARegion *menu)
Definition: context.c:996
void CTX_data_id_pointer_set(bContextDataResult *result, struct ID *id)
Definition: context.c:633
int CTX_data_selected_editable_bases(const bContext *C, ListBase *list)
Definition: context.c:1234
int CTX_data_selected_objects(const bContext *C, ListBase *list)
Definition: context.c:1249
bContextStore * CTX_store_add(ListBase *contexts, const char *name, const PointerRNA *ptr)
Definition: context.c:126
struct Base * CTX_data_active_base(const bContext *C)
Definition: context.c:1284
void CTX_py_state_push(bContext *C, struct bContext_PyState *pystate, void *value)
Definition: context.c:233
bool CTX_data_dir(const char *member)
Definition: context.c:628
void CTX_data_id_list_add(bContextDataResult *result, struct ID *id)
Definition: context.c:643
void * CTX_py_dict_get(const bContext *C)
Definition: context.c:224
struct SpaceOutliner * CTX_wm_space_outliner(const bContext *C)
Definition: context.c:836
void * CTX_py_dict_get_orig(const bContext *C)
Definition: context.c:228
void CTX_wm_gizmo_group_set(bContext *C, struct wmGizmoGroup *gzgroup)
Definition: context.c:1001
struct bContextStore bContextStore
struct LayerCollection * CTX_data_layer_collection(const bContext *C)
Definition: context.c:1077
struct wmWindowManager * CTX_wm_manager(const bContext *C)
Definition: context.c:689
bContext * CTX_create(void)
Definition: context.c:105
void CTX_py_init_set(bContext *C, bool value)
Definition: context.c:219
@ CTX_DATA_TYPE_POINTER
Definition: BKE_context.h:220
@ CTX_DATA_TYPE_COLLECTION
Definition: BKE_context.h:221
int CTX_data_editable_gpencil_layers(const bContext *C, ListBase *list)
Definition: context.c:1391
int CTX_data_selected_editable_bones(const bContext *C, ListBase *list)
Definition: context.c:1336
struct Mask * CTX_data_edit_mask(const bContext *C)
Definition: context.c:1316
eContextObjectMode
Definition: BKE_context.h:114
@ CTX_MODE_EDIT_GPENCIL
Definition: BKE_context.h:130
@ CTX_MODE_EDIT_CURVE
Definition: BKE_context.h:116
@ CTX_MODE_PAINT_TEXTURE
Definition: BKE_context.h:126
@ CTX_MODE_EDIT_SURFACE
Definition: BKE_context.h:117
@ CTX_MODE_WEIGHT_GPENCIL
Definition: BKE_context.h:132
@ CTX_MODE_PARTICLE
Definition: BKE_context.h:127
@ CTX_MODE_SCULPT
Definition: BKE_context.h:123
@ CTX_MODE_VERTEX_GPENCIL
Definition: BKE_context.h:133
@ CTX_MODE_OBJECT
Definition: BKE_context.h:128
@ CTX_MODE_EDIT_MESH
Definition: BKE_context.h:115
@ CTX_MODE_EDIT_TEXT
Definition: BKE_context.h:118
@ CTX_MODE_EDIT_ARMATURE
Definition: BKE_context.h:119
@ CTX_MODE_SCULPT_GPENCIL
Definition: BKE_context.h:131
@ CTX_MODE_EDIT_LATTICE
Definition: BKE_context.h:121
@ CTX_MODE_PAINT_GPENCIL
Definition: BKE_context.h:129
@ CTX_MODE_PAINT_VERTEX
Definition: BKE_context.h:125
@ CTX_MODE_EDIT_METABALL
Definition: BKE_context.h:120
@ CTX_MODE_PAINT_WEIGHT
Definition: BKE_context.h:124
@ CTX_MODE_POSE
Definition: BKE_context.h:122
struct SpaceSeq * CTX_wm_space_seq(const bContext *C)
Definition: context.c:827
PointerRNA CTX_data_pointer_get_type(const bContext *C, const char *member, StructRNA *type)
Definition: context.c:456
struct SpaceNla * CTX_wm_space_nla(const bContext *C)
Definition: context.c:845
int CTX_data_editable_bones(const bContext *C, ListBase *list)
Definition: context.c:1346
struct SpaceSpreadsheet * CTX_wm_space_spreadsheet(const bContext *C)
Definition: context.c:917
bContextStore * CTX_store_copy(bContextStore *store)
Definition: context.c:191
void CTX_store_free(bContextStore *store)
Definition: context.c:199
struct ViewLayer * CTX_data_view_layer(const bContext *C)
Definition: context.c:1044
int CTX_data_visible_bases(const bContext *C, ListBase *list)
Definition: context.c:1264
struct bGPDlayer * CTX_data_active_gpencil_layer(const bContext *C)
Definition: context.c:1376
struct MovieClip * CTX_data_edit_movieclip(const bContext *C)
Definition: context.c:1311
struct Collection * CTX_data_collection(const bContext *C)
Definition: context.c:1092
struct bGPdata * CTX_data_gpencil_data(const bContext *C)
Definition: context.c:1371
int CTX_data_editable_bases(const bContext *C, ListBase *list)
Definition: context.c:1244
struct wmGizmoGroup * CTX_wm_gizmo_group(const bContext *C)
Definition: context.c:741
struct Depsgraph * CTX_data_ensure_evaluated_depsgraph(const bContext *C)
Definition: context.c:1424
struct Depsgraph * CTX_data_depsgraph_on_load(const bContext *C)
Definition: context.c:1432
void CTX_free(bContext *C)
Definition: context.c:119
const char * CTX_wm_operator_poll_msg_get(struct bContext *C)
Definition: context.c:1011
ListBase CTX_data_dir_get(const bContext *C)
Definition: context.c:618
struct Object * CTX_data_active_object(const bContext *C)
Definition: context.c:1279
struct View3D * CTX_wm_view3d(const bContext *C)
Definition: context.c:760
bContextStore * CTX_store_add_all(ListBase *contexts, bContextStore *context)
Definition: context.c:154
struct EditBone * CTX_data_active_bone(const bContext *C)
Definition: context.c:1321
void CTX_py_state_pop(bContext *C, struct bContext_PyState *pystate)
Definition: context.c:241
struct SpaceUserPref * CTX_wm_space_userpref(const bContext *C)
Definition: context.c:890
const char * CTX_data_mode_string(const bContext *C)
struct Depsgraph * CTX_data_expect_evaluated_depsgraph(const bContext *C)
Definition: context.c:1415
eContextResult
Definition: BKE_context.h:81
@ CTX_RESULT_MEMBER_NOT_FOUND
Definition: BKE_context.h:86
@ CTX_RESULT_OK
Definition: BKE_context.h:83
@ CTX_RESULT_NO_DATA
Definition: BKE_context.h:90
int CTX_data_selected_ids(const bContext *C, ListBase *list)
Definition: context.c:1219
ListBase CTX_data_dir_get_ex(const bContext *C, const bool use_store, const bool use_rna, const bool use_all)
Definition: context.c:541
struct SpaceGraph * CTX_wm_space_graph(const bContext *C)
Definition: context.c:863
void CTX_data_list_add(bContextDataResult *result, struct ID *id, StructRNA *type, void *data)
Definition: context.c:651
struct bScreen * CTX_wm_screen(const bContext *C)
Definition: context.c:709
struct Image * CTX_data_edit_image(const bContext *C)
Definition: context.c:1301
void CTX_wm_screen_set(bContext *C, struct bScreen *screen)
Definition: context.c:960
void * CTX_wm_region_data(const bContext *C)
Definition: context.c:730
void CTX_wm_window_set(bContext *C, struct wmWindow *win)
Definition: context.c:942
int CTX_data_selected_pose_bones(const bContext *C, ListBase *list)
Definition: context.c:1356
void CTX_data_main_set(bContext *C, struct Main *bmain)
Definition: context.c:1028
void CTX_store_free_list(ListBase *contexts)
Definition: context.c:205
int CTX_data_visible_gpencil_layers(const bContext *C, ListBase *list)
Definition: context.c:1386
enum eContextObjectMode CTX_data_mode_enum_ex(const struct Object *obedit, const struct Object *ob, const eObjectMode object_mode)
struct SpaceLink * CTX_wm_space_data(const bContext *C)
Definition: context.c:719
void CTX_data_type_set(struct bContextDataResult *result, short type)
Definition: context.c:677
struct SpaceAction * CTX_wm_space_action(const bContext *C)
Definition: context.c:872
int CTX_data_selectable_bases(const bContext *C, ListBase *list)
Definition: context.c:1274
struct ReportList * CTX_wm_reports(const bContext *C)
Definition: context.c:751
int CTX_data_selected_bases(const bContext *C, ListBase *list)
Definition: context.c:1254
struct wmMsgBus * CTX_wm_message_bus(const bContext *C)
Definition: context.c:746
struct ARegion * CTX_wm_region(const bContext *C)
Definition: context.c:725
struct Depsgraph * CTX_data_depsgraph_pointer(const bContext *C)
Definition: context.c:1401
struct SpaceText * CTX_wm_space_text(const bContext *C)
Definition: context.c:782
int CTX_data_selected_nodes(const bContext *C, ListBase *list)
Definition: context.c:1224
int CTX_data_selected_editable_objects(const bContext *C, ListBase *list)
Definition: context.c:1229
void CTX_wm_area_set(bContext *C, struct ScrArea *area)
Definition: context.c:973
void CTX_wm_operator_poll_msg_set(struct bContext *C, const char *msg)
Definition: context.c:1006
struct CacheFile * CTX_data_edit_cachefile(const bContext *C)
Definition: context.c:1326
int CTX_data_editable_gpencil_strokes(const bContext *C, ListBase *list)
Definition: context.c:1396
struct SpaceImage * CTX_wm_space_image(const bContext *C)
Definition: context.c:800
ListBase CTX_data_collection_get(const bContext *C, const char *member)
Definition: context.c:486
void CTX_wm_manager_set(bContext *C, struct wmWindowManager *wm)
Definition: context.c:926
int CTX_data_selected_pose_bones_from_active_object(const bContext *C, ListBase *list)
Definition: context.c:1361
struct Main * CTX_data_main(const bContext *C)
Definition: context.c:1018
struct ToolSettings * CTX_data_tool_settings(const bContext *C)
Definition: context.c:1208
struct SpaceConsole * CTX_wm_space_console(const bContext *C)
Definition: context.c:791
struct bContextStoreEntry bContextStoreEntry
struct RegionView3D * CTX_wm_region_view3d(const bContext *C)
Definition: context.c:769
struct SpaceFile * CTX_wm_space_file(const bContext *C)
Definition: context.c:818
struct wmWindow * CTX_wm_window(const bContext *C)
Definition: context.c:699
struct Text * CTX_data_edit_text(const bContext *C)
Definition: context.c:1306
enum eContextObjectMode CTX_data_mode_enum(const bContext *C)
Definition: context.c:1174
struct bPoseChannel * CTX_data_active_pose_bone(const bContext *C)
Definition: context.c:1351
bContextStore * CTX_store_get(bContext *C)
Definition: context.c:181
struct bGPDframe * CTX_data_active_gpencil_frame(const bContext *C)
Definition: context.c:1381
struct Depsgraph Depsgraph
Definition: DEG_depsgraph.h:51
These structs are the foundation for all linked lists in the library system.
eObjectMode
_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
#define C
Definition: RandGen.cpp:39
Scene scene
#define str(s)
static void area(int d1, int d2, int e1, int e2, float weights[2])
struct SELECTID_Context context
Definition: select_engine.c:47
Definition: DNA_ID.h:273
Definition: BKE_main.h:116
struct bContextStoreEntry * prev
Definition: BKE_context.h:99
struct bContextStoreEntry * next
Definition: BKE_context.h:99
struct bContextStore * next
Definition: BKE_context.h:106
ListBase entries
Definition: BKE_context.h:108
struct bContextStore * prev
Definition: BKE_context.h:106
void * py_context_orig
Definition: BKE_context.h:163
PointerRNA * ptr
Definition: wm_files.c:3157