diff options
| author | bunnei <bunneidev@gmail.com> | 2017-08-21 13:24:12 -0400 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2017-08-21 13:24:12 -0400 |
| commit | f84c965decc31a346a901e6536474a24997f2b08 (patch) | |
| tree | a727e1dad4dced81065f231f971e2d4c2ceaf656 /src/video_core/renderer_opengl/gl_state.cpp | |
| parent | 92a4b2faf81f5e4e8ebe2a28da28d7e3e8c4278d (diff) | |
| parent | 63b6e802cdffc1464b4a1fe3f5171d71146e8e9a (diff) | |
Merge pull request #2884 from wwylele/clip
gl_rasterizer: add clipping plane z<=0 defined in PICA
Diffstat (limited to 'src/video_core/renderer_opengl/gl_state.cpp')
| -rw-r--r-- | src/video_core/renderer_opengl/gl_state.cpp | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/src/video_core/renderer_opengl/gl_state.cpp b/src/video_core/renderer_opengl/gl_state.cpp index bc9d34b84..06a905766 100644 --- a/src/video_core/renderer_opengl/gl_state.cpp +++ b/src/video_core/renderer_opengl/gl_state.cpp @@ -68,6 +68,8 @@ OpenGLState::OpenGLState() { draw.vertex_buffer = 0; draw.uniform_buffer = 0; draw.shader_program = 0; + + clip_distance = {}; } void OpenGLState::Apply() const { @@ -261,6 +263,17 @@ void OpenGLState::Apply() const { glUseProgram(draw.shader_program); } + // Clip distance + for (size_t i = 0; i < clip_distance.size(); ++i) { + if (clip_distance[i] != cur_state.clip_distance[i]) { + if (clip_distance[i]) { + glEnable(GL_CLIP_DISTANCE0 + i); + } else { + glDisable(GL_CLIP_DISTANCE0 + i); + } + } + } + cur_state = *this; } |
