Blender V4.3
blender::gpu::Immediate Class Referenceabstract

#include <gpu_immediate_private.hh>

Inherited by blender::gpu::GLImmediate, blender::gpu::MTLImmediate, and blender::gpu::VKImmediate.

Public Member Functions

 Immediate ()
 
virtual ~Immediate ()
 
virtual ucharbegin ()=0
 
virtual void end ()=0
 

Public Attributes

ucharvertex_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 = {}
 
GPUShadershader = nullptr
 
bool strict_vertex_len = true
 
Batch * batch = nullptr
 
std::optional< eGPUBuiltinShaderprev_builtin_shader
 
std::optional< eGPUBuiltinShaderbuiltin_shader_bound
 
float uniform_color [4]
 

Detailed Description

Definition at line 22 of file gpu_immediate_private.hh.

Constructor & Destructor Documentation

◆ Immediate()

blender::gpu::Immediate::Immediate ( )
inline

Definition at line 55 of file gpu_immediate_private.hh.

◆ ~Immediate()

virtual blender::gpu::Immediate::~Immediate ( )
inlinevirtual

Definition at line 56 of file gpu_immediate_private.hh.

Member Function Documentation

◆ begin()

virtual uchar * blender::gpu::Immediate::begin ( )
pure virtual

◆ end()

virtual void blender::gpu::Immediate::end ( )
pure virtual

Member Data Documentation

◆ batch

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().

◆ builtin_shader_bound

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().

◆ enabled_attr_bits

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().

◆ prev_builtin_shader

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().

◆ prim_type

◆ shader

◆ strict_vertex_len

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().

◆ unassigned_attr_bits

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().

◆ uniform_color

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().

◆ vertex_data

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().

◆ vertex_format

◆ vertex_idx

◆ vertex_len


The documentation for this class was generated from the following file: