Blender  V3.3
Public Member Functions | Public Attributes | List of all members
blender::gpu::Immediate Class Referenceabstract

#include <gpu_immediate_private.hh>

Inheritance diagram for blender::gpu::Immediate:
blender::gpu::GLImmediate

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
 
GPUBatchbatch = nullptr
 
eGPUBuiltinShader prev_builtin_shader = GPU_SHADER_TEXT
 
eGPUBuiltinShader builtin_shader_bound = GPU_SHADER_TEXT
 
float uniform_color [4]
 

Detailed Description

Definition at line 19 of file gpu_immediate_private.hh.

Constructor & Destructor Documentation

◆ Immediate()

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

Definition at line 52 of file gpu_immediate_private.hh.

◆ ~Immediate()

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

Definition at line 53 of file gpu_immediate_private.hh.

Member Function Documentation

◆ begin()

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

Implemented in blender::gpu::GLImmediate.

Referenced by immBegin().

◆ end()

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

Implemented in blender::gpu::GLImmediate.

Referenced by immEnd().

Member Data Documentation

◆ batch

GPUBatch* blender::gpu::Immediate::batch = nullptr

Batch in construction when using immBeginBatch.

Definition at line 40 of file gpu_immediate_private.hh.

Referenced by immBeginBatch(), and immEnd().

◆ builtin_shader_bound

eGPUBuiltinShader blender::gpu::Immediate::builtin_shader_bound = GPU_SHADER_TEXT

Builtin shader index. Used to test if the workaround can be done.

Definition at line 47 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 30 of file gpu_immediate_private.hh.

Referenced by immBegin(), immBeginBatch(), immBindShader(), and immEndVertex().

◆ prev_builtin_shader

eGPUBuiltinShader blender::gpu::Immediate::prev_builtin_shader = GPU_SHADER_TEXT

Wide Line workaround. Previously bound shader to restore after drawing.

Definition at line 45 of file gpu_immediate_private.hh.

Referenced by wide_line_workaround_end(), and wide_line_workaround_start().

◆ prim_type

GPUPrimType blender::gpu::Immediate::prim_type = GPU_PRIM_NONE

◆ shader

GPUShader* blender::gpu::Immediate::shader = nullptr

◆ strict_vertex_len

bool blender::gpu::Immediate::strict_vertex_len = true

Enforce strict vertex count (disabled when using immBeginAtMost).

Definition at line 37 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 28 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 49 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 22 of file gpu_immediate_private.hh.

Referenced by immAttr1f(), immAttr1u(), immAttr2f(), immAttr2i(), immAttr2s(), immAttr3f(), immAttr3ub(), immAttr4f(), immAttr4ub(), immBegin(), immBeginBatch(), immEnd(), and immEndVertex().

◆ vertex_format

GPUVertFormat blender::gpu::Immediate::vertex_format = {}

◆ vertex_idx

uint blender::gpu::Immediate::vertex_idx = 0

◆ vertex_len

uint blender::gpu::Immediate::vertex_len = 0

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