Changeset View
Changeset View
Standalone View
Standalone View
source/blender/python/intern/gpu_builtins.c
- This file was added.
| /* | |||||
| * ***** BEGIN GPL LICENSE BLOCK ***** | |||||
| * | |||||
| * This program is free software; you can redistribute it and/or | |||||
| * modify it under the terms of the GNU General Public License | |||||
| * as published by the Free Software Foundation; either version 2 | |||||
| * of the License, or (at your option) any later version. | |||||
| * | |||||
| * This program is distributed in the hope that it will be useful, | |||||
| * but WITHOUT ANY WARRANTY; without even the implied warranty of | |||||
| * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |||||
| * GNU General Public License for more details. | |||||
| * | |||||
| * You should have received a copy of the GNU General Public License | |||||
| * along with this program; if not, write to the Free Software Foundation, | |||||
| * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. | |||||
| * | |||||
| * Copyright 2017, Blender Foundation. | |||||
| * | |||||
| * ***** END GPL LICENSE BLOCK ***** | |||||
| */ | |||||
| /** \file blender/python/intern/gpu_builtin.c | |||||
| * \ingroup pythonintern | |||||
| * | |||||
| * This file defines the builtin identifiers for use in GLSL shaders. | |||||
| */ | |||||
| #include <Python.h> | |||||
| #include "GPU_material.h" | |||||
| #include "gpu.h" | |||||
| typedef struct { | |||||
| PyObject_HEAD | |||||
| } BPy_GPUBuiltins; | |||||
| PyDoc_STRVAR(py_gpu_builtins_doc, | |||||
| ".. class:: GPUBuiltins" | |||||
| "\n" | |||||
| " This object gives access to builtin identifiers for use in shader.\n" | |||||
| ); | |||||
| static PyTypeObject BPy_GPUBuiltins_Type = { | |||||
| PyVarObject_HEAD_INIT(NULL, 0) | |||||
| "GPUBuiltins", /* tp_name */ | |||||
| sizeof(BPy_GPUBuiltins), /* tp_basicsize */ | |||||
| 0, /* tp_itemsize */ | |||||
| /* methods */ | |||||
| NULL, /* tp_dealloc */ | |||||
| NULL, /* tp_print */ | |||||
| NULL, /* tp_getattr */ | |||||
| NULL, /* tp_setattr */ | |||||
| NULL, /* tp_compare */ | |||||
| NULL, /* tp_repr */ | |||||
| NULL, /* tp_as_number */ | |||||
| NULL, /* tp_as_sequence */ | |||||
| NULL, /* tp_as_mapping */ | |||||
| NULL, /* tp_hash */ | |||||
| NULL, /* tp_call */ | |||||
| NULL, /* tp_str */ | |||||
| NULL, /* tp_getattro */ | |||||
| NULL, /* tp_setattro */ | |||||
| NULL, /* tp_as_buffer */ | |||||
| Py_TPFLAGS_DEFAULT, /* tp_flags */ | |||||
| py_gpu_builtins_doc, /* Documentation string */ | |||||
| NULL, /* tp_traverse */ | |||||
| NULL, /* tp_clear */ | |||||
| NULL, /* tp_richcompare */ | |||||
| 0, /* tp_weaklistoffset */ | |||||
| NULL, /* tp_iter */ | |||||
| NULL, /* tp_iternext */ | |||||
| NULL, /* tp_methods */ | |||||
| NULL, /* tp_members */ | |||||
| NULL, /* tp_getset */ | |||||
| NULL, /* tp_base */ | |||||
| NULL, /* tp_dict */ | |||||
| NULL, /* tp_descr_get */ | |||||
| NULL, /* tp_descr_set */ | |||||
| 0, /* tp_dictoffset */ | |||||
| 0, /* tp_init */ | |||||
| NULL, /* tp_alloc */ | |||||
| NULL, /* tp_new */ | |||||
| (freefunc)0, /* tp_free */ | |||||
| NULL, /* tp_is_gc */ | |||||
| NULL, /* tp_bases */ | |||||
| NULL, /* tp_mro */ | |||||
| NULL, /* tp_cache */ | |||||
| NULL, /* tp_subclasses */ | |||||
| NULL, /* tp_weaklist */ | |||||
| (destructor) NULL /* tp_del */ | |||||
| }; | |||||
| PyDoc_STRVAR(BPy_GPU_builtins_doc, | |||||
| "This module provides access to builtin identifiers for use in shaders." | |||||
| ); | |||||
| static PyModuleDef BPy_GPU_builtin_module_def = { | |||||
| PyModuleDef_HEAD_INIT, | |||||
| "gpu.builtins", /* m_name */ | |||||
| BPy_GPU_builtins_doc, /* m_doc */ | |||||
| 0, /* m_size */ | |||||
| NULL, /* m_methods */ | |||||
| NULL, /* m_reload */ | |||||
| NULL, /* m_traverse */ | |||||
| NULL, /* m_clear */ | |||||
| NULL, /* m_free */ | |||||
| }; | |||||
| PyObject *BPyInit_gpu_builtins(void) | |||||
| { | |||||
| PyObject *submodule; | |||||
| /* Register the 'GPUBuiltins' class */ | |||||
| if (PyType_Ready(&BPy_GPUBuiltins_Type)) { | |||||
| return NULL; | |||||
| } | |||||
| submodule = PyModule_Create(&BPy_GPU_builtin_module_def); | |||||
| PY_MODULE_ADD_CONSTANT(submodule, GPU_VIEW_MATRIX); | |||||
| PY_MODULE_ADD_CONSTANT(submodule, GPU_OBJECT_MATRIX); | |||||
| PY_MODULE_ADD_CONSTANT(submodule, GPU_INVERSE_VIEW_MATRIX); | |||||
| PY_MODULE_ADD_CONSTANT(submodule, GPU_INVERSE_OBJECT_MATRIX); | |||||
| PY_MODULE_ADD_CONSTANT(submodule, GPU_VIEW_POSITION); | |||||
| PY_MODULE_ADD_CONSTANT(submodule, GPU_VIEW_NORMAL); | |||||
| PY_MODULE_ADD_CONSTANT(submodule, GPU_OBCOLOR); | |||||
| PY_MODULE_ADD_CONSTANT(submodule, GPU_AUTO_BUMPSCALE); | |||||
| PY_MODULE_ADD_CONSTANT(submodule, GPU_CAMERA_TEXCO_FACTORS); | |||||
| PY_MODULE_ADD_CONSTANT(submodule, GPU_PARTICLE_SCALAR_PROPS); | |||||
| PY_MODULE_ADD_CONSTANT(submodule, GPU_PARTICLE_LOCATION); | |||||
| PY_MODULE_ADD_CONSTANT(submodule, GPU_PARTICLE_VELOCITY); | |||||
| PY_MODULE_ADD_CONSTANT(submodule, GPU_PARTICLE_ANG_VELOCITY); | |||||
| PY_MODULE_ADD_CONSTANT(submodule, GPU_LOC_TO_VIEW_MATRIX); | |||||
| PY_MODULE_ADD_CONSTANT(submodule, GPU_INVERSE_LOC_TO_VIEW_MATRIX); | |||||
| return submodule; | |||||
| } | |||||