Blender  V3.3
Macros | Functions | Variables
bpy_driver.c File Reference
#include <Python.h>
#include "DNA_anim_types.h"
#include "BLI_listbase.h"
#include "BLI_math_base.h"
#include "BLI_string.h"
#include "BKE_animsys.h"
#include "BKE_fcurve_driver.h"
#include "BKE_global.h"
#include "BKE_idtype.h"
#include "RNA_access.h"
#include "RNA_prototypes.h"
#include "RNA_types.h"
#include "bpy_rna_driver.h"
#include "bpy_intern_string.h"
#include "bpy_driver.h"
#include "bpy_rna.h"
#include "BPY_extern.h"
#include <opcode.h>

Go to the source code of this file.

Macros

#define USE_RNA_AS_PYOBJECT
 
#define USE_BYTECODE_WHITELIST
 
#define OK_OP(op)   [op] = true
 

Functions

int bpy_pydriver_create_dict (void)
 
static void bpy_pydriver_namespace_update_frame (const float evaltime)
 
static void bpy_pydriver_namespace_update_self (struct PathResolvedRNA *anim_rna)
 
static void bpy_pydriver_namespace_clear_self (void)
 
static PyObject * bpy_pydriver_depsgraph_as_pyobject (struct Depsgraph *depsgraph)
 
static void bpy_pydriver_namespace_update_depsgraph (struct Depsgraph *depsgraph)
 
void BPY_driver_exit (void)
 
void BPY_driver_reset (void)
 
static void pydriver_error (ChannelDriver *driver, const struct PathResolvedRNA *anim_rna)
 
bool BPY_driver_secure_bytecode_test_ex (PyObject *expr_code, PyObject *namespace_array[], const bool verbose, const char *error_prefix)
 
bool BPY_driver_secure_bytecode_test (PyObject *expr_code, PyObject *namespace, const bool verbose)
 
float BPY_driver_exec (struct PathResolvedRNA *anim_rna, ChannelDriver *driver, ChannelDriver *driver_orig, const AnimationEvalContext *anim_eval_context)
 

Variables

PyObject * bpy_pydriver_Dict = NULL
 
static PyObject * bpy_pydriver_Dict__whitelist = NULL
 
struct {
   float   evaltime
 
   PyObject *   self
 
   BPy_StructRNA *   depsgraph
 
g_pydriver_state_prev
 
static const bool secure_opcodes [255]
 

Detailed Description

This file defines the 'BPY_driver_exec' to execute python driver expressions, called by the animation system, there are also some utility functions to deal with the name-space used for driver execution.

Definition in file bpy_driver.c.

Macro Definition Documentation

◆ OK_OP

#define OK_OP (   op)    [op] = true

Definition at line 306 of file bpy_driver.c.

◆ USE_BYTECODE_WHITELIST

#define USE_BYTECODE_WHITELIST

Definition at line 39 of file bpy_driver.c.

◆ USE_RNA_AS_PYOBJECT

#define USE_RNA_AS_PYOBJECT

Definition at line 37 of file bpy_driver.c.

Function Documentation

◆ BPY_driver_exec()

float BPY_driver_exec ( struct PathResolvedRNA anim_rna,
ChannelDriver driver,
ChannelDriver driver_orig,
const AnimationEvalContext anim_eval_context 
)

◆ BPY_driver_exit()

void BPY_driver_exit ( void  )

Run on exit to free any cached data.

Definition at line 237 of file bpy_driver.c.

References bpy_pydriver_Dict, bpy_pydriver_Dict__whitelist, g_pydriver_state_prev, and NULL.

Referenced by BPY_driver_reset(), and BPY_python_end().

◆ BPY_driver_reset()

void BPY_driver_reset ( void  )

Update function, it gets rid of python-drivers global dictionary: bpy.app.driver_namespace, forcing BPY_driver_exec to recreate it. Use this when loading a new .blend file so any variables setup by the previous blend file are cleared.

Definition at line 260 of file bpy_driver.c.

References BPY_driver_exit().

Referenced by BPY_python_reset().

◆ BPY_driver_secure_bytecode_test()

bool BPY_driver_secure_bytecode_test ( PyObject *  expr_code,
PyObject *  namespace,
const bool  verbose 
)

◆ BPY_driver_secure_bytecode_test_ex()

bool BPY_driver_secure_bytecode_test_ex ( PyObject *  expr_code,
PyObject *  namespace_array[],
const bool  verbose,
const char *  error_prefix 
)

Definition at line 456 of file bpy_driver.c.

References secure_opcodes, UNLIKELY, and verbose.

Referenced by BPY_driver_exec(), and BPY_driver_secure_bytecode_test().

◆ bpy_pydriver_create_dict()

int bpy_pydriver_create_dict ( void  )

For faster execution we keep a special dictionary for py-drivers, with the needed modules and aliases.

Definition at line 51 of file bpy_driver.c.

References arg_str, bpy_pydriver_Dict, bpy_pydriver_Dict__whitelist, mod(), names, NULL, and pname.

Referenced by bpy_app_driver_dict_get(), BPY_driver_exec(), and BPY_driver_secure_bytecode_test().

◆ bpy_pydriver_depsgraph_as_pyobject()

static PyObject* bpy_pydriver_depsgraph_as_pyobject ( struct Depsgraph depsgraph)
static

◆ bpy_pydriver_namespace_clear_self()

static void bpy_pydriver_namespace_clear_self ( void  )
static

Definition at line 196 of file bpy_driver.c.

References bpy_intern_str_self, bpy_pydriver_Dict, g_pydriver_state_prev, and NULL.

Referenced by BPY_driver_exec().

◆ bpy_pydriver_namespace_update_depsgraph()

static void bpy_pydriver_namespace_update_depsgraph ( struct Depsgraph depsgraph)
static

Adds a variable depsgraph to the name-space. This can then be used to obtain evaluated data-blocks, and the current view layer and scene. See T75553.

Definition at line 216 of file bpy_driver.c.

References BLI_assert, bpy_intern_str_depsgraph, bpy_pydriver_depsgraph_as_pyobject(), bpy_pydriver_Dict, depsgraph, g_pydriver_state_prev, NULL, and UNLIKELY.

Referenced by BPY_driver_exec().

◆ bpy_pydriver_namespace_update_frame()

static void bpy_pydriver_namespace_update_frame ( const float  evaltime)
static

Definition at line 173 of file bpy_driver.c.

References bpy_intern_str_frame, bpy_pydriver_Dict, evaltime, and g_pydriver_state_prev.

Referenced by BPY_driver_exec().

◆ bpy_pydriver_namespace_update_self()

static void bpy_pydriver_namespace_update_self ( struct PathResolvedRNA anim_rna)
static

◆ pydriver_error()

static void pydriver_error ( ChannelDriver driver,
const struct PathResolvedRNA anim_rna 
)
static

Error return function for BPY_driver_exec.

Parameters
anim_rnaUsed to show the target when printing the error to give additional context.

Definition at line 282 of file bpy_driver.c.

References BKE_idtype_idcode_to_name(), DRIVER_FLAG_INVALID, ChannelDriver::expression, ChannelDriver::flag, GS, id, ID::name, PointerRNA::owner_id, PathResolvedRNA::prop, PathResolvedRNA::prop_index, PathResolvedRNA::ptr, and RNA_property_identifier().

Referenced by BPY_driver_exec().

Variable Documentation

◆ bpy_pydriver_Dict

PyObject* bpy_pydriver_Dict = NULL

◆ bpy_pydriver_Dict__whitelist

PyObject* bpy_pydriver_Dict__whitelist = NULL
static

◆ depsgraph

BPy_StructRNA* depsgraph

◆ evaltime

float evaltime

◆ 

struct { ... } g_pydriver_state_prev
Initial value:
= {
.evaltime = FLT_MAX,
.self = NULL,
.depsgraph = NULL,
}
Note
this function should do nothing most runs, only when changing frame. Not thread safe but neither is Python.

Referenced by BPY_driver_exit(), bpy_pydriver_namespace_clear_self(), bpy_pydriver_namespace_update_depsgraph(), bpy_pydriver_namespace_update_frame(), and bpy_pydriver_namespace_update_self().

◆ secure_opcodes

const bool secure_opcodes[255]
static

Definition at line 308 of file bpy_driver.c.

Referenced by BPY_driver_secure_bytecode_test_ex().

◆ self

PyObject* self

Definition at line 165 of file bpy_driver.c.

Referenced by _BaseMathObject_ReadCallback(), _BaseMathObject_ReadIndexCallback(), _BaseMathObject_WriteCallback(), _BaseMathObject_WriteIndexCallback(), _bpy_names(), AdjacencyIterator_is_incoming_get(), AdjacencyIterator_iternext(), AdjacencyIterator_object_get(), app_translations_py_messages_register(), app_translations_py_messages_unregister(), BaseMathObject_clear(), BaseMathObject_dealloc(), BaseMathObject_freeze(), BaseMathObject_is_frozen_get(), BaseMathObject_is_wrapped_get(), BaseMathObject_traverse(), BBox_repr(), BinaryPredicate0D___call__(), BinaryPredicate0D___repr__(), BinaryPredicate1D___call__(), BinaryPredicate1D___repr__(), bm_dealloc_editmode_warn(), bpy_bm_elem_copy_from(), bpy_bm_elem_hflag_get(), bpy_bm_elem_hflag_set(), bpy_bm_elem_hide_set(), bpy_bm_elem_index_get(), bpy_bm_elem_index_set(), bpy_bm_elem_select_set(), bpy_bm_generic_valid_check(), bpy_bmdeformvert_ass_subscript(), bpy_bmdeformvert_clear(), bpy_bmdeformvert_contains(), bpy_bmdeformvert_get(), bpy_bmdeformvert_items(), bpy_bmdeformvert_keys(), bpy_bmdeformvert_subscript(), bpy_bmdeformvert_values(), bpy_bmedge_calc_face_angle(), bpy_bmedge_calc_face_angle_signed(), bpy_bmedge_calc_length(), bpy_bmedge_calc_tangent(), bpy_bmedge_dealloc(), bpy_bmedge_is_boundary_get(), bpy_bmedge_is_contiguous_get(), bpy_bmedge_is_convex_get(), bpy_bmedge_is_manifold_get(), bpy_bmedge_is_wire_get(), bpy_bmedge_normal_update(), bpy_bmedge_other_vert(), bpy_bmedgeseq_get(), bpy_bmeditseliter_next(), bpy_bmeditselseq_active_get(), bpy_bmeditselseq_add(), bpy_bmeditselseq_clear(), bpy_bmeditselseq_contains(), bpy_bmeditselseq_discard(), bpy_bmeditselseq_iter(), bpy_bmeditselseq_length(), bpy_bmeditselseq_remove(), bpy_bmeditselseq_subscript_int(), bpy_bmeditselseq_subscript_slice(), bpy_bmeditselseq_validate(), bpy_bmelemseq_contains(), bpy_bmelemseq_dealloc(), bpy_bmelemseq_elem_get(), bpy_bmelemseq_ensure_lookup_table(), bpy_bmelemseq_index_update(), bpy_bmelemseq_iter(), bpy_bmelemseq_layers_get(), bpy_bmelemseq_length(), bpy_bmelemseq_subscript_int(), bpy_bmelemseq_subscript_slice(), bpy_bmesh_calc_volume(), bpy_bmesh_dealloc(), bpy_bmesh_free(), bpy_bmesh_is_wrapped_get(), bpy_bmesh_normal_update(), bpy_bmesh_op_doc_get(), bpy_bmesh_op_repr(), bpy_bmesh_select_flush(), bpy_bmesh_select_flush_mode(), bpy_bmesh_select_history_get(), bpy_bmesh_select_mode_get(), bpy_bmesh_transform(), bpy_bmface_calc_area(), bpy_bmface_calc_center_bounds(), bpy_bmface_calc_center_mean(), bpy_bmface_calc_center_median_weighted(), bpy_bmface_calc_perimeter(), bpy_bmface_calc_tangent_edge(), bpy_bmface_calc_tangent_edge_diagonal(), bpy_bmface_calc_tangent_edge_pair(), bpy_bmface_calc_tangent_vert_diagonal(), bpy_bmface_copy(), bpy_bmface_copy_from_face_interp(), bpy_bmface_dealloc(), bpy_bmface_material_index_get(), bpy_bmface_normal_flip(), bpy_bmface_normal_get(), bpy_bmface_normal_set(), bpy_bmface_normal_update(), bpy_bmfaceseq_get(), bpy_bmiter_next(), bpy_bmlayeraccess_collection_get(), bpy_bmlayercollection_active_get(), bpy_bmlayercollection_contains(), bpy_bmlayercollection_is_singleton_get(), bpy_bmlayercollection_items(), bpy_bmlayercollection_keys(), bpy_bmlayercollection_length(), bpy_bmlayercollection_new(), bpy_bmlayercollection_remove(), bpy_bmlayercollection_subscript_int(), bpy_bmlayercollection_subscript_slice(), bpy_bmlayercollection_subscript_str(), bpy_bmlayercollection_values(), bpy_bmlayercollection_verify(), bpy_bmlayeritem_copy_from(), bpy_bmlayeritem_get(), bpy_bmloop_calc_angle(), bpy_bmloop_calc_normal(), bpy_bmloop_calc_tangent(), bpy_bmloop_copy_from_face_interp(), bpy_bmloop_dealloc(), bpy_bmloop_edge_get(), bpy_bmloop_face_get(), bpy_bmloop_is_convex_get(), bpy_bmloop_link_loop_next_get(), bpy_bmloop_link_loop_prev_get(), bpy_bmloop_link_loop_radial_next_get(), bpy_bmloop_link_loop_radial_prev_get(), bpy_bmloop_vert_get(), bpy_bmloopseq_get(), bpy_bmloopuv_flag_get(), bpy_bmloopuv_uv_get(), bpy_bmloopuv_uv_set(), BPy_BMO_call(), bpy_bmvert_calc_edge_angle(), bpy_bmvert_calc_shell_factor(), bpy_bmvert_co_get(), bpy_bmvert_co_set(), bpy_bmvert_copy_from_face_interp(), bpy_bmvert_copy_from_vert_interp(), bpy_bmvert_dealloc(), bpy_bmvert_is_boundary_get(), bpy_bmvert_is_manifold_get(), bpy_bmvert_is_wire_get(), bpy_bmvert_normal_get(), bpy_bmvert_normal_set(), bpy_bmvert_normal_update(), bpy_bmvertseq_get(), bpy_bmvertskin_flag_get(), bpy_bmvertskin_radius_get(), bpy_bmvertskin_radius_set(), bpy_class_free(), BPy_Group_Iter_same_size_or_raise_error(), BPy_Group_IterItems_next(), BPy_Group_IterKeys_next(), BPy_Group_IterValues_next(), BPy_Group_View_len(), BPy_Group_ViewItems_Contains(), BPy_Group_ViewItems_iter(), BPy_Group_ViewKeys_Contains(), BPy_Group_ViewKeys_iter(), BPy_Group_ViewValues_Contains(), BPy_Group_ViewValues_iter(), BPy_IDArray_ass_subscript(), BPy_IDArray_get_typecode(), BPy_IDArray_GetItem(), BPy_IDArray_repr(), BPy_IDArray_SetItem(), BPy_IDArray_subscript(), BPy_IDArray_to_list(), BPy_IDGroup_clear(), BPy_IDGroup_Contains(), BPy_IDGroup_get(), BPy_IDGroup_GetName(), BPy_IDGroup_hash(), BPy_IDGroup_Iter_clear(), BPy_IDGroup_Iter_dealloc(), BPy_IDGroup_Iter_repr(), BPy_IDGroup_Iter_traverse(), BPy_IDGroup_Map_GetItem(), BPy_IDGroup_Map_Len(), BPy_IDGroup_Map_SetItem(), BPy_IDGroup_pop(), BPy_IDGroup_repr(), BPy_IDGroup_SetName(), BPy_IDGroup_to_dict(), BPy_IDGroup_update(), BPy_IDGroup_View_clear(), BPy_IDGroup_View_dealloc(), BPy_IDGroup_View_repr(), BPy_IDGroup_View_reversed(), BPy_IDGroup_View_traverse(), BPy_IDPropertyUIManager_hash(), BPy_IDPropertyUIManager_repr(), bpy_lib_dealloc(), bpy_lib_dir(), bpy_lib_enter(), bpy_lib_exit(), bpy_lib_exit_warn_idname(), bpy_lib_exit_warn_type(), bpy_prop_deferred_clear(), bpy_prop_deferred_dealloc(), bpy_prop_deferred_repr(), bpy_prop_deferred_traverse(), bpy_rna_context_temp_override_enter(), bpy_rna_context_temp_override_exit(), bpy_rna_data_context_clear(), bpy_rna_data_context_dealloc(), bpy_rna_data_context_exit(), bpy_rna_data_context_traverse(), BPyGPUFrameBuffer_CreatePyObject(), BPyGPUOffScreen__tp_dealloc(), BPyGPUTexture__tp_dealloc(), BPyGPUTexture_CreatePyObject(), BPyGPUUniformBuf__tp_dealloc(), BPyGPUVertFormat_CreatePyObject(), Buffer_ass_item(), Buffer_ass_slice(), Buffer_ass_subscript(), Buffer_dealloc(), Buffer_dimensions(), Buffer_item(), Buffer_repr(), Buffer_slice(), Buffer_subscript(), Buffer_to_list_recursive(), ChainingIterator_init(), ChainingIterator_is_incrementing_get(), ChainingIterator_object_get(), ChainingIterator_traverse(), ChainPredicateIterator_dealloc(), ChainPredicateIterator_init(), Color_channel_hsv_get(), Color_channel_hsv_set(), Color_copy(), Color_CreatePyObject(), Color_from_aces_to_scene_linear(), Color_from_rec709_linear_to_scene_linear(), Color_from_scene_linear_to_aces(), Color_from_scene_linear_to_rec709_linear(), Color_from_scene_linear_to_srgb(), Color_from_scene_linear_to_xyz_d65(), Color_from_srgb_to_scene_linear(), Color_from_xyz_d65_to_scene_linear(), Color_hash(), Color_hsv_get(), Color_hsv_set(), Color_item(), Color_neg(), Color_slice(), Color_str(), Color_to_tuple_ex(), CurvePoint_fedge_get(), CurvePoint_t2d_get(), CurvePointIterator_object_get(), CurvePointIterator_t_get(), CurvePointIterator_u_get(), Euler_copy(), Euler_CreatePyObject(), Euler_hash(), Euler_item(), Euler_make_compatible(), Euler_rotate(), Euler_rotate_axis(), Euler_slice(), Euler_str(), Euler_to_matrix(), Euler_to_quaternion(), Euler_to_tuple_ex(), Euler_zero(), FEdge_id_get(), FEdge_is_smooth_get(), FEdge_nature_get(), FEdgeSharp_face_mark_left_get(), FEdgeSharp_face_mark_right_get(), FEdgeSharp_material_index_left_get(), FEdgeSharp_material_index_right_get(), FEdgeSharp_material_left_get(), FEdgeSharp_material_right_get(), FEdgeSharp_mathutils_get(), FEdgeSharp_mathutils_get_index(), FEdgeSharp_mathutils_set_index(), FEdgeSmooth_face_mark_get(), FEdgeSmooth_material_get(), FEdgeSmooth_material_index_get(), FEdgeSmooth_mathutils_get(), FEdgeSmooth_mathutils_get_index(), FEdgeSmooth_mathutils_set_index(), foreach_attr_type(), foreach_getset(), foreach_parse_args(), FrsCurve_is_empty_get(), FrsCurve_segments_size_get(), FrsMaterial_mathutils_set_index(), FrsMaterial_priority_get(), FrsMaterial_repr(), FrsMaterial_shininess_get(), FrsNoise_repr(), FrsNoise_smoothNoise1(), FrsNoise_turbulence1(), FrsNoise_turbulence_smooth(), Id_first_get(), Id_repr(), Id_second_get(), idp_array_py_type(), integration_type_get(), Interface0D_dealloc(), Interface0D_id_get(), Interface0D_point_2d_get(), Interface0D_point_3d_get(), Interface0D_repr(), Interface0DIterator_at_last_get(), Interface0DIterator_iternext(), Interface0DIterator_object_get(), Interface0DIterator_t_get(), Interface0DIterator_u_get(), Interface1D_dealloc(), Interface1D_id_get(), Interface1D_points_begin(), Interface1D_points_end(), Interface1D_repr(), Interface1D_time_stamp_get(), Interface1D_vertices_begin(), Interface1D_vertices_end(), Iterator_decrement(), Iterator_increment(), Iterator_is_begin_get(), Iterator_is_end_get(), Iterator_repr(), mathutils_matrix_col_get(), mathutils_matrix_col_set(), mathutils_rna_matrix_get(), mathutils_rna_matrix_set(), mathutils_rna_vector_get(), mathutils_rna_vector_get_index(), mathutils_rna_vector_set(), mathutils_rna_vector_set_index(), Matrix_adjugate(), Matrix_ass_item_col(), Matrix_ass_item_row(), Matrix_ass_slice(), Matrix_ass_subscript(), Matrix_copy(), Matrix_copy_notest(), Matrix_CreatePyObject(), Matrix_decompose(), Matrix_determinant(), matrix_determinant_internal(), Matrix_hash(), Matrix_identity(), matrix_identity_internal(), Matrix_invert(), matrix_invert_args_check(), matrix_invert_internal(), matrix_invert_is_compat(), Matrix_invert_safe(), matrix_invert_safe_internal(), Matrix_inverted_noargs(), Matrix_is_negative_get(), Matrix_is_orthogonal_axis_vectors_get(), Matrix_is_orthogonal_get(), Matrix_item_col(), Matrix_item_row(), Matrix_lerp(), Matrix_median_scale_get(), Matrix_normalize(), Matrix_repr(), Matrix_resize_4x4(), Matrix_rotate(), Matrix_slice(), Matrix_str(), Matrix_subscript(), Matrix_to_euler(), Matrix_to_NxN(), Matrix_to_quaternion(), Matrix_to_scale(), Matrix_to_translation(), Matrix_translation_get(), Matrix_translation_set(), Matrix_transpose(), matrix_unit_internal(), Matrix_zero(), MatrixAccess_ass_subscript(), MatrixAccess_clear(), MatrixAccess_dealloc(), MatrixAccess_len(), MatrixAccess_slice(), MatrixAccess_subscript(), MatrixAccess_traverse(), orientedViewEdgeIterator_iternext(), orientedViewEdgeIterator_object_get(), parallel_for_cancel(), py_bvhtree__tp_dealloc(), py_bvhtree_find_nearest(), py_bvhtree_find_nearest_range(), py_bvhtree_nearest_point_cb(), py_bvhtree_nearest_point_range_cb(), py_bvhtree_overlap(), py_bvhtree_ray_cast(), py_bvhtree_raycast_cb(), py_imbuf_copy(), py_imbuf_crop(), py_imbuf_dealloc(), py_imbuf_free(), py_imbuf_hash(), py_imbuf_resize(), py_imbuf_valid_check(), py_kdtree_balance(), py_kdtree_find(), py_kdtree_find_n(), py_kdtree_find_range(), py_kdtree_insert(), pygpu_batch__tp_clear(), pygpu_batch__tp_dealloc(), pygpu_batch__tp_traverse(), pygpu_batch_draw(), pygpu_batch_is_program_or_error(), pygpu_batch_program_set(), pygpu_batch_program_use_begin(), pygpu_batch_vertbuf_add(), pygpu_buffer__bf_getbuffer(), pygpu_buffer__mp_ass_subscript(), pygpu_buffer__mp_subscript(), pygpu_buffer__sq_ass_item(), pygpu_buffer__sq_item(), pygpu_buffer__tp_clear(), pygpu_buffer__tp_dealloc(), pygpu_buffer__tp_repr(), pygpu_buffer__tp_traverse(), pygpu_buffer_ass_slice(), pygpu_buffer_dimensions_get(), pygpu_buffer_dimensions_set(), pygpu_buffer_slice(), pygpu_buffer_to_list_recursive(), pygpu_framebuffer_clear(), pygpu_framebuffer_free_safe(), pygpu_framebuffer_is_bound(), pygpu_framebuffer_read_color(), pygpu_framebuffer_read_depth(), pygpu_framebuffer_stack_context__tp_dealloc(), pygpu_framebuffer_stack_context_enter(), pygpu_framebuffer_stack_context_exit(), pygpu_framebuffer_viewport_get(), pygpu_framebuffer_viewport_set(), pygpu_IndexBuf__tp_dealloc(), pygpu_interface_info_get_args(), pygpu_matrix_stack_context_enter(), pygpu_matrix_stack_context_exit(), pygpu_offscreen_color_texture_get(), pygpu_offscreen_draw_view3d(), pygpu_offscreen_free(), pygpu_offscreen_height_get(), pygpu_offscreen_stack_context__tp_dealloc(), pygpu_offscreen_stack_context_enter(), pygpu_offscreen_stack_context_exit(), pygpu_offscreen_texture_color_get(), pygpu_offscreen_unbind(), pygpu_offscreen_width_get(), pygpu_shader__tp_dealloc(), pygpu_shader_attr_from_name(), pygpu_shader_bind(), pygpu_shader_info_fragment_out(), pygpu_shader_info_fragment_source(), pygpu_shader_info_push_constant(), pygpu_shader_info_sampler(), pygpu_shader_info_typedef_source(), pygpu_shader_info_uniform_buf(), pygpu_shader_info_vertex_in(), pygpu_shader_info_vertex_out(), pygpu_shader_info_vertex_source(), pygpu_shader_name(), pygpu_shader_program_get(), pygpu_shader_uniform_block(), pygpu_shader_uniform_block_from_name(), pygpu_shader_uniform_bool(), pygpu_shader_uniform_float(), pygpu_shader_uniform_from_name(), pygpu_shader_uniform_int(), pygpu_shader_uniform_sampler(), pygpu_shader_uniform_vector_float(), pygpu_shader_uniform_vector_int(), pygpu_texture_clear(), pygpu_texture_format_get(), pygpu_texture_height_get(), pygpu_texture_read(), pygpu_texture_width_get(), pygpu_uniformbuffer_update(), pygpu_vertbuf__tp_dealloc(), PyKDTree__tp_dealloc(), pyprop_array_foreach_getset(), pyrna_func_doc_get(), pyrna_func_repr(), pyrna_invalidate(), pyrna_prop_array_ass_subscript(), pyrna_prop_array_bool(), pyrna_prop_array_contains(), pyrna_prop_array_dealloc(), pyrna_prop_array_iter(), pyrna_prop_array_length(), pyrna_prop_array_repr(), pyrna_prop_array_subscript(), pyrna_prop_array_to_py_index(), pyrna_prop_as_bytes(), pyrna_prop_collection_ass_subscript(), pyrna_prop_collection_ass_subscript_int(), pyrna_prop_collection_bool(), pyrna_prop_collection_contains(), pyrna_prop_collection_find(), pyrna_prop_collection_get(), pyrna_prop_collection_getattro(), pyrna_prop_collection_idprop_add(), pyrna_prop_collection_idprop_clear(), pyrna_prop_collection_idprop_move(), pyrna_prop_collection_idprop_remove(), pyrna_prop_collection_items(), pyrna_prop_collection_iter(), pyrna_prop_collection_iter_CreatePyObject(), pyrna_prop_collection_iter_dealloc(), pyrna_prop_collection_iter_next(), pyrna_prop_collection_keys(), pyrna_prop_collection_length(), pyrna_prop_collection_setattro(), pyrna_prop_collection_subscript(), pyrna_prop_collection_subscript_int(), pyrna_prop_collection_subscript_slice(), pyrna_prop_collection_subscript_str(), pyrna_prop_collection_subscript_str_lib_pair_ptr(), pyrna_prop_collection_type_check(), pyrna_prop_dealloc(), pyrna_prop_dir(), pyrna_prop_hash(), pyrna_prop_path_from_id(), pyrna_prop_repr_ex(), pyrna_prop_str(), pyrna_prop_update(), pyrna_prop_validity_check(), pyrna_py_to_prop_array_index(), pyrna_struct_as_pointer(), pyrna_struct_ass_subscript(), pyrna_struct_contains(), pyrna_struct_dealloc(), pyrna_struct_dir(), pyrna_struct_driver_add(), pyrna_struct_driver_remove(), pyrna_struct_get(), pyrna_struct_get_data(), pyrna_struct_get_id_data(), pyrna_struct_get_rna_type(), pyrna_struct_getattro(), pyrna_struct_hash(), pyrna_struct_id_properties_clear(), pyrna_struct_id_properties_ensure(), pyrna_struct_id_properties_ui(), pyrna_struct_is_property_hidden(), pyrna_struct_is_property_overridable_library(), pyrna_struct_is_property_readonly(), pyrna_struct_is_property_set(), pyrna_struct_items(), pyrna_struct_keyframe_delete(), pyrna_struct_keyframe_insert(), pyrna_struct_keys(), pyrna_struct_path_from_id(), pyrna_struct_path_resolve(), pyrna_struct_pop(), pyrna_struct_property_overridable_library_set(), pyrna_struct_property_unset(), pyrna_struct_repr(), pyrna_struct_setattro(), pyrna_struct_str(), pyrna_struct_subscript(), pyrna_struct_type_recast(), pyrna_struct_values(), Quaternion_angle_get(), Quaternion_angle_set(), Quaternion_axis_vector_get(), Quaternion_axis_vector_set(), Quaternion_conjugate(), Quaternion_copy(), Quaternion_CreatePyObject(), Quaternion_cross(), Quaternion_dot(), Quaternion_hash(), Quaternion_identity(), Quaternion_invert(), Quaternion_item(), Quaternion_magnitude_get(), Quaternion_make_compatible(), Quaternion_neg(), Quaternion_negate(), Quaternion_normalize(), Quaternion_rotate(), Quaternion_rotation_difference(), Quaternion_slerp(), Quaternion_slice(), Quaternion_str(), Quaternion_to_axis_angle(), Quaternion_to_euler(), Quaternion_to_exponential_map(), Quaternion_to_matrix(), Quaternion_to_swing_twist(), Quaternion_to_tuple_ext(), SShape_bbox_get(), SShape_dealloc(), SShape_id_get(), SShape_name_get(), SShape_repr(), Stroke_compute_sampling(), Stroke_id_get(), Stroke_length_2d_get(), Stroke_medium_type_get(), Stroke_resample(), Stroke_reversed(), Stroke_sq_item(), Stroke_stroke_vertices_begin(), Stroke_stroke_vertices_end(), Stroke_stroke_vertices_size(), Stroke_texture_id_get(), Stroke_tips_get(), StrokeAttribute_alpha_get(), StrokeAttribute_dealloc(), StrokeAttribute_has_attribute_real(), StrokeAttribute_has_attribute_vec2(), StrokeAttribute_has_attribute_vec3(), StrokeAttribute_mathutils_set_index(), StrokeAttribute_visible_get(), StrokeShader___repr__(), StrokeShader_shade(), StrokeVertex_attribute_get(), StrokeVertex_curvilinear_abscissa_get(), StrokeVertex_mathutils_get(), StrokeVertex_mathutils_get_index(), StrokeVertex_mathutils_set(), StrokeVertex_stroke_length_get(), StrokeVertex_u_get(), StrokeVertexIterator_at_last_get(), StrokeVertexIterator_decremented(), StrokeVertexIterator_incremented(), StrokeVertexIterator_iternext(), StrokeVertexIterator_object_get(), StrokeVertexIterator_reversed(), StrokeVertexIterator_t_get(), StrokeVertexIterator_u_get(), SVertex_id_get(), SVertex_mathutils_set_index(), SVertex_normals_size_get(), SVertexIterator_object_get(), SVertexIterator_t_get(), SVertexIterator_u_get(), thread_capture_fp_settings(), TVertex_id_get(), UnaryFunction0DDouble___call__(), UnaryFunction0DDouble___repr__(), UnaryFunction0DEdgeNature___call__(), UnaryFunction0DEdgeNature___repr__(), UnaryFunction0DFloat___call__(), UnaryFunction0DFloat___repr__(), UnaryFunction0DId___call__(), UnaryFunction0DId___repr__(), UnaryFunction0DMaterial___call__(), UnaryFunction0DMaterial___repr__(), UnaryFunction0DUnsigned___call__(), UnaryFunction0DUnsigned___repr__(), UnaryFunction0DVec2f___call__(), UnaryFunction0DVec2f___repr__(), UnaryFunction0DVec3f___call__(), UnaryFunction0DVec3f___repr__(), UnaryFunction0DVectorViewShape___call__(), UnaryFunction0DVectorViewShape___repr__(), UnaryFunction0DViewShape___call__(), UnaryFunction0DViewShape___repr__(), UnaryFunction1DDouble___call__(), UnaryFunction1DDouble___repr__(), UnaryFunction1DEdgeNature___call__(), UnaryFunction1DEdgeNature___repr__(), UnaryFunction1DFloat___call__(), UnaryFunction1DFloat___repr__(), UnaryFunction1DUnsigned___call__(), UnaryFunction1DUnsigned___repr__(), UnaryFunction1DVec2f___call__(), UnaryFunction1DVec2f___repr__(), UnaryFunction1DVec3f___call__(), UnaryFunction1DVec3f___repr__(), UnaryFunction1DVectorViewShape___call__(), UnaryFunction1DVectorViewShape___repr__(), UnaryFunction1DVoid___call__(), UnaryFunction1DVoid___repr__(), UnaryPredicate0D___call__(), UnaryPredicate0D___repr__(), UnaryPredicate1D___call__(), UnaryPredicate1D___repr__(), Vector_angle(), Vector_angle_signed(), vector_ass_item_internal(), Vector_ass_slice(), Vector_ass_subscript(), Vector_copy(), Vector_CreatePyObject(), Vector_cross(), Vector_dot(), Vector_hash(), vector_item_internal(), Vector_length_get(), Vector_length_set(), Vector_length_squared_get(), Vector_lerp(), Vector_neg(), Vector_negate(), Vector_normalize(), Vector_orthogonal(), Vector_project(), Vector_reflect(), Vector_resize(), Vector_resize_2d(), Vector_resize_3d(), Vector_resize_4d(), Vector_resized(), Vector_rotate(), Vector_rotation_difference(), Vector_slerp(), Vector_slice(), Vector_str(), Vector_subscript(), Vector_swizzle_get(), Vector_swizzle_set(), Vector_to_2d(), Vector_to_3d(), Vector_to_4d(), Vector_to_track_quat(), Vector_to_tuple_ex(), Vector_zero(), ViewEdge_chaining_time_stamp_get(), ViewEdge_id_get(), ViewEdge_is_closed_get(), ViewEdge_nature_get(), ViewEdge_qi_get(), ViewEdgeIterator_object_get(), ViewEdgeIterator_orientation_get(), ViewMap_repr(), ViewMap_scene_bbox_get(), ViewShape_dealloc(), ViewShape_id_get(), ViewShape_init(), ViewShape_library_path_get(), ViewShape_name_get(), ViewShape_repr(), ViewShape_sshape_set(), ViewVertex_edges_begin(), ViewVertex_edges_end(), and ViewVertex_edges_iterator().