Blender V4.3
blender::gpu::GLStateManager Class Reference

#include <gl_state.hh>

Inherits blender::gpu::StateManager.

Public Member Functions

Memory barrier
void issue_barrier (eGPUBarrier barrier_bits) override
 
- Public Member Functions inherited from blender::gpu::StateManager
virtual ~StateManager ()
 
 StateManager ()
 

Public Attributes

GLFrameBufferactive_fb = nullptr
 
- Public Attributes inherited from blender::gpu::StateManager
GPUState state
 
GPUStateMutable mutable_state
 
bool use_bgl = false
 

GLStateManager

 GLStateManager ()
 
void apply_state () override
 
void force_state () override
 

Texture State Management

void texture_bind (Texture *tex, GPUSamplerState sampler, int unit) override
 
void texture_bind_temp (GLTexture *tex)
 
void texture_unbind (Texture *tex) override
 
void texture_unbind_all () override
 
void texture_unpack_row_length_set (uint len) override
 
uint64_t bound_texture_slots ()
 

Image Binding (from image load store)

void image_bind (Texture *tex, int unit) override
 
void image_unbind (Texture *tex) override
 
void image_unbind_all () override
 
uint8_t bound_image_slots ()
 

Detailed Description

State manager keeping track of the draw state and applying it before drawing. Opengl Implementation.

Definition at line 29 of file gl_state.hh.

Constructor & Destructor Documentation

◆ GLStateManager()

blender::gpu::GLStateManager::GLStateManager ( )

Member Function Documentation

◆ apply_state()

◆ bound_image_slots()

uint8_t blender::gpu::GLStateManager::bound_image_slots ( )

Definition at line 621 of file gl_state.cc.

References ARRAY_SIZE.

◆ bound_texture_slots()

uint64_t blender::gpu::GLStateManager::bound_texture_slots ( )

Definition at line 538 of file gl_state.cc.

References ARRAY_SIZE.

◆ force_state()

void blender::gpu::GLStateManager::force_state ( )
overridevirtual

Will set all the states regardless of the current ones.

Implements blender::gpu::StateManager.

Definition at line 66 of file gl_state.cc.

References blender::gpu::GPUState::clip_distances, blender::gpu::StateManager::mutable_state, and blender::gpu::StateManager::state.

◆ image_bind()

void blender::gpu::GLStateManager::image_bind ( Texture * tex,
int unit )
overridevirtual

Implements blender::gpu::StateManager.

Definition at line 555 of file gl_state.cc.

References BLI_assert, G, G_DEBUG_GPU, tex, and blender::gpu::to_gl_internal_format().

◆ image_unbind()

void blender::gpu::GLStateManager::image_unbind ( Texture * tex)
overridevirtual

Implements blender::gpu::StateManager.

Definition at line 569 of file gl_state.cc.

References ARRAY_SIZE, and tex.

◆ image_unbind_all()

void blender::gpu::GLStateManager::image_unbind_all ( )
overridevirtual

Implements blender::gpu::StateManager.

Definition at line 586 of file gl_state.cc.

References ARRAY_SIZE.

◆ issue_barrier()

void blender::gpu::GLStateManager::issue_barrier ( eGPUBarrier barrier_bits)
overridevirtual

Implements blender::gpu::StateManager.

Definition at line 638 of file gl_state.cc.

References blender::gpu::to_gl().

◆ texture_bind()

void blender::gpu::GLStateManager::texture_bind ( Texture * tex,
GPUSamplerState sampler,
int unit )
overridevirtual

◆ texture_bind_temp()

◆ texture_unbind()

void blender::gpu::GLStateManager::texture_unbind ( Texture * tex)
overridevirtual

Implements blender::gpu::StateManager.

Definition at line 476 of file gl_state.cc.

References ARRAY_SIZE, and tex.

◆ texture_unbind_all()

void blender::gpu::GLStateManager::texture_unbind_all ( )
overridevirtual

Implements blender::gpu::StateManager.

Definition at line 494 of file gl_state.cc.

References ARRAY_SIZE.

◆ texture_unpack_row_length_set()

void blender::gpu::GLStateManager::texture_unpack_row_length_set ( uint len)
overridevirtual

Implements blender::gpu::StateManager.

Definition at line 533 of file gl_state.cc.

References len.

Member Data Documentation

◆ active_fb

GLFrameBuffer* blender::gpu::GLStateManager::active_fb = nullptr

Another reference to the active frame-buffer.

Definition at line 32 of file gl_state.hh.

Referenced by apply_state(), and blender::gpu::GLFrameBuffer::bind().


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