39 float line_width_range_[2];
49 GLuint targets_[64] = {GL_TEXTURE_2D};
50 GLuint textures_[64] = {0};
51 GLuint samplers_[64] = {0};
54 GLuint images_[8] = {0};
55 GLenum formats_[8] = {0};
69 void texture_bind(Texture *tex, GPUSamplerState sampler,
int unit)
override;
77 void image_bind(Texture *tex,
int unit)
override;
91 static void set_clip_distances(
int new_dist_len,
int old_dist_len);
92 static void set_logic_op(
bool enable);
93 static void set_facing(
bool invert);
96 static void set_shadow_bias(
bool enable);
97 static void set_clip_control(
bool enable);
100 void set_state(
const GPUState &
state);
101 void set_mutable_state(
const GPUStateMutable &
state);
103 void texture_bind_apply();
104 void image_bind_apply();
106 MEM_CXX_CLASS_ALLOC_FUNCS(
"GLStateManager")
119 void wait()
override;
121 MEM_CXX_CLASS_ALLOC_FUNCS(
"GLFence")
126 GLbitfield barrier = 0;
128 barrier |= GL_SHADER_IMAGE_ACCESS_BARRIER_BIT;
131 barrier |= GL_SHADER_STORAGE_BARRIER_BIT;
134 barrier |= GL_TEXTURE_FETCH_BARRIER_BIT;
137 barrier |= GL_TEXTURE_UPDATE_BARRIER_BIT;
140 barrier |= GL_COMMAND_BARRIER_BIT;
143 barrier |= GL_FRAMEBUFFER_BARRIER_BIT;
146 barrier |= GL_VERTEX_ATTRIB_ARRAY_BARRIER_BIT;
149 barrier |= GL_ELEMENT_ARRAY_BARRIER_BIT;
152 barrier |= GL_UNIFORM_BARRIER_BIT;
155 barrier |= GL_BUFFER_UPDATE_BARRIER_BIT;
@ GPU_BARRIER_SHADER_STORAGE
@ GPU_BARRIER_TEXTURE_FETCH
@ GPU_BARRIER_BUFFER_UPDATE
@ GPU_BARRIER_ELEMENT_ARRAY
@ GPU_BARRIER_SHADER_IMAGE_ACCESS
@ GPU_BARRIER_VERTEX_ATTRIB_ARRAY
@ GPU_BARRIER_TEXTURE_UPDATE
@ GPU_BARRIER_FRAMEBUFFER
Read Guarded memory(de)allocation.
unsigned long long int uint64_t
void texture_bind_temp(GLTexture *tex)
GLFrameBuffer * active_fb
void image_unbind(Texture *tex) override
void image_bind(Texture *tex, int unit) override
void apply_state() override
void texture_unpack_row_length_set(uint len) override
void issue_barrier(eGPUBarrier barrier_bits) override
void texture_unbind_all() override
uint8_t bound_image_slots()
void force_state() override
uint64_t bound_texture_slots()
void texture_bind(Texture *tex, GPUSamplerState sampler, int unit) override
void image_unbind_all() override
void texture_unbind(Texture *tex) override
CCL_NAMESPACE_BEGIN ccl_device float invert(const float color, const float factor)
static GLenum to_gl(const GPUAttachmentType type)