gl_rasterizer: Allow rendering without fragment shader

Rendering without a fragment shader is usually used in depth-only
passes.
This commit is contained in:
ReinUsesLisp 2019-12-26 16:38:39 -03:00
parent 5619d24377
commit 5b989f189f
No known key found for this signature in database
GPG key ID: 2DFC508897B39CFE
2 changed files with 7 additions and 0 deletions

View file

@ -271,6 +271,9 @@ void RasterizerOpenGL::SetupShaders(GLenum primitive_mode) {
case Maxwell::ShaderProgram::Geometry: case Maxwell::ShaderProgram::Geometry:
shader_program_manager->UseTrivialGeometryShader(); shader_program_manager->UseTrivialGeometryShader();
break; break;
case Maxwell::ShaderProgram::Fragment:
shader_program_manager->UseTrivialFragmentShader();
break;
default: default:
break; break;
} }

View file

@ -50,6 +50,10 @@ public:
current_state.geometry_shader = 0; current_state.geometry_shader = 0;
} }
void UseTrivialFragmentShader() {
current_state.fragment_shader = 0;
}
private: private:
struct PipelineState { struct PipelineState {
bool operator==(const PipelineState& rhs) const { bool operator==(const PipelineState& rhs) const {