mirror of
				https://github.com/PabloMK7/citra.git
				synced 2025-10-30 21:30:04 +00:00 
			
		
		
		
	Merge pull request #1253 from kemenaran/avoid-explicit-uniform-location
Use regular uniform location
This commit is contained in:
		
						commit
						ff502a51c5
					
				
					 3 changed files with 5 additions and 15 deletions
				
			
		|  | @ -492,9 +492,10 @@ void RasterizerOpenGL::SetShader() { | |||
|         state.Apply(); | ||||
| 
 | ||||
|         // Set the texture samplers to correspond to different texture units
 | ||||
|         glUniform1i(PicaShader::Uniform::Texture0, 0); | ||||
|         glUniform1i(PicaShader::Uniform::Texture1, 1); | ||||
|         glUniform1i(PicaShader::Uniform::Texture2, 2); | ||||
|         GLuint uniform_tex = glGetUniformLocation(shader->shader.handle, "tex"); | ||||
|         glUniform1i(uniform_tex,     0); | ||||
|         glUniform1i(uniform_tex + 1, 1); | ||||
|         glUniform1i(uniform_tex + 2, 2); | ||||
| 
 | ||||
|         current_shader = shader_cache.emplace(config, std::move(shader)).first->second.get(); | ||||
| 
 | ||||
|  |  | |||
|  | @ -138,13 +138,6 @@ public: | |||
|     struct PicaShader { | ||||
|         /// OpenGL shader resource
 | ||||
|         OGLShader shader; | ||||
| 
 | ||||
|         /// Fragment shader uniforms
 | ||||
|         enum Uniform : GLuint { | ||||
|             Texture0 = 0, | ||||
|             Texture1 = 1, | ||||
|             Texture2 = 2, | ||||
|         }; | ||||
|     }; | ||||
| 
 | ||||
| private: | ||||
|  |  | |||
|  | @ -321,8 +321,6 @@ static void WriteTevStage(std::string& out, const PicaShaderConfig& config, unsi | |||
| std::string GenerateFragmentShader(const PicaShaderConfig& config) { | ||||
|     std::string out = R"( | ||||
| #version 330 | ||||
| #extension GL_ARB_explicit_uniform_location : require | ||||
| 
 | ||||
| #define NUM_TEV_STAGES 6 | ||||
| 
 | ||||
| in vec4 primary_color; | ||||
|  | @ -338,9 +336,7 @@ layout (std140) uniform shader_data { | |||
| 
 | ||||
| )"; | ||||
| 
 | ||||
|     using Uniform = RasterizerOpenGL::PicaShader::Uniform; | ||||
|     out += "layout(location = " + std::to_string((int)Uniform::Texture0) + ") uniform sampler2D tex[3];\n"; | ||||
| 
 | ||||
|     out += "uniform sampler2D tex[3];\n"; | ||||
|     out += "void main() {\n"; | ||||
|     out += "vec4 combiner_buffer = tev_combiner_buffer_color;\n"; | ||||
|     out += "vec4 last_tex_env_out = vec4(0.0);\n"; | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue