mirror of
				https://github.com/PabloMK7/citra.git
				synced 2025-10-31 05:40:04 +00:00 
			
		
		
		
	Merge pull request #81 from yuriks/downgrade-shader
Downgrade GLSL version to 1.50 (compatible with GL 3.2)
This commit is contained in:
		
						commit
						7122c46937
					
				
					 3 changed files with 15 additions and 10 deletions
				
			
		|  | @ -7,9 +7,9 @@ | |||
| namespace GLShaders { | ||||
| 
 | ||||
| static const char g_vertex_shader[] = R"( | ||||
| #version 330 core | ||||
| layout(location = 0) in vec3 position; | ||||
| layout(location = 1) in vec2 texCoord; | ||||
| #version 150 core | ||||
| in vec3 position; | ||||
| in vec2 texCoord; | ||||
| 
 | ||||
| out vec2 UV; | ||||
| 
 | ||||
|  | @ -27,7 +27,7 @@ void main() { | |||
| })"; | ||||
| 
 | ||||
| static const char g_fragment_shader[] = R"( | ||||
| #version 330 core | ||||
| #version 150 core | ||||
| in vec2 UV; | ||||
| out vec3 color; | ||||
| uniform sampler2D sampler; | ||||
|  |  | |||
|  | @ -155,6 +155,8 @@ void RendererOpenGL::RenderXFB(const common::Rect& src_rect, const common::Rect& | |||
| void RendererOpenGL::InitFramebuffer() { | ||||
|     program_id = ShaderUtil::LoadShaders(GLShaders::g_vertex_shader, GLShaders::g_fragment_shader); | ||||
|     sampler_id = glGetUniformLocation(program_id, "sampler"); | ||||
|     attrib_position = glGetAttribLocation(program_id, "position"); | ||||
|     attrib_texcoord = glGetAttribLocation(program_id, "texCoord"); | ||||
| 
 | ||||
|     // Generate vertex buffers for both screens
 | ||||
|     glGenBuffers(1, &screen_info.Top().vertex_buffer_id); | ||||
|  | @ -197,8 +199,8 @@ void RendererOpenGL::RenderFramebuffer() { | |||
|     // Bind texture in Texture Unit 0
 | ||||
|     glActiveTexture(GL_TEXTURE0); | ||||
| 
 | ||||
|     glEnableVertexAttribArray(0); | ||||
|     glEnableVertexAttribArray(1); | ||||
|     glEnableVertexAttribArray(attrib_position); | ||||
|     glEnableVertexAttribArray(attrib_texcoord); | ||||
| 
 | ||||
|     for (int i = 0; i < 2; i++) { | ||||
| 
 | ||||
|  | @ -216,15 +218,15 @@ void RendererOpenGL::RenderFramebuffer() { | |||
|         const GLvoid* uv_offset = (const GLvoid*)(3 * sizeof(GLfloat)); | ||||
| 
 | ||||
|         // Configure vertex buffer
 | ||||
|         glVertexAttribPointer(0, 3, GL_FLOAT, GL_FALSE, stride, NULL); | ||||
|         glVertexAttribPointer(1, 2, GL_FLOAT, GL_FALSE, stride, uv_offset); | ||||
|         glVertexAttribPointer(attrib_position, 3, GL_FLOAT, GL_FALSE, stride, NULL); | ||||
|         glVertexAttribPointer(attrib_texcoord, 2, GL_FLOAT, GL_FALSE, stride, uv_offset); | ||||
| 
 | ||||
|         // Draw screen
 | ||||
|         glDrawArrays(GL_TRIANGLES, 0, 6); | ||||
|     } | ||||
| 
 | ||||
|     glDisableVertexAttribArray(0); | ||||
|     glDisableVertexAttribArray(1); | ||||
|     glDisableVertexAttribArray(attrib_position); | ||||
|     glDisableVertexAttribArray(attrib_texcoord); | ||||
| 
 | ||||
|     m_current_frame++; | ||||
| } | ||||
|  |  | |||
|  | @ -85,6 +85,9 @@ private: | |||
|     GLuint vertex_array_id; | ||||
|     GLuint program_id; | ||||
|     GLuint sampler_id; | ||||
|     // Shader attribute input indices
 | ||||
|     GLuint attrib_position; | ||||
|     GLuint attrib_texcoord; | ||||
| 
 | ||||
|     struct : std::array<ScreenInfo, 2> { | ||||
|         ScreenInfo& Top() { return (*this)[0]; } | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue