39 float line_width_range_[2];
41 uint texture_unpack_row_length_ = 0;
51 GLuint targets_[64] = {GL_TEXTURE_2D};
52 GLuint textures_[64] = {0};
53 GLuint samplers_[64] = {0};
56 GLuint images_[8] = {0};
57 GLenum formats_[8] = {0};
71 void texture_bind(Texture *tex, GPUSamplerState sampler,
int unit)
override;
79 void image_bind(Texture *tex,
int unit)
override;
99 static void set_clip_distances(
int new_dist_len,
int old_dist_len);
100 static void set_logic_op(
bool enable);
101 static void set_facing(
bool invert);
104 static void set_shadow_bias(
bool enable);
105 static void set_clip_control(
bool enable);
106 static void set_blend(
GPUBlend value);
108 void set_state(
const GPUState &
state);
109 void set_mutable_state(
const GPUStateMutable &
state);
111 void texture_bind_apply();
112 void image_bind_apply();
114 MEM_CXX_CLASS_ALLOC_FUNCS(
"GLStateManager")
127 void wait()
override;
129 MEM_CXX_CLASS_ALLOC_FUNCS(
"GLFence")
134 GLbitfield barrier = 0;
136 barrier |= GL_SHADER_IMAGE_ACCESS_BARRIER_BIT;
139 barrier |= GL_SHADER_STORAGE_BARRIER_BIT;
142 barrier |= GL_TEXTURE_FETCH_BARRIER_BIT;
145 barrier |= GL_TEXTURE_UPDATE_BARRIER_BIT;
148 barrier |= GL_COMMAND_BARRIER_BIT;
151 barrier |= GL_FRAMEBUFFER_BARRIER_BIT;
154 barrier |= GL_VERTEX_ATTRIB_ARRAY_BARRIER_BIT;
157 barrier |= GL_ELEMENT_ARRAY_BARRIER_BIT;
160 barrier |= GL_UNIFORM_BARRIER_BIT;
163 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
uint texture_unpack_row_length_get() const
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 texture_unbind_all() override
uint8_t bound_image_slots()
void issue_barrier(GPUBarrier barrier_bits) override
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)