summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorGravatar ReinUsesLisp2019-12-25 19:30:05 -0300
committerGravatar ReinUsesLisp2020-02-28 16:39:44 -0300
commitd2d55542965e969a73ddd400e8290b5f4f4101a2 (patch)
tree6b2272670aba077659fe4b5f61c8bf4a4a74803e /src
parentgl_rasterizer: Add oglEnablei helper (diff)
downloadyuzu-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.cpp10
-rw-r--r--src/video_core/renderer_opengl/gl_state.cpp9
-rw-r--r--src/video_core/renderer_opengl/gl_state.h7
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
1213void RasterizerOpenGL::SyncPolygonOffset() { 1211void 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
129void 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
137void OpenGLState::ApplyFragmentColorClamp() { 129void 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();