diff options
| author | 2019-12-25 19:30:05 -0300 | |
|---|---|---|
| committer | 2020-02-28 16:39:44 -0300 | |
| commit | d2d55542965e969a73ddd400e8290b5f4f4101a2 (patch) | |
| tree | 6b2272670aba077659fe4b5f61c8bf4a4a74803e /src | |
| parent | gl_rasterizer: Add oglEnablei helper (diff) | |
| download | yuzu-d2d55542965e969a73ddd400e8290b5f4f4101a2.tar.gz yuzu-d2d55542965e969a73ddd400e8290b5f4f4101a2.tar.xz yuzu-d2d55542965e969a73ddd400e8290b5f4f4101a2.zip | |
gl_state: Remove point size tracking
Diffstat (limited to 'src')
| -rw-r--r-- | src/video_core/renderer_opengl/gl_rasterizer.cpp | 10 | ||||
| -rw-r--r-- | src/video_core/renderer_opengl/gl_state.cpp | 9 | ||||
| -rw-r--r-- | src/video_core/renderer_opengl/gl_state.h | 7 |
3 files changed, 4 insertions, 22 deletions
diff --git a/src/video_core/renderer_opengl/gl_rasterizer.cpp b/src/video_core/renderer_opengl/gl_rasterizer.cpp index 7cd522da0..a0b0274fb 100644 --- a/src/video_core/renderer_opengl/gl_rasterizer.cpp +++ b/src/video_core/renderer_opengl/gl_rasterizer.cpp | |||
| @@ -428,9 +428,7 @@ void RasterizerOpenGL::Clear() { | |||
| 428 | bool use_stencil{}; | 428 | bool use_stencil{}; |
| 429 | 429 | ||
| 430 | OpenGLState prev_state{OpenGLState::GetCurState()}; | 430 | OpenGLState prev_state{OpenGLState::GetCurState()}; |
| 431 | SCOPE_EXIT({ | 431 | SCOPE_EXIT({ prev_state.Apply(); }); |
| 432 | prev_state.Apply(); | ||
| 433 | }); | ||
| 434 | 432 | ||
| 435 | OpenGLState clear_state{OpenGLState::GetCurState()}; | 433 | OpenGLState clear_state{OpenGLState::GetCurState()}; |
| 436 | clear_state.SetDefaultViewports(); | 434 | clear_state.SetDefaultViewports(); |
| @@ -1205,9 +1203,9 @@ void RasterizerOpenGL::SyncPointState() { | |||
| 1205 | const auto& regs = system.GPU().Maxwell3D().regs; | 1203 | const auto& regs = system.GPU().Maxwell3D().regs; |
| 1206 | // Limit the point size to 1 since nouveau sometimes sets a point size of 0 (and that's invalid | 1204 | // Limit the point size to 1 since nouveau sometimes sets a point size of 0 (and that's invalid |
| 1207 | // in OpenGL). | 1205 | // in OpenGL). |
| 1208 | state.point.program_control = regs.vp_point_size.enable != 0; | 1206 | oglEnable(GL_PROGRAM_POINT_SIZE, regs.vp_point_size.enable); |
| 1209 | state.point.sprite = regs.point_sprite_enable != 0; | 1207 | oglEnable(GL_POINT_SPRITE, regs.point_sprite_enable); |
| 1210 | state.point.size = std::max(1.0f, regs.point_size); | 1208 | glPointSize(std::max(1.0f, regs.point_size)); |
| 1211 | } | 1209 | } |
| 1212 | 1210 | ||
| 1213 | void RasterizerOpenGL::SyncPolygonOffset() { | 1211 | void RasterizerOpenGL::SyncPolygonOffset() { |
diff --git a/src/video_core/renderer_opengl/gl_state.cpp b/src/video_core/renderer_opengl/gl_state.cpp index 732cb3a3c..02b3455cc 100644 --- a/src/video_core/renderer_opengl/gl_state.cpp +++ b/src/video_core/renderer_opengl/gl_state.cpp | |||
| @@ -126,14 +126,6 @@ void OpenGLState::ApplyClipDistances() { | |||
| 126 | } | 126 | } |
| 127 | } | 127 | } |
| 128 | 128 | ||
| 129 | void OpenGLState::ApplyPointSize() { | ||
| 130 | Enable(GL_PROGRAM_POINT_SIZE, cur_state.point.program_control, point.program_control); | ||
| 131 | Enable(GL_POINT_SPRITE, cur_state.point.sprite, point.sprite); | ||
| 132 | if (UpdateValue(cur_state.point.size, point.size)) { | ||
| 133 | glPointSize(point.size); | ||
| 134 | } | ||
| 135 | } | ||
| 136 | |||
| 137 | void OpenGLState::ApplyFragmentColorClamp() { | 129 | void OpenGLState::ApplyFragmentColorClamp() { |
| 138 | if (UpdateValue(cur_state.fragment_color_clamp.enabled, fragment_color_clamp.enabled)) { | 130 | if (UpdateValue(cur_state.fragment_color_clamp.enabled, fragment_color_clamp.enabled)) { |
| 139 | glClampColor(GL_CLAMP_FRAGMENT_COLOR_ARB, | 131 | glClampColor(GL_CLAMP_FRAGMENT_COLOR_ARB, |
| @@ -445,7 +437,6 @@ void OpenGLState::Apply() { | |||
| 445 | ApplyShaderProgram(); | 437 | ApplyShaderProgram(); |
| 446 | ApplyProgramPipeline(); | 438 | ApplyProgramPipeline(); |
| 447 | ApplyClipDistances(); | 439 | ApplyClipDistances(); |
| 448 | ApplyPointSize(); | ||
| 449 | ApplyFragmentColorClamp(); | 440 | ApplyFragmentColorClamp(); |
| 450 | ApplyMultisample(); | 441 | ApplyMultisample(); |
| 451 | ApplyRasterizerDiscard(); | 442 | ApplyRasterizerDiscard(); |
diff --git a/src/video_core/renderer_opengl/gl_state.h b/src/video_core/renderer_opengl/gl_state.h index 5dda9e88f..acd24c042 100644 --- a/src/video_core/renderer_opengl/gl_state.h +++ b/src/video_core/renderer_opengl/gl_state.h | |||
| @@ -131,12 +131,6 @@ public: | |||
| 131 | std::array<Viewport, Tegra::Engines::Maxwell3D::Regs::NumViewports> viewports; | 131 | std::array<Viewport, Tegra::Engines::Maxwell3D::Regs::NumViewports> viewports; |
| 132 | 132 | ||
| 133 | struct { | 133 | struct { |
| 134 | bool program_control = false; // GL_PROGRAM_POINT_SIZE | ||
| 135 | bool sprite = false; // GL_POINT_SPRITE | ||
| 136 | GLfloat size = 1.0f; // GL_POINT_SIZE | ||
| 137 | } point; | ||
| 138 | |||
| 139 | struct { | ||
| 140 | bool point_enable = false; | 134 | bool point_enable = false; |
| 141 | bool line_enable = false; | 135 | bool line_enable = false; |
| 142 | bool fill_enable = false; | 136 | bool fill_enable = false; |
| @@ -176,7 +170,6 @@ public: | |||
| 176 | void ApplyShaderProgram(); | 170 | void ApplyShaderProgram(); |
| 177 | void ApplyProgramPipeline(); | 171 | void ApplyProgramPipeline(); |
| 178 | void ApplyClipDistances(); | 172 | void ApplyClipDistances(); |
| 179 | void ApplyPointSize(); | ||
| 180 | void ApplyFragmentColorClamp(); | 173 | void ApplyFragmentColorClamp(); |
| 181 | void ApplyMultisample(); | 174 | void ApplyMultisample(); |
| 182 | void ApplySRgb(); | 175 | void ApplySRgb(); |