|
Blender V5.0
|
#include <gpu_immediate_private.hh>
Inherited by blender::gpu::GLImmediate, blender::gpu::MTLImmediate, and blender::gpu::VKImmediate.
Public Member Functions | |
| Immediate ()=default | |
| virtual | ~Immediate ()=default |
| virtual uchar * | begin ()=0 |
| virtual void | end ()=0 |
| void | polyline_draw_workaround (uint64_t offset) |
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 = {} |
| gpu::Shader * | shader = nullptr |
| bool | strict_vertex_len = true |
| Batch * | batch = nullptr |
| std::optional< GPUBuiltinShader > | prev_builtin_shader |
| std::optional< GPUBuiltinShader > | builtin_shader_bound |
| float | uniform_color [4] |
Definition at line 22 of file gpu_immediate_private.hh.
|
default |
|
virtualdefault |
|
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.
| void Immediate::polyline_draw_workaround | ( | uint64_t | offset | ) |
Definition at line 286 of file gpu_immediate.cc.
References BLI_assert, BLI_assert_msg, GPUVertAttr::Type::comp_len(), data, ELEM, GPUVertAttr::Type::format, blender::gpu::Context::get(), GPU_batch_draw_advanced(), GPU_batch_draw_expanded_parameter_get(), GPU_batch_set_shader(), GPU_PRIM_LINE_LOOP, GPU_PRIM_LINE_STRIP, GPU_PRIM_LINES, GPU_PRIM_TRIS, GPU_shader_uniform_1b(), GPU_shader_uniform_1i(), GPU_shader_uniform_2iv(), GPU_shader_uniform_3iv(), GPU_vertformat_attr_name_get(), imm, blender::gpu::is_fetch_float(), name, GPUVertAttr::offset, blender::gpu::Context::procedural_triangles_batch_get(), blender::IndexRange::size(), blender::IndexRange::start(), and GPUVertAttr::type.
Referenced by blender::gpu::GLImmediate::end(), blender::gpu::MTLImmediate::end(), and blender::gpu::VKImmediate::end().
| Batch* blender::gpu::Immediate::batch = nullptr |
Batch in construction when using immBeginBatch.
Definition at line 43 of file gpu_immediate_private.hh.
| std::optional<GPUBuiltinShader> 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<GPUBuiltinShader> 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::VKImmediate::begin(), blender::gpu::GLImmediate::end(), blender::gpu::MTLImmediate::end(), and blender::gpu::VKImmediate::end().
| gpu::Shader* blender::gpu::Immediate::shader = nullptr |
Definition at line 38 of file gpu_immediate_private.hh.
Referenced by blender::gpu::GLImmediate::begin(), 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.
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(), blender::gpu::MTLImmediate::end(), and blender::gpu::VKVertexAttributeObject::update_bindings().
| 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(), blender::gpu::VKImmediate::end(), and blender::gpu::VKVertexAttributeObject::update_bindings().