|
Blender V5.0
|
#include <Python.h>#include "BLI_utildefines.h"#include "GPU_shader.hh"#include "intern/gpu_shader_create_info.hh"#include "../generic/py_capi_utils.hh"#include "../generic/python_compat.hh"#include "gpu_py_shader.hh"#include "gpu_py_texture.hh"Go to the source code of this file.
Classes | |
| struct | ShaderCreateInfo |
| Describe inputs & outputs, stage interfaces, resources and sources of a shader. If all data is correctly provided, this is all that is needed to create and compile a blender::gpu::Shader. More... | |
| struct | StageInterfaceInfo |
Macros | |
| #define | USE_PYGPU_SHADER_INFO_IMAGE_METHOD |
| #define | PYDOC_QUALIFIERS |
| #define | PYDOC_TYPE_LIST |
| #define | PYDOC_IMAGE_TYPES |
| #define | PYDOC_TEX_FORMAT_ITEMS |
| #define | VULKAN_LIMIT 128 |
Enumerations | |
| enum class | DepthWrite |
| enum class | DualBlend |
| enum class | Frequency |
| enum class | ImageType |
| enum class | Type |
| enum class | Qualifier |
Functions | |
Public API | |
| PyObject * | BPyGPUStageInterfaceInfo_CreatePyObject (GPUStageInterfaceInfo *interface) |
| PyObject * | BPyGPUShaderCreateInfo_CreatePyObject (GPUShaderCreateInfo *info) |
Variables | |
| static const PyC_FlagSet | pygpu_qualifiers [] |
| const PyC_StringEnumItems | pygpu_attrtype_items [] |
| static const PyC_StringEnumItems | pygpu_imagetype_items [] |
| static const PyC_StringEnumItems | pygpu_dualblend_items [] |
| static const PyC_StringEnumItems | pygpu_depth_write_items [] |
| const PyC_StringEnumItems | pygpu_tex_format_items [] |
GPUStageInterfaceInfo Methods | |
| static PyMethodDef | pygpu_interface_info__tp_methods [] |
| static bool | pygpu_interface_info_get_args (BPyGPUStageInterfaceInfo *self, PyObject *args, const char *format, Type *r_type, const char **r_name) |
| PyDoc_STRVAR (pygpu_interface_info_smooth_doc, ".. method:: smooth(type, name)\n" "\n" " Add an attribute with qualifier of type *smooth* to the interface block.\n" "\n" " :arg type: One of these types:\n" "\n" PYDOC_TYPE_LIST "\n" " :type type: str\n" " :arg name: name of the attribute.\n" " :type name: str\n") | |
| static PyObject * | pygpu_interface_info_smooth (BPyGPUStageInterfaceInfo *self, PyObject *args) |
| PyDoc_STRVAR (pygpu_interface_info_flat_doc, ".. method:: flat(type, name)\n" "\n" " Add an attribute with qualifier of type ``flat`` to the interface block.\n" "\n" " :arg type: One of these types:\n" "\n" PYDOC_TYPE_LIST "\n" " :type type: str\n" " :arg name: name of the attribute.\n" " :type name: str\n") | |
| static PyObject * | pygpu_interface_info_flat (BPyGPUStageInterfaceInfo *self, PyObject *args) |
| PyDoc_STRVAR (pygpu_interface_info_no_perspective_doc, ".. method:: no_perspective(type, name)\n" "\n" " Add an attribute with qualifier of type ``no_perspective`` to the interface block.\n" "\n" " :arg type: One of these types:\n" "\n" PYDOC_TYPE_LIST "\n" " :type type: str\n" " :arg name: name of the attribute.\n" " :type name: str\n") | |
| static PyObject * | pygpu_interface_info_no_perspective (BPyGPUStageInterfaceInfo *self, PyObject *args) |
GPUStageInterfaceInfo Getters and Setters | |
| static PyGetSetDef | pygpu_interface_info__tp_getseters [] |
| PyDoc_STRVAR (pygpu_interface_info_name_doc, "Name of the interface block.\n" "\n" ":type: str\n") | |
| static PyObject * | pygpu_interface_info_name_get (BPyGPUStageInterfaceInfo *self, void *) |
GPUStageInterfaceInfo Type | |
| PyTypeObject | BPyGPUStageInterfaceInfo_Type |
| static PyObject * | pygpu_interface_info__tp_new (PyTypeObject *, PyObject *args, PyObject *kwds) |
| static int | pygpu_interface_info__tp_traverse (PyObject *self, visitproc visit, void *arg) |
| static int | pygpu_interface_info__tp_clear (PyObject *self) |
| static void | pygpu_interface_info__tp_dealloc (PyObject *self) |
| PyDoc_STRVAR (pygpu_interface_info__tp_doc, ".. class:: GPUStageInterfaceInfo(name)\n" "\n" " List of varyings between shader stages.\n" "\n" " :arg name: Name of the interface block.\n" " :type value: str\n") | |
GPUShaderCreateInfo Methods | |
| static PyMethodDef | pygpu_shader_info__tp_methods [] |
| PyDoc_STRVAR (pygpu_shader_info_vertex_in_doc, ".. method:: vertex_in(slot, type, name)\n" "\n" " Add a vertex shader input attribute.\n" "\n" " :arg slot: The attribute index.\n" " :type slot: int\n" " :arg type: One of these types:\n" "\n" PYDOC_TYPE_LIST "\n" " :type type: str\n" " :arg name: name of the attribute.\n" " :type name: str\n") | |
| static PyObject * | pygpu_shader_info_vertex_in (BPyGPUShaderCreateInfo *self, PyObject *args) |
| PyDoc_STRVAR (pygpu_shader_info_vertex_out_doc, ".. method:: vertex_out(interface)\n" "\n" " Add a vertex shader output interface block.\n" "\n" " :arg interface: Object describing the block.\n" " :type interface: :class:`gpu.types.GPUStageInterfaceInfo`\n") | |
| static PyObject * | pygpu_shader_info_vertex_out (BPyGPUShaderCreateInfo *self, BPyGPUStageInterfaceInfo *o) |
| PyDoc_STRVAR (pygpu_shader_info_fragment_out_doc, ".. method:: fragment_out(slot, type, name, *, blend='NONE')\n" "\n" " Specify a fragment output corresponding to a framebuffer target slot.\n" "\n" " :arg slot: The attribute index.\n" " :type slot: int\n" " :arg type: One of these types:\n" "\n" PYDOC_TYPE_LIST "\n" " :type type: str\n" " :arg name: Name of the attribute.\n" " :type name: str\n" " :arg blend: Dual Source Blending Index. It can be 'NONE', 'SRC_0' or 'SRC_1'.\n" " :type blend: str\n") | |
| static PyObject * | pygpu_shader_info_fragment_out (BPyGPUShaderCreateInfo *self, PyObject *args, PyObject *kwds) |
| PyDoc_STRVAR (pygpu_shader_info_depth_write_doc, ".. method:: depth_write(value)\n" "\n" " Specify a depth write behavior when modifying gl_FragDepth.\n" "\n" " There is a common optimization for GPUs that relies on an early depth\n" " test to be run before the fragment shader so that the shader evaluation\n" " can be skipped if the fragment ends up being discarded because it is occluded.\n" "\n" " This optimization does not affect the final rendering, and is typically\n" " possible when the fragment does not change the depth programmatically.\n" " There are, however a class of operations on the depth in the shader which\n" " could still be performed while allowing the early depth test to operate.\n" "\n" " This function alters the behavior of the optimization to allow those operations\n" " to be performed.\n" "\n" " :arg value: Depth write value. " "It can be 'UNCHANGED' (default), 'ANY', 'GREATER' or 'LESS'.\n" " :UNCHANGED: disables depth write in a fragment shader and execution of the" "fragments can be optimized away.\n" " :ANY: enables depth write in a fragment shader for any fragments\n" " :GREATER: enables depth write in a fragment shader for depth values that" "are greater than the depth value in the output buffer.\n" " :LESS: enables depth write in a fragment shader for depth values that" "are less than the depth value in the output buffer.\n" " :type blend: str\n") | |
| static PyObject * | pygpu_shader_info_depth_write (BPyGPUShaderCreateInfo *self, PyObject *args) |
| PyDoc_STRVAR (pygpu_shader_info_uniform_buf_doc, ".. method:: uniform_buf(slot, type_name, name)\n" "\n" " Specify a uniform variable whose type can be one of those declared in " ":meth:`gpu.types.GPUShaderCreateInfo.typedef_source`.\n" "\n" " :arg slot: The uniform variable index.\n" " :type slot: int\n" " :arg type_name: Name of the data type. " "It can be a struct type defined in the source passed through the " ":meth:`gpu.types.GPUShaderCreateInfo.typedef_source`.\n" " :type type_name: str\n" " :arg name: The uniform variable name.\n" " :type name: str\n") | |
| static PyObject * | pygpu_shader_info_uniform_buf (BPyGPUShaderCreateInfo *self, PyObject *args) |
| PyDoc_STRVAR (pygpu_shader_info_image_doc, ".. method:: image(slot, format, type, name, *, qualifiers={'NO_RESTRICT'})\n" "\n" " Specify an image resource used for arbitrary load and store operations.\n" "\n" " :arg slot: The image resource index.\n" " :type slot: int\n" " :arg format: The GPUTexture format that is passed to the shader. Possible " "values are:\n" "\n" PYDOC_TEX_FORMAT_ITEMS " :type format: str\n" " :arg type: The data type describing how the image is to be read in the shader. " "Possible values are:\n" "\n" PYDOC_IMAGE_TYPES "\n" " :type type: str\n" " :arg name: The image resource name.\n" " :type name: str\n" " :arg qualifiers: Set containing values that describe how the image resource is to be " "read or written. Possible values are:\n" "" PYDOC_QUALIFIERS "" " :type qualifiers: set[str]\n") | |
| static PyObject * | pygpu_shader_info_image (BPyGPUShaderCreateInfo *self, PyObject *args, PyObject *kwds) |
| PyDoc_STRVAR (pygpu_shader_info_sampler_doc, ".. method:: sampler(slot, type, name)\n" "\n" " Specify an image texture sampler.\n" "\n" " :arg slot: The image texture sampler index.\n" " :type slot: int\n" " :arg type: The data type describing the format of each sampler unit. Possible values " "are:\n" "\n" PYDOC_IMAGE_TYPES "\n" " :type type: str\n" " :arg name: The image texture sampler name.\n" " :type name: str\n") | |
| static PyObject * | pygpu_shader_info_sampler (BPyGPUShaderCreateInfo *self, PyObject *args) |
| static int | constant_type_size (Type type) |
| static int | constants_calc_size (ShaderCreateInfo *info) |
| PyDoc_STRVAR (pygpu_shader_info_push_constant_doc, ".. method:: push_constant(type, name, size=0)\n" "\n" " Specify a global access constant.\n" "\n" " :arg type: One of these types:\n" "\n" PYDOC_TYPE_LIST "\n" " :type type: str\n" " :arg name: Name of the constant.\n" " :type name: str\n" " :arg size: If not zero, indicates that the constant is an array with the specified size.\n" " :type size: int\n") | |
| static PyObject * | pygpu_shader_info_push_constant (BPyGPUShaderCreateInfo *self, PyObject *args, PyObject *kwds) |
| PyDoc_STRVAR (pygpu_shader_info_vertex_source_doc, ".. method:: vertex_source(source)\n" "\n" " Vertex shader source code written in GLSL.\n" "\n" " Example:\n" "\n" " .. code-block:: python\n" "\n" " \"void main {gl_Position = vec4(pos, 1.0);}\"\n" "\n" " :arg source: The vertex shader source code.\n" " :type source: str\n" "\n" " .. seealso:: `GLSL Cross Compilation " "<https://developer.blender.org/docs/features/gpu/glsl_cross_compilation/>`__\n") | |
| static PyObject * | pygpu_shader_info_vertex_source (BPyGPUShaderCreateInfo *self, PyObject *o) |
| PyDoc_STRVAR (pygpu_shader_info_compute_source_doc, ".. method:: compute_source(source)\n" "\n" " compute shader source code written in GLSL.\n" "\n" " Example:\n" "\n" " .. code-block:: python\n" "\n" " \"\"\"void main() {\n" " int2 index = int2(gl_GlobalInvocationID.xy);\n" " vec4 color = vec4(0.0, 0.0, 0.0, 1.0);\n" " imageStore(img_output, index, color);\n" " }\"\"\"\n" "\n" " :arg source: The compute shader source code.\n" " :type source: str\n" "\n" " .. seealso:: `GLSL Cross Compilation " "<https://developer.blender.org/docs/features/gpu/glsl_cross_compilation/>`__\n") | |
| static PyObject * | pygpu_shader_info_compute_source (BPyGPUShaderCreateInfo *self, PyObject *o) |
| PyDoc_STRVAR (pygpu_shader_info_fragment_source_doc, ".. method:: fragment_source(source)\n" "\n" " Fragment shader source code written in GLSL.\n" "\n" " Example:\n" "\n" " .. code-block:: python\n" "\n" " \"void main {fragColor = vec4(0.0, 0.0, 0.0, 1.0);}\"\n" "\n" " :arg source: The fragment shader source code.\n" " :type source: str\n" "\n" " .. seealso:: `GLSL Cross Compilation " "<https://developer.blender.org/docs/features/gpu/glsl_cross_compilation/>`__\n") | |
| static PyObject * | pygpu_shader_info_fragment_source (BPyGPUShaderCreateInfo *self, PyObject *o) |
| PyDoc_STRVAR (pygpu_shader_info_typedef_source_doc, ".. method:: typedef_source(source)\n" "\n" " Source code included before resource declaration. " "Useful for defining structs used by Uniform Buffers.\n" "\n" " Example:\n" "\n" " .. code-block:: python\n" "\n" " \"struct MyType {int foo; float bar;};\"\n" "\n" " :arg source: The source code defining types.\n" " :type source: str\n") | |
| static PyObject * | pygpu_shader_info_typedef_source (BPyGPUShaderCreateInfo *self, PyObject *o) |
| PyDoc_STRVAR (pygpu_shader_info_define_doc, ".. method:: define(name, value)\n" "\n" " Add a preprocessing define directive. In GLSL it would be something like:\n" "\n" " .. code-block:: glsl\n" "\n" " #define name value\n" "\n" " :arg name: Token name.\n" " :type name: str\n" " :arg value: Text that replaces token occurrences.\n" " :type value: str\n") | |
| static PyObject * | pygpu_shader_info_define (BPyGPUShaderCreateInfo *self, PyObject *args) |
| PyDoc_STRVAR (pygpu_shader_info_local_group_size_doc, ".. method:: local_group_size(x, y=1, z=1)\n" "\n" " Specify the local group size for compute shaders.\n" "\n" " :arg x: The local group size in the x dimension.\n" " :type x: int\n" " :arg y: The local group size in the y dimension. Optional. Defaults to 1.\n" " :type y: int\n" " :arg z: The local group size in the z dimension. Optional. Defaults to 1.\n" " :type z: int\n") | |
| static PyObject * | pygpu_shader_info_local_group_size (BPyGPUShaderCreateInfo *self, PyObject *args) |
GPUShaderCreateInfo Initialization | |
| PyTypeObject | BPyGPUShaderCreateInfo_Type |
| static PyObject * | pygpu_shader_info__tp_new (PyTypeObject *, PyObject *args, PyObject *kwds) |
| static int | pygpu_shader_info__tp_traverse (PyObject *self, visitproc visit, void *arg) |
| static int | pygpu_shader_info__tp_clear (PyObject *self) |
| static void | pygpu_shader_info__tp_dealloc (PyObject *self) |
| PyDoc_STRVAR (pygpu_shader_info__tp_doc, ".. class:: GPUShaderCreateInfo()\n" "\n" " Stores and describes types and variables that are used in shader sources.\n") | |
Definition in file gpu_py_shader_create_info.cc.
| #define PYDOC_IMAGE_TYPES |
Definition at line 85 of file gpu_py_shader_create_info.cc.
Referenced by PyDoc_STRVAR(), and PyDoc_STRVAR().
| #define PYDOC_QUALIFIERS |
Definition at line 38 of file gpu_py_shader_create_info.cc.
Referenced by PyDoc_STRVAR().
| #define PYDOC_TEX_FORMAT_ITEMS |
Definition at line 175 of file gpu_py_shader_create_info.cc.
Referenced by PyDoc_STRVAR().
| #define PYDOC_TYPE_LIST |
Definition at line 50 of file gpu_py_shader_create_info.cc.
Referenced by PyDoc_STRVAR(), PyDoc_STRVAR(), PyDoc_STRVAR(), PyDoc_STRVAR(), PyDoc_STRVAR(), and PyDoc_STRVAR().
| #define USE_PYGPU_SHADER_INFO_IMAGE_METHOD |
Definition at line 25 of file gpu_py_shader_create_info.cc.
| #define VULKAN_LIMIT 128 |
Referenced by pygpu_shader_info_push_constant().
|
strong |
Follow convention described in: https://www.khronos.org/registry/OpenGL/extensions/ARB/ARB_conservative_depth.txt
Definition at line 494 of file gpu_shader_create_info.hh.
|
strong |
Dual Source Blending Index.
Definition at line 596 of file gpu_shader_create_info.hh.
|
strong |
Maps to different descriptor sets.
Definition at line 588 of file gpu_shader_create_info.hh.
|
strong |
Definition at line 503 of file gpu_shader_create_info.hh.
|
strong |
Definition at line 576 of file gpu_shader_create_info.hh.
|
strong |
Definition at line 79 of file GPU_common_types.hh.
|
nodiscard |
Definition at line 1462 of file gpu_py_shader_create_info.cc.
References BPyGPUShaderCreateInfo_Type, and self.
Referenced by pygpu_shader_info__tp_new().
|
nodiscard |
Definition at line 1446 of file gpu_py_shader_create_info.cc.
References BPyGPUStageInterfaceInfo_Type, interface, and self.
Referenced by pygpu_interface_info__tp_new().
|
static |
Definition at line 859 of file gpu_py_shader_create_info.cc.
References BLI_assert.
Referenced by constants_calc_size().
|
static |
Definition at line 918 of file gpu_py_shader_create_info.cc.
References ShaderCreateInfo::PushConst::array_size, constant_type_size(), pad, blender::gpu::shader::ShaderCreateInfo::push_constants_, size(), and ShaderCreateInfo::PushConst::type.
Referenced by pygpu_shader_info_push_constant().
| PyDoc_STRVAR | ( | pygpu_interface_info__tp_doc | , |
| ".. class:: GPUStageInterfaceInfo(name)\n" "\n" " List of varyings between shader stages.\n" "\n" " :arg name: Name of the interface block.\n" " :type value: str\n" | ) |
| PyDoc_STRVAR | ( | pygpu_interface_info_flat_doc | , |
| ".. method:: flat(type, name)\n" "\n" " Add an attribute with qualifier of type ``flat`` to the interface block.\n" "\n" " :arg type: One of these types:\n" "\n" PYDOC_TYPE_LIST "\n" " :type type: str\n" " :arg name: name of the attribute.\n" " :type name: str\n" | ) |
References PYDOC_TYPE_LIST.
| PyDoc_STRVAR | ( | pygpu_interface_info_name_doc | , |
| "Name of the interface block.\n" "\n" ":type: str\n" | ) |
| PyDoc_STRVAR | ( | pygpu_interface_info_no_perspective_doc | , |
| ".. method:: no_perspective(type, name)\n" "\n" " Add an attribute with qualifier of type ``no_perspective`` to the interface block.\n" "\n" " :arg type: One of these types:\n" "\n" PYDOC_TYPE_LIST "\n" " :type type: str\n" " :arg name: name of the attribute.\n" " :type name: str\n" | ) |
References PYDOC_TYPE_LIST.
| PyDoc_STRVAR | ( | pygpu_interface_info_smooth_doc | , |
| ".. method:: smooth(type, name)\n" "\n" " Add an attribute with qualifier of type *smooth* to the interface block.\n" "\n" " :arg type: One of these types:\n" "\n" PYDOC_TYPE_LIST "\n" " :type type: str\n" " :arg name: name of the attribute.\n" " :type name: str\n" | ) |
References PYDOC_TYPE_LIST.
| PyDoc_STRVAR | ( | pygpu_shader_info__tp_doc | , |
| ".. class:: GPUShaderCreateInfo()\n" "\n" " Stores and describes types and variables that are used in shader sources.\n" | ) |
| PyDoc_STRVAR | ( | pygpu_shader_info_compute_source_doc | , |
| ".. method:: compute_source(source)\n" "\n" " compute shader source code written in GLSL.\n" "\n" " Example:\n" "\n" " .. code-block:: python\n" "\n" " \"\"\"void main() {\n" " int2 index = int2(gl_GlobalInvocationID.xy);\n" " vec4 color = vec4(0.0, 0.0, 0.0, 1.0);\n" " imageStore(img_output, index, color);\n" " }\"\"\"\n" "\n" " :arg source: The compute shader source code.\n" " :type source: str\n" "\n" " .. seealso:: `GLSL Cross Compilation " "<https://developer.blender.org/docs/features/gpu/glsl_cross_compilation/>`__\n" | ) |
| PyDoc_STRVAR | ( | pygpu_shader_info_define_doc | , |
| ".. method:: define(name, value)\n" "\n" " Add a preprocessing define directive. In GLSL it would be something like:\n" "\n" " .. code-block:: glsl\n" "\n" " #define name value\n" "\n" " :arg name: Token name.\n" " :type name: str\n" " :arg value: Text that replaces token occurrences.\n" " :type value: str\n" | ) |
| PyDoc_STRVAR | ( | pygpu_shader_info_depth_write_doc | , |
| ".. method:: depth_write(value)\n" "\n" " Specify a depth write behavior when modifying gl_FragDepth.\n" "\n" " There is a common optimization for GPUs that relies on an early depth\n" " test to be run before the fragment shader so that the shader evaluation\n" " can be skipped if the fragment ends up being discarded because it is occluded.\n" "\n" " This optimization does not affect the final | rendering, | ||
| and is typically\n" " possible when the fragment does not change the depth programmatically.\n" " There | are, | ||
| however a class of operations on the depth in the shader which\n" " could still be performed while allowing the early depth test to operate.\n" "\n" " This function alters the behavior of the optimization to allow those operations\n" " to be performed.\n" "\n" " :arg value:Depth write value. " "It can be 'UNCHANGED' | default, | ||
| 'ANY' | , | ||
| 'GREATER' or 'LESS'.\n" " :UNCHANGED:disables depth write in a fragment shader and execution of the" "fragments can be optimized away.\n" " :ANY:enables depth write in a fragment shader for any fragments\n" " :GREATER:enables depth write in a fragment shader for depth values that" "are greater than the depth value in the output buffer.\n" " :LESS:enables depth write in a fragment shader for depth values that" "are less than the depth value in the output buffer.\n" " :type blend:str\n" | ) |
| PyDoc_STRVAR | ( | pygpu_shader_info_fragment_out_doc | , |
| ".. method:: fragment_out(slot, type, name, *, blend='NONE')\n" "\n" " Specify a fragment output corresponding to a framebuffer target slot.\n" "\n" " :arg slot: The attribute index.\n" " :type slot: int\n" " :arg type: One of these types:\n" "\n" PYDOC_TYPE_LIST "\n" " :type type: str\n" " :arg name: Name of the attribute.\n" " :type name: str\n" " :arg blend: Dual Source Blending Index. It can be 'NONE' | , | ||
| 'SRC_0' or 'SRC_1'.\n" " :type blend:str\n" | ) |
References PYDOC_TYPE_LIST.
| PyDoc_STRVAR | ( | pygpu_shader_info_fragment_source_doc | , |
| ".. method:: fragment_source(source)\n" "\n" " Fragment shader source code written in GLSL.\n" "\n" " Example:\n" "\n" " .. code-block:: python\n" "\n" " \"void main {fragColor = vec4(0.0, 0.0, 0.0, 1.0);}\"\n" "\n" " :arg source: The fragment shader source code.\n" " :type source: str\n" "\n" " .. seealso:: `GLSL Cross Compilation " "<https://developer.blender.org/docs/features/gpu/glsl_cross_compilation/>`__\n" | ) |
| PyDoc_STRVAR | ( | pygpu_shader_info_image_doc | , |
| ".. method:: image(slot, format, type, name, *, qualifiers={'NO_RESTRICT'})\n" "\n" " Specify an image resource used for arbitrary load and store operations.\n" "\n" " :arg slot: The image resource index.\n" " :type slot: int\n" " :arg format: The GPUTexture format that is passed to the shader. Possible " "values are:\n" "\n" PYDOC_TEX_FORMAT_ITEMS " :type format: str\n" " :arg type: The data type describing how the image is to be read in the shader. " "Possible values are:\n" "\n" PYDOC_IMAGE_TYPES "\n" " :type type: str\n" " :arg name: The image resource name.\n" " :type name: str\n" " :arg qualifiers: Set containing values that describe how the image resource is to be " "read or written. Possible values are:\n" "" PYDOC_QUALIFIERS "" " :type qualifiers: set\n" | [str] ) |
References PYDOC_IMAGE_TYPES, PYDOC_QUALIFIERS, and PYDOC_TEX_FORMAT_ITEMS.
| PyDoc_STRVAR | ( | pygpu_shader_info_local_group_size_doc | , |
| ".. method:: local_group_size(x, y=1, z=1)\n" "\n" " Specify the local group size for compute shaders.\n" "\n" " :arg x: The local group size in the x dimension.\n" " :type x: int\n" " :arg y: The local group size in the y dimension. Optional. Defaults to 1.\n" " :type y: int\n" " :arg z: The local group size in the z dimension. Optional. Defaults to 1.\n" " :type z: int\n" | ) |
| PyDoc_STRVAR | ( | pygpu_shader_info_push_constant_doc | , |
| ".. method:: push_constant(type, name, size=0)\n" "\n" " Specify a global access constant.\n" "\n" " :arg type: One of these types:\n" "\n" PYDOC_TYPE_LIST "\n" " :type type: str\n" " :arg name: Name of the constant.\n" " :type name: str\n" " :arg size: If not | zero, | ||
| indicates that the constant is an array with the specified size.\n" " :type size:int\n" | ) |
References PYDOC_TYPE_LIST.
| PyDoc_STRVAR | ( | pygpu_shader_info_sampler_doc | , |
| ".. method:: sampler(slot, type, name)\n" "\n" " Specify an image texture sampler.\n" "\n" " :arg slot: The image texture sampler index.\n" " :type slot: int\n" " :arg type: The data type describing the format of each sampler unit. Possible values " "are:\n" "\n" PYDOC_IMAGE_TYPES "\n" " :type type: str\n" " :arg name: The image texture sampler name.\n" " :type name: str\n" | ) |
References PYDOC_IMAGE_TYPES.
| PyDoc_STRVAR | ( | pygpu_shader_info_typedef_source_doc | , |
| ".. method:: typedef_source(source)\n" "\n" " Source code included before resource declaration. " "Useful for defining structs used by Uniform Buffers.\n" "\n" " Example:\n" "\n" " .. code-block:: python\n" "\n" " \"struct MyType {int foo; float bar;};\"\n" "\n" " :arg source: The source code defining types.\n" " :type source: str\n" | ) |
| PyDoc_STRVAR | ( | pygpu_shader_info_uniform_buf_doc | , |
| ".. method:: uniform_buf(slot, type_name, name)\n" "\n" " Specify a uniform variable whose type can be one of those declared in " ":meth:`gpu.types.GPUShaderCreateInfo.typedef_source`.\n" "\n" " :arg slot: The uniform variable index.\n" " :type slot: int\n" " :arg type_name: Name of the data type. " "It can be a struct type defined in the source passed through the " ":meth:`gpu.types.GPUShaderCreateInfo.typedef_source`.\n" " :type type_name: str\n" " :arg name: The uniform variable name.\n" " :type name: str\n" | ) |
| PyDoc_STRVAR | ( | pygpu_shader_info_vertex_in_doc | , |
| ".. method:: vertex_in(slot, type, name)\n" "\n" " Add a vertex shader input attribute.\n" "\n" " :arg slot: The attribute index.\n" " :type slot: int\n" " :arg type: One of these types:\n" "\n" PYDOC_TYPE_LIST "\n" " :type type: str\n" " :arg name: name of the attribute.\n" " :type name: str\n" | ) |
References PYDOC_TYPE_LIST.
| PyDoc_STRVAR | ( | pygpu_shader_info_vertex_out_doc | , |
| ".. method:: vertex_out(interface)\n" "\n" " Add a vertex shader output interface block.\n" "\n" " :arg interface: Object describing the block.\n" " :type interface: :class:`gpu.types.GPUStageInterfaceInfo`\n" | ) |
| PyDoc_STRVAR | ( | pygpu_shader_info_vertex_source_doc | , |
| ".. method:: vertex_source(source)\n" "\n" " Vertex shader source code written in GLSL.\n" "\n" " Example:\n" "\n" " .. code-block:: python\n" "\n" " \"void main {gl_Position = vec4(pos, 1.0);}\"\n" "\n" " :arg source: The vertex shader source code.\n" " :type source: str\n" "\n" " .. seealso:: `GLSL Cross Compilation " "<https://developer.blender.org/docs/features/gpu/glsl_cross_compilation/>`__\n" | ) |
|
static |
Definition at line 414 of file gpu_py_shader_create_info.cc.
References BPyGPUStageInterfaceInfo::references, and self.
Referenced by pygpu_interface_info__tp_dealloc().
|
static |
Definition at line 423 of file gpu_py_shader_create_info.cc.
References BPyGPUStageInterfaceInfo::interface, interface, pygpu_interface_info__tp_clear(), BPyGPUStageInterfaceInfo::references, and self.
|
static |
Definition at line 378 of file gpu_py_shader_create_info.cc.
References BPyGPUStageInterfaceInfo_CreatePyObject(), interface, name, new(), and self.
|
static |
Definition at line 407 of file gpu_py_shader_create_info.cc.
References BPyGPUStageInterfaceInfo::references, and self.
|
static |
Definition at line 292 of file gpu_py_shader_create_info.cc.
References interface, name, pygpu_interface_info_get_args(), and self.
|
static |
Definition at line 226 of file gpu_py_shader_create_info.cc.
References name, PyC_ParseStringEnum(), pygpu_attrtype_items, self, and PyC_StringEnum::value_found.
Referenced by pygpu_interface_info_flat(), pygpu_interface_info_no_perspective(), and pygpu_interface_info_smooth().
|
static |
Definition at line 357 of file gpu_py_shader_create_info.cc.
References interface, PyC_UnicodeFromStdStr(), and self.
|
static |
Definition at line 318 of file gpu_py_shader_create_info.cc.
References interface, name, pygpu_interface_info_get_args(), and self.
|
static |
Definition at line 266 of file gpu_py_shader_create_info.cc.
References interface, name, pygpu_interface_info_get_args(), and self.
|
static |
Definition at line 1337 of file gpu_py_shader_create_info.cc.
References BPyGPUShaderCreateInfo::compute_source, BPyGPUShaderCreateInfo::fragment_source, BPyGPUShaderCreateInfo::references, self, and BPyGPUShaderCreateInfo::vertex_source.
Referenced by pygpu_shader_info__tp_dealloc().
|
static |
|
static |
Definition at line 1312 of file gpu_py_shader_create_info.cc.
References BPyGPUShaderCreateInfo_CreatePyObject().
|
static |
Definition at line 1327 of file gpu_py_shader_create_info.cc.
References BPyGPUShaderCreateInfo::compute_source, BPyGPUShaderCreateInfo::fragment_source, BPyGPUShaderCreateInfo::references, self, and BPyGPUShaderCreateInfo::vertex_source.
|
static |
Definition at line 1068 of file gpu_py_shader_create_info.cc.
References blender::gpu::shader::ShaderCreateInfo::compute_source(), blender::gpu::shader::ShaderCreateInfo::compute_source_generated, Py_DECREF(), and self.
|
static |
Definition at line 1193 of file gpu_py_shader_create_info.cc.
References blender::gpu::shader::ShaderCreateInfo::define(), name, and self.
|
static |
Definition at line 673 of file gpu_py_shader_create_info.cc.
References blender::gpu::shader::ShaderCreateInfo::depth_write(), PyC_ParseStringEnum(), pygpu_depth_write_items, self, and PyC_StringEnum::value_found.
|
static |
Definition at line 599 of file gpu_py_shader_create_info.cc.
References blender::gpu::shader::ShaderCreateInfo::fragment_out(), name, PY_ARG_PARSER_HEAD_COMPAT, PyC_ParseStringEnum(), pygpu_attrtype_items, pygpu_dualblend_items, self, and PyC_StringEnum::value_found.
|
static |
Definition at line 1110 of file gpu_py_shader_create_info.cc.
References blender::gpu::shader::ShaderCreateInfo::fragment_source(), blender::gpu::shader::ShaderCreateInfo::fragment_source_generated, Py_DECREF(), and self.
|
static |
Definition at line 749 of file gpu_py_shader_create_info.cc.
References GPU_DEPTH24_STENCIL8_DEPRECATED, GPU_DEPTH_COMPONENT24_DEPRECATED, blender::gpu::shader::ShaderCreateInfo::image(), name, PY_ARG_PARSER_HEAD_COMPAT, PyC_FlagSet_ToBitfield(), PyC_ParseStringEnum(), pygpu_imagetype_items, pygpu_qualifiers, pygpu_textureformat_items, self, and PyC_StringEnum::value_found.
|
static |
Definition at line 1233 of file gpu_py_shader_create_info.cc.
References blender::gpu::shader::ShaderCreateInfo::local_group_size(), self, x, y, and z().
|
static |
Definition at line 961 of file gpu_py_shader_create_info.cc.
References constants_calc_size(), name, printf, blender::gpu::shader::ShaderCreateInfo::push_constant(), PY_ARG_PARSER_HEAD_COMPAT, PyC_ParseStringEnum(), pygpu_attrtype_items, self, size(), STRINGIFY, PyC_StringEnum::value_found, and VULKAN_LIMIT.
|
static |
Definition at line 837 of file gpu_py_shader_create_info.cc.
References name, PyC_ParseStringEnum(), pygpu_imagetype_items, blender::gpu::shader::ShaderCreateInfo::sampler(), self, and PyC_StringEnum::value_found.
|
static |
|
static |
Definition at line 702 of file gpu_py_shader_create_info.cc.
References name, self, and blender::gpu::shader::ShaderCreateInfo::uniform_buf().
|
static |
Definition at line 534 of file gpu_py_shader_create_info.cc.
References PyC_ParseStringEnum(), pygpu_attrtype_items, self, PyC_StringEnum::value_found, and blender::gpu::shader::ShaderCreateInfo::vertex_in().
|
static |
Definition at line 563 of file gpu_py_shader_create_info.cc.
References BPyGPUStageInterfaceInfo_Check, BPyGPUStageInterfaceInfo::interface, interface, self, and blender::gpu::shader::ShaderCreateInfo::vertex_out().
|
static |
Definition at line 1022 of file gpu_py_shader_create_info.cc.
References Py_DECREF(), self, blender::gpu::shader::ShaderCreateInfo::vertex_source(), and blender::gpu::shader::ShaderCreateInfo::vertex_source_generated.
| PyTypeObject BPyGPUShaderCreateInfo_Type |
Definition at line 1376 of file gpu_py_shader_create_info.cc.
Referenced by bpygpu_types_init(), and BPyGPUShaderCreateInfo_CreatePyObject().
| PyTypeObject BPyGPUStageInterfaceInfo_Type |
Definition at line 449 of file gpu_py_shader_create_info.cc.
Referenced by bpygpu_types_init(), and BPyGPUStageInterfaceInfo_CreatePyObject().
| const PyC_StringEnumItems pygpu_attrtype_items[] |
Definition at line 66 of file gpu_py_shader_create_info.cc.
Referenced by pygpu_interface_info_get_args(), pygpu_shader_attrs_info_get(), pygpu_shader_info_fragment_out(), pygpu_shader_info_push_constant(), and pygpu_shader_info_vertex_in().
|
static |
Definition at line 167 of file gpu_py_shader_create_info.cc.
Referenced by pygpu_shader_info_depth_write().
|
static |
Definition at line 160 of file gpu_py_shader_create_info.cc.
Referenced by pygpu_shader_info_fragment_out().
|
static |
Definition at line 118 of file gpu_py_shader_create_info.cc.
Referenced by pygpu_shader_info_image(), and pygpu_shader_info_sampler().
|
static |
Definition at line 363 of file gpu_py_shader_create_info.cc.
|
static |
Definition at line 332 of file gpu_py_shader_create_info.cc.
|
static |
Definition at line 42 of file gpu_py_shader_create_info.cc.
Referenced by pygpu_shader_info_image().
|
static |
Definition at line 1247 of file gpu_py_shader_create_info.cc.
|
extern |