gl_shader_gen: Use explicit locations for vertex shader attributes.
This commit is contained in:
		@@ -362,15 +362,14 @@ out vec4 color;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
std::string GenerateVertexShader() {
 | 
			
		||||
    static const std::string out = R"(
 | 
			
		||||
#version 330
 | 
			
		||||
 | 
			
		||||
in vec4 vert_position;
 | 
			
		||||
in vec4 vert_color;
 | 
			
		||||
in vec2 vert_texcoord0;
 | 
			
		||||
in vec2 vert_texcoord1;
 | 
			
		||||
in vec2 vert_texcoord2;
 | 
			
		||||
    std::string out = "#version 330\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";
 | 
			
		||||
    out += "layout(location = " + std::to_string((int)ATTRIBUTE_TEXCOORD1) + ") in vec2 vert_texcoord1;\n";
 | 
			
		||||
    out += "layout(location = " + std::to_string((int)ATTRIBUTE_TEXCOORD2) + ") in vec2 vert_texcoord2;\n";
 | 
			
		||||
 | 
			
		||||
    out += R"(
 | 
			
		||||
out vec4 primary_color;
 | 
			
		||||
out vec2 texcoord[3];
 | 
			
		||||
 | 
			
		||||
@@ -382,6 +381,7 @@ void main() {
 | 
			
		||||
    gl_Position = vec4(vert_position.x, -vert_position.y, -vert_position.z, vert_position.w);
 | 
			
		||||
}
 | 
			
		||||
)";
 | 
			
		||||
 | 
			
		||||
    return out;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -66,12 +66,6 @@ GLuint LoadProgram(const char* vertex_shader, const char* fragment_shader) {
 | 
			
		||||
    glAttachShader(program_id, vertex_shader_id);
 | 
			
		||||
    glAttachShader(program_id, fragment_shader_id);
 | 
			
		||||
 | 
			
		||||
    glBindAttribLocation(program_id, Attributes::ATTRIBUTE_POSITION, "vert_position");
 | 
			
		||||
    glBindAttribLocation(program_id, Attributes::ATTRIBUTE_COLOR, "vert_color");
 | 
			
		||||
    glBindAttribLocation(program_id, Attributes::ATTRIBUTE_TEXCOORD0, "vert_texcoord0");
 | 
			
		||||
    glBindAttribLocation(program_id, Attributes::ATTRIBUTE_TEXCOORD1, "vert_texcoord1");
 | 
			
		||||
    glBindAttribLocation(program_id, Attributes::ATTRIBUTE_TEXCOORD2, "vert_texcoord2");
 | 
			
		||||
 | 
			
		||||
    glLinkProgram(program_id);
 | 
			
		||||
 | 
			
		||||
    // Check the program
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user