Blender V4.3
gpu_py_api.cc
Go to the documentation of this file.
1/* SPDX-FileCopyrightText: 2023 Blender Authors
2 *
3 * SPDX-License-Identifier: GPL-2.0-or-later */
4
15#include <Python.h>
16
17#include "BLI_utildefines.h"
18
20#include "gpu_py_compute.hh"
21#include "gpu_py_matrix.hh"
22#include "gpu_py_platform.hh"
23#include "gpu_py_select.hh"
24#include "gpu_py_state.hh"
25#include "gpu_py_types.hh"
26
27#include "gpu_py_api.hh" /* Own include. */
28
29/* -------------------------------------------------------------------- */
34 /* Wrap. */
35 pygpu_doc,
36 "This module provides Python wrappers for the GPU implementation in Blender.\n"
37 "Some higher level functions can be found in the :mod:`gpu_extras` module.");
38static PyModuleDef pygpu_module_def = {
39 /*m_base*/ PyModuleDef_HEAD_INIT,
40 /*m_name*/ "gpu",
41 /*m_doc*/ pygpu_doc,
42 /*m_size*/ 0,
43 /*m_methods*/ nullptr,
44 /*m_slots*/ nullptr,
45 /*m_traverse*/ nullptr,
46 /*m_clear*/ nullptr,
47 /*m_free*/ nullptr,
48};
49
50PyObject *BPyInit_gpu()
51{
52 PyObject *sys_modules = PyImport_GetModuleDict();
53 PyObject *submodule;
54 PyObject *mod;
55
56 mod = PyModule_Create(&pygpu_module_def);
57
58 PyModule_AddObject(mod, "types", (submodule = bpygpu_types_init()));
59 PyDict_SetItem(sys_modules, PyModule_GetNameObject(submodule), submodule);
60
61 PyModule_AddObject(mod, "capabilities", (submodule = bpygpu_capabilities_init()));
62 PyDict_SetItem(sys_modules, PyModule_GetNameObject(submodule), submodule);
63
64 PyModule_AddObject(mod, "matrix", (submodule = bpygpu_matrix_init()));
65 PyDict_SetItem(sys_modules, PyModule_GetNameObject(submodule), submodule);
66
67 PyModule_AddObject(mod, "platform", (submodule = bpygpu_platform_init()));
68 PyDict_SetItem(sys_modules, PyModule_GetNameObject(submodule), submodule);
69
70 PyModule_AddObject(mod, "select", (submodule = bpygpu_select_init()));
71 PyDict_SetItem(sys_modules, PyModule_GetNameObject(submodule), submodule);
72
73 PyModule_AddObject(mod, "shader", (submodule = bpygpu_shader_init()));
74 PyDict_SetItem(sys_modules, PyModule_GetNameObject(submodule), submodule);
75
76 PyModule_AddObject(mod, "state", (submodule = bpygpu_state_init()));
77 PyDict_SetItem(sys_modules, PyModule_GetNameObject(submodule), submodule);
78
79 PyModule_AddObject(mod, "texture", (submodule = bpygpu_texture_init()));
80 PyDict_SetItem(sys_modules, PyModule_GetNameObject(submodule), submodule);
81
82 PyModule_AddObject(mod, "compute", (submodule = bpygpu_compute_init()));
83 PyDict_SetItem(sys_modules, PyModule_GetNameObject(submodule), submodule);
84
85 return mod;
86}
87
PyObject * BPyInit_gpu()
Definition gpu_py_api.cc:50
PyDoc_STRVAR(pygpu_doc, "This module provides Python wrappers for the GPU implementation in Blender.\n" "Some higher level functions can be found in the :mod:`gpu_extras` module.")
static PyModuleDef pygpu_module_def
Definition gpu_py_api.cc:38
PyObject * bpygpu_capabilities_init()
PyObject * bpygpu_compute_init()
PyObject * bpygpu_matrix_init()
PyObject * bpygpu_platform_init()
PyObject * bpygpu_select_init()
PyObject * bpygpu_shader_init()
PyObject * bpygpu_state_init()
PyObject * bpygpu_texture_init()
PyObject * bpygpu_types_init()
ccl_device_inline int mod(int x, int m)
Definition util/math.h:520