|
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.
Referenced by immBegin().
|
pure virtual |
Implemented in blender::gpu::GLImmediate, blender::gpu::MTLImmediate, and blender::gpu::VKImmediate.
Referenced by immEnd().
| Batch* blender::gpu::Immediate::batch = nullptr |
Batch in construction when using immBeginBatch.
Definition at line 43 of file gpu_immediate_private.hh.
Referenced by immBeginBatch(), and immEnd().
| 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.
Referenced by immBindBuiltinProgram(), immBindShader(), and wide_line_workaround_start().
| 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.
Referenced by immBegin(), immBeginBatch(), immBindShader(), and immEndVertex().
| 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.
Referenced by wide_line_workaround_end(), and wide_line_workaround_start().
| 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(), blender::gpu::VKImmediate::end(), immAttr1f(), immAttr1u(), immAttr2f(), immAttr2i(), immAttr2s(), immAttr3f(), immAttr3ub(), immAttr4f(), immAttr4ub(), immAttrSkip(), immBegin(), immBeginBatch(), immEnd(), and immEndVertex().
| GPUShader* blender::gpu::Immediate::shader = nullptr |
Definition at line 38 of file gpu_immediate_private.hh.
Referenced by immBindShader(), immBindTexture(), immBindTextureSampler(), immBindUniformBuf(), immEnd(), immGetShader(), immUnbindProgram(), immUniform1f(), immUniform1i(), immUniform2f(), immUniform2fv(), immUniform3f(), immUniform3fv(), immUniform4f(), immUniform4fv(), immUniformArray4fv(), immUniformColor4f(), and immUniformMatrix4fv().
| 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(), blender::gpu::GLImmediate::end(), immBeginAtMost(), immBeginBatchAtMost(), and immEnd().
| 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.
Referenced by immBegin(), immBeginBatch(), immEndVertex(), and setAttrValueBit().
| 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.
Referenced by immUniformColor4f(), and wide_line_workaround_start().
| 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.
Referenced by immAttr1f(), immAttr1u(), immAttr2f(), immAttr2i(), immAttr2s(), immAttr3f(), immAttr3ub(), immAttr4f(), immAttr4ub(), immBegin(), immBeginBatch(), immEnd(), and immEndVertex().
| 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(), blender::gpu::MTLImmediate::end(), immAttr1f(), immAttr1u(), immAttr2f(), immAttr2i(), immAttr2s(), immAttr3f(), immAttr3ub(), immAttr4f(), immAttr4ub(), immBeginBatch(), immBindShader(), immEndVertex(), and immVertexFormat().
| 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(), blender::gpu::VKImmediate::end(), immAttr1f(), immAttr1u(), immAttr2f(), immAttr2i(), immAttr2s(), immAttr3f(), immAttr3ub(), immAttr4f(), immAttr4ub(), immAttrSkip(), immBegin(), immBeginBatch(), immEnd(), and immEndVertex().
| 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(), immAttr1f(), immAttr1u(), immAttr2f(), immAttr2i(), immAttr2s(), immAttr3f(), immAttr3ub(), immAttr4f(), immAttr4ub(), immAttrSkip(), immBegin(), immBeginBatch(), immEnd(), immEndVertex(), and blender::gpu::VKVertexAttributeObject::update_bindings().