Blender V5.0
blender::gpu::GLStateManager Class Reference

#include <gl_state.hh>

Inherits blender::gpu::StateManager.

Public Member Functions

Memory barrier
void issue_barrier (GPUBarrier barrier_bits) override
Public Member Functions inherited from blender::gpu::StateManager
virtual ~StateManager ()=default
 StateManager ()

Public Attributes

GLFrameBufferactive_fb = nullptr
Public Attributes inherited from blender::gpu::StateManager
GPUState state
GPUStateMutable mutable_state
std::array< TextureWriteFormat, GPU_MAX_IMAGEimage_formats

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
uint64_t bound_texture_slots ()
void texture_unpack_row_length_set (uint len) override
uint texture_unpack_row_length_get () const

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

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

◆ bound_image_slots()

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

Definition at line 649 of file gl_state.cc.

References ARRAY_SIZE, and i.

◆ bound_texture_slots()

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

Definition at line 563 of file gl_state.cc.

References ARRAY_SIZE, and i.

◆ 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 65 of file gl_state.cc.

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

◆ image_bind()

◆ image_unbind()

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

◆ image_unbind_all()

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

◆ issue_barrier()

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

Implements blender::gpu::StateManager.

Definition at line 666 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 496 of file gl_state.cc.

References ARRAY_SIZE, and i.

◆ texture_unbind_all()

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

Implements blender::gpu::StateManager.

Definition at line 514 of file gl_state.cc.

References ARRAY_SIZE, and i.

◆ texture_unpack_row_length_get()

uint blender::gpu::GLStateManager::texture_unpack_row_length_get ( ) const

Definition at line 558 of file gl_state.cc.

Referenced by blender::gpu::GLTexture::update_sub().

◆ texture_unpack_row_length_set()

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

Row length for unpacking host data when uploading texture data.

When set to zero (0), host data can be assumed to be stored sequentially.

Implements blender::gpu::StateManager.

Definition at line 553 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().


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