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

#include <gpu_immediate_private.hh>

Inherited by blender::gpu::GLImmediate.

Public Member Functions

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

Public Attributes

ucharvertex_data = NULL
 
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 = NULL
 
bool strict_vertex_len = true
 
GPUBatchbatch = NULL
 
eGPUBuiltinShader prev_builtin_shader = GPU_SHADER_TEXT
 
eGPUBuiltinShader builtin_shader_bound = GPU_SHADER_TEXT
 
float uniform_color [4]
 

Detailed Description

Definition at line 35 of file gpu_immediate_private.hh.

Constructor & Destructor Documentation

◆ Immediate()

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

Definition at line 68 of file gpu_immediate_private.hh.

◆ ~Immediate()

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

Definition at line 69 of file gpu_immediate_private.hh.

Member Function Documentation

◆ begin()

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

Implemented in blender::gpu::GLImmediate.

Referenced by immBegin().

◆ end()

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

Implemented in blender::gpu::GLImmediate.

Referenced by immEnd().

Member Data Documentation

◆ batch

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

Batch in construction when using immBeginBatch.

Definition at line 56 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 63 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 46 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 61 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 = NULL

◆ strict_vertex_len

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

Enforce strict vertex count (disabled when using immBeginAtMost).

Definition at line 53 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 44 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 65 of file gpu_immediate_private.hh.

Referenced by immUniformColor4f(), and wide_line_workaround_start().

◆ vertex_data

uchar* blender::gpu::Immediate::vertex_data = NULL

Pointer to the mapped buffer data for the current vertex.

Definition at line 38 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: