renderer_opengl: Fix uniform issues introduced with kemenaran/avoid-explicit-uniform-location.
This commit is contained in:
		@@ -492,10 +492,12 @@ void RasterizerOpenGL::SetShader() {
 | 
			
		||||
        state.Apply();
 | 
			
		||||
 | 
			
		||||
        // Set the texture samplers to correspond to different texture units
 | 
			
		||||
        GLuint uniform_tex = glGetUniformLocation(shader->shader.handle, "tex");
 | 
			
		||||
        glUniform1i(uniform_tex,     0);
 | 
			
		||||
        glUniform1i(uniform_tex + 1, 1);
 | 
			
		||||
        glUniform1i(uniform_tex + 2, 2);
 | 
			
		||||
        GLuint uniform_tex = glGetUniformLocation(shader->shader.handle, "tex[0]");
 | 
			
		||||
        if (uniform_tex != -1) { glUniform1i(uniform_tex, 0); }
 | 
			
		||||
        uniform_tex = glGetUniformLocation(shader->shader.handle, "tex[1]");
 | 
			
		||||
        if (uniform_tex != -1) { glUniform1i(uniform_tex, 1); }
 | 
			
		||||
        uniform_tex = glGetUniformLocation(shader->shader.handle, "tex[2]");
 | 
			
		||||
        if (uniform_tex != -1) { glUniform1i(uniform_tex, 2); }
 | 
			
		||||
 | 
			
		||||
        current_shader = shader_cache.emplace(config, std::move(shader)).first->second.get();
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -320,7 +320,7 @@ static void WriteTevStage(std::string& out, const PicaShaderConfig& config, unsi
 | 
			
		||||
 | 
			
		||||
std::string GenerateFragmentShader(const PicaShaderConfig& config) {
 | 
			
		||||
    std::string out = R"(
 | 
			
		||||
#version 330
 | 
			
		||||
#version 330 core
 | 
			
		||||
#define NUM_TEV_STAGES 6
 | 
			
		||||
 | 
			
		||||
in vec4 primary_color;
 | 
			
		||||
@@ -362,7 +362,7 @@ layout (std140) uniform shader_data {
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
std::string GenerateVertexShader() {
 | 
			
		||||
    std::string out = "#version 330\n";
 | 
			
		||||
    std::string out = "#version 330 core\n";
 | 
			
		||||
    out += "layout(location = " + std::to_string((int)ATTRIBUTE_POSITION)  + ") in vec4 vert_position;\n";
 | 
			
		||||
    out += "layout(location = " + std::to_string((int)ATTRIBUTE_COLOR)     + ") in vec4 vert_color;\n";
 | 
			
		||||
    out += "layout(location = " + std::to_string((int)ATTRIBUTE_TEXCOORD0) + ") in vec2 vert_texcoord0;\n";
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user