diff options
author | mattoverby <mattoverby@gmail.com> | 2020-08-28 23:00:01 +0300 |
---|---|---|
committer | mattoverby <mattoverby@gmail.com> | 2020-08-28 23:00:01 +0300 |
commit | 44819c69a4e702b224c4ba166def9e212bee6d92 (patch) | |
tree | 45f0349bd9ad29892d14b0f63d496b309cd32ed8 /source/blender/gpu/opengl/gl_state.cc | |
parent | 6c32148cd2ea90cde4d4e46beb5ad4969b044c49 (diff) | |
parent | 019cd2e56b377a35b1fa2c85aebe60fb8c495335 (diff) |
fixed submodulessoc-2020-soft-body
Diffstat (limited to 'source/blender/gpu/opengl/gl_state.cc')
-rw-r--r-- | source/blender/gpu/opengl/gl_state.cc | 22 |
1 files changed, 13 insertions, 9 deletions
diff --git a/source/blender/gpu/opengl/gl_state.cc b/source/blender/gpu/opengl/gl_state.cc index 3e3695e0b48..7dc3e44c516 100644 --- a/source/blender/gpu/opengl/gl_state.cc +++ b/source/blender/gpu/opengl/gl_state.cc @@ -26,6 +26,7 @@ #include "glew-mx.h" +#include "gl_context.hh" #include "gl_state.hh" using namespace blender::gpu; @@ -53,6 +54,9 @@ GLStateManager::GLStateManager(void) : GPUStateManager() glEnable(GL_PRIMITIVE_RESTART_FIXED_INDEX); } + /* Limits. */ + glGetFloatv(GL_ALIASED_LINE_WIDTH_RANGE, line_width_range_); + /* Force update using default state. */ current_ = ~state; current_mutable_ = ~mutable_state; @@ -65,23 +69,23 @@ void GLStateManager::set_state(const GPUState &state) GPUState changed = state ^ current_; if (changed.blend != 0) { - set_blend(state.blend); + set_blend((eGPUBlend)state.blend); } if (changed.write_mask != 0) { - set_write_mask(state.write_mask); + set_write_mask((eGPUWriteMask)state.write_mask); } if (changed.depth_test != 0) { - set_depth_test(state.depth_test); + set_depth_test((eGPUDepthTest)state.depth_test); } if (changed.stencil_test != 0 || changed.stencil_op != 0) { - set_stencil_test(state.stencil_test, state.stencil_op); - set_stencil_mask(state.stencil_test, mutable_state); + set_stencil_test((eGPUStencilTest)state.stencil_test, (eGPUStencilOp)state.stencil_op); + set_stencil_mask((eGPUStencilTest)state.stencil_test, mutable_state); } if (changed.clip_distances != 0) { set_clip_distances(state.clip_distances, current_.clip_distances); } if (changed.culling_test != 0) { - set_backface_culling(state.culling_test); + set_backface_culling((eGPUFaceCullTest)state.culling_test); } if (changed.logic_op_xor != 0) { set_logic_op(state.logic_op_xor); @@ -90,7 +94,7 @@ void GLStateManager::set_state(const GPUState &state) set_facing(state.invert_facing); } if (changed.provoking_vert != 0) { - set_provoking_vert(state.provoking_vert); + set_provoking_vert((eGPUProvokingVertex)state.provoking_vert); } if (changed.shadow_bias != 0) { set_shadow_bias(state.shadow_bias); @@ -150,7 +154,7 @@ void GLStateManager::set_mutable_state(const GPUStateMutable &state) if (changed.line_width != 0) { /* TODO remove, should use wide line shader. */ - glLineWidth(clamp_f(state.line_width, 1.0f, GPU_max_line_width())); + glLineWidth(clamp_f(state.line_width, line_width_range_[0], line_width_range_[1])); } if (changed.depth_range[0] != 0 || changed.depth_range[1] != 0) { @@ -160,7 +164,7 @@ void GLStateManager::set_mutable_state(const GPUStateMutable &state) if (changed.stencil_compare_mask != 0 || changed.stencil_reference != 0 || changed.stencil_write_mask != 0) { - set_stencil_mask(current_.stencil_test, state); + set_stencil_mask((eGPUStencilTest)current_.stencil_test, state); } current_mutable_ = state; |