Blender V5.0
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 ()=default
virtual ~Immediate ()=default
virtual ucharbegin ()=0
virtual void end ()=0
void polyline_draw_workaround (uint64_t offset)

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 = {}
gpu::Shadershader = nullptr
bool strict_vertex_len = true
Batch * batch = nullptr
std::optional< GPUBuiltinShaderprev_builtin_shader
std::optional< GPUBuiltinShaderbuiltin_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 ( )
default

◆ ~Immediate()

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

Member Function Documentation

◆ begin()

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

◆ end()

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

◆ polyline_draw_workaround()

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.

◆ builtin_shader_bound

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.

◆ 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.

◆ prev_builtin_shader

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.

◆ 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(), and blender::gpu::GLImmediate::end().

◆ 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.

◆ 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.

◆ 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.

◆ vertex_format

◆ vertex_idx

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

◆ vertex_len


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