Blender V5.0
BPY_extern.hh
Go to the documentation of this file.
1/* SPDX-FileCopyrightText: 2023 Blender Authors
2 *
3 * SPDX-License-Identifier: GPL-2.0-or-later */
4
8
9#pragma once
10
11#include <optional>
12#include <string>
13
14#include "BLI_sys_types.h"
15
16#ifdef WITH_INTERNATIONAL
17
18# include "BLI_string_ref.hh"
19
20#endif
21
22struct ARegionType;
24struct ChannelDriver; /* DNA_anim_types.h */
25struct ID; /* DNA_ID.h */
26struct ListBase; /* DNA_listBase.h */
27struct Object; /* DNA_object_types.h */
28struct PathResolvedRNA;
29struct Text; /* defined in DNA_text_types.h */
30struct bConstraint; /* DNA_constraint_types.h */
31struct bConstraintOb; /* DNA_constraint_types.h */
32struct bConstraintTarget; /* DNA_constraint_types.h */
33struct bContext;
35struct StructRNA;
36struct wmWindowManager;
37
38/* global interpreter lock */
39
40using BPy_ThreadStatePtr = void *;
41
50
52#define BPy_BEGIN_ALLOW_THREADS \
53 { \
54 BPy_ThreadStatePtr _bpy_saved_tstate = BPY_thread_save(); \
55 (void)0
56#define BPy_END_ALLOW_THREADS \
57 BPY_thread_restore(_bpy_saved_tstate); \
58 } \
59 (void)0
60
68
69void BPY_text_free_code(Text *text);
75
76void BPY_app_handlers_reset(bool do_all);
77
81void BPY_driver_exit();
82
88void BPY_driver_reset();
89
94[[nodiscard]] float BPY_driver_exec(PathResolvedRNA *anim_rna,
95 ChannelDriver *driver,
96 ChannelDriver *driver_orig,
97 const AnimationEvalContext *anim_eval_context);
98
103void BPY_DECREF(void *pyob_ptr);
104
105void BPY_DECREF_RNA_INVALIDATE(void *pyob_ptr);
106[[nodiscard]] bool BPY_context_member_get(bContext *C,
107 const char *member,
114
123void BPY_context_dict_clear_members_array(void **dict_p,
124 void *dict_orig,
125 const char *context_members[],
126 uint context_members_len);
127
128void BPY_id_release(ID *id);
129
135
139[[nodiscard]] bool BPY_string_is_keyword(const char *str);
140
145[[nodiscard]] std::optional<std::string> BPY_python_current_file_and_line(void);
146
147/* `bpy_rna_callback.cc` */
148
151
152/* I18n for addons */
153#ifdef WITH_INTERNATIONAL
154[[nodiscard]] std::optional<blender::StringRefNull> BPY_app_translations_py_pgettext(
156#endif
unsigned int uint
bool BPY_string_is_keyword(const char *str)
void BPY_context_dict_clear_members_array(void **dict_p, void *dict_orig, const char *context_members[], uint context_members_len)
void BPY_id_release(ID *id)
Definition bpy_rna.cc:397
void BPY_free_srna_pytype(StructRNA *srna)
Definition bpy_rna.cc:10084
float BPY_driver_exec(PathResolvedRNA *anim_rna, ChannelDriver *driver, ChannelDriver *driver_orig, const AnimationEvalContext *anim_eval_context)
void BPY_modules_update()
std::optional< std::string > BPY_python_current_file_and_line(void)
void BPY_context_set(bContext *C)
void BPY_DECREF_RNA_INVALIDATE(void *pyob_ptr)
void * BPy_ThreadStatePtr
Definition BPY_extern.hh:40
void BPY_context_update(bContext *C)
void BPY_thread_restore(BPy_ThreadStatePtr tstate)
bool BPY_context_member_get(bContext *C, const char *member, bContextDataResult *result)
BPy_ThreadStatePtr BPY_thread_save()
void BPY_callback_screen_free(ARegionType *art)
void BPY_text_free_code(Text *text)
void BPY_driver_reset()
void BPY_driver_exit()
void BPY_modules_load_user(bContext *C)
void BPY_app_handlers_reset(bool do_all)
void BPY_callback_wm_free(wmWindowManager *wm)
void BPY_thread_backtrace_print()
void BPY_DECREF(void *pyob_ptr)
#define C
Definition RandGen.cpp:29
#define str(s)
Definition DNA_ID.h:414