|
Blender V4.3
|
#include <gpu_immediate_private.hh>
Inherited by blender::gpu::GLImmediate, blender::gpu::MTLImmediate, and blender::gpu::VKImmediate.
Public Member Functions | |
| Immediate () | |
| virtual | ~Immediate () |
| virtual uchar * | begin ()=0 |
| virtual void | end ()=0 |
Public Attributes | |
| uchar * | vertex_data = nullptr |
| uint | vertex_idx = 0 |
| uint | vertex_len = 0 |
| uint16_t | unassigned_attr_bits = 0 |
| uint16_t | enabled_attr_bits = 0 |
| GPUPrimType | prim_type = GPU_PRIM_NONE |
| GPUVertFormat | vertex_format = {} |
| GPUShader * | shader = nullptr |
| bool | strict_vertex_len = true |
| Batch * | batch = nullptr |
| std::optional< eGPUBuiltinShader > | prev_builtin_shader |
| std::optional< eGPUBuiltinShader > | builtin_shader_bound |
| float | uniform_color [4] |
Definition at line 22 of file gpu_immediate_private.hh.
|
inline |
Definition at line 55 of file gpu_immediate_private.hh.
|
inlinevirtual |
Definition at line 56 of file gpu_immediate_private.hh.
|
pure virtual |
Implemented in blender::gpu::GLImmediate, blender::gpu::MTLImmediate, and blender::gpu::VKImmediate.
|
pure virtual |
Implemented in blender::gpu::GLImmediate, blender::gpu::MTLImmediate, and blender::gpu::VKImmediate.
| Batch* blender::gpu::Immediate::batch = nullptr |
Batch in construction when using immBeginBatch.
Definition at line 43 of file gpu_immediate_private.hh.
| std::optional<eGPUBuiltinShader> blender::gpu::Immediate::builtin_shader_bound |
Builtin shader index. Used to test if the line width workaround can be done.
Definition at line 50 of file gpu_immediate_private.hh.
| uint16_t blender::gpu::Immediate::enabled_attr_bits = 0 |
Attributes that needs to be set. One bit per attribute.
Definition at line 33 of file gpu_immediate_private.hh.
| std::optional<eGPUBuiltinShader> blender::gpu::Immediate::prev_builtin_shader |
Wide Line workaround. Previously bound shader to restore after drawing.
Definition at line 48 of file gpu_immediate_private.hh.
| GPUPrimType blender::gpu::Immediate::prim_type = GPU_PRIM_NONE |
Current draw call specification.
Definition at line 36 of file gpu_immediate_private.hh.
Referenced by blender::gpu::MTLImmediate::begin(), blender::gpu::GLImmediate::end(), blender::gpu::MTLImmediate::end(), and blender::gpu::VKImmediate::end().
| GPUShader* blender::gpu::Immediate::shader = nullptr |
Definition at line 38 of file gpu_immediate_private.hh.
Referenced by blender::gpu::GLImmediate::end(), blender::gpu::MTLImmediate::end(), and blender::gpu::VKImmediate::end().
| bool blender::gpu::Immediate::strict_vertex_len = true |
Enforce strict vertex count (disabled when using immBeginAtMost).
Definition at line 40 of file gpu_immediate_private.hh.
Referenced by blender::gpu::GLImmediate::begin(), and blender::gpu::GLImmediate::end().
| uint16_t blender::gpu::Immediate::unassigned_attr_bits = 0 |
Which attributes of current vertex have not been given values?
Definition at line 31 of file gpu_immediate_private.hh.
| float blender::gpu::Immediate::uniform_color[4] |
Uniform color: Kept here to update the wide-line shader just before immBegin.
Definition at line 52 of file gpu_immediate_private.hh.
| uchar* blender::gpu::Immediate::vertex_data = nullptr |
Pointer to the mapped buffer data for the current vertex.
Definition at line 25 of file gpu_immediate_private.hh.
| GPUVertFormat blender::gpu::Immediate::vertex_format = {} |
Definition at line 37 of file gpu_immediate_private.hh.
Referenced by blender::gpu::GLImmediate::begin(), blender::gpu::MTLImmediate::begin(), blender::gpu::VKImmediate::begin(), blender::gpu::GLImmediate::end(), and blender::gpu::MTLImmediate::end().
| uint blender::gpu::Immediate::vertex_idx = 0 |
Current vertex index.
Definition at line 27 of file gpu_immediate_private.hh.
Referenced by blender::gpu::GLImmediate::end(), blender::gpu::MTLImmediate::end(), and blender::gpu::VKImmediate::end().
| uint blender::gpu::Immediate::vertex_len = 0 |
Length of the buffer in vertices.
Definition at line 29 of file gpu_immediate_private.hh.
Referenced by blender::gpu::GLImmediate::begin(), blender::gpu::MTLImmediate::begin(), blender::gpu::VKImmediate::begin(), blender::gpu::GLImmediate::end(), blender::gpu::MTLImmediate::end(), and blender::gpu::VKVertexAttributeObject::update_bindings().