Downgrade GLSL version to 1.50 (compatible with GL 3.2)
This commit is contained in:
		| @@ -7,9 +7,9 @@ | |||||||
| namespace GLShaders { | namespace GLShaders { | ||||||
|  |  | ||||||
| static const char g_vertex_shader[] = R"( | static const char g_vertex_shader[] = R"( | ||||||
| #version 330 core | #version 150 core | ||||||
| layout(location = 0) in vec3 position; | in vec3 position; | ||||||
| layout(location = 1) in vec2 texCoord; | in vec2 texCoord; | ||||||
|  |  | ||||||
| out vec2 UV; | out vec2 UV; | ||||||
|  |  | ||||||
| @@ -27,7 +27,7 @@ void main() { | |||||||
| })"; | })"; | ||||||
|  |  | ||||||
| static const char g_fragment_shader[] = R"( | static const char g_fragment_shader[] = R"( | ||||||
| #version 330 core | #version 150 core | ||||||
| in vec2 UV; | in vec2 UV; | ||||||
| out vec3 color; | out vec3 color; | ||||||
| uniform sampler2D sampler; | uniform sampler2D sampler; | ||||||
|   | |||||||
| @@ -155,6 +155,8 @@ void RendererOpenGL::RenderXFB(const common::Rect& src_rect, const common::Rect& | |||||||
| void RendererOpenGL::InitFramebuffer() { | void RendererOpenGL::InitFramebuffer() { | ||||||
|     program_id = ShaderUtil::LoadShaders(GLShaders::g_vertex_shader, GLShaders::g_fragment_shader); |     program_id = ShaderUtil::LoadShaders(GLShaders::g_vertex_shader, GLShaders::g_fragment_shader); | ||||||
|     sampler_id = glGetUniformLocation(program_id, "sampler"); |     sampler_id = glGetUniformLocation(program_id, "sampler"); | ||||||
|  |     attrib_position = glGetAttribLocation(program_id, "position"); | ||||||
|  |     attrib_texcoord = glGetAttribLocation(program_id, "texCoord"); | ||||||
|  |  | ||||||
|     // Generate vertex buffers for both screens |     // Generate vertex buffers for both screens | ||||||
|     glGenBuffers(1, &screen_info.Top().vertex_buffer_id); |     glGenBuffers(1, &screen_info.Top().vertex_buffer_id); | ||||||
| @@ -197,8 +199,8 @@ void RendererOpenGL::RenderFramebuffer() { | |||||||
|     // Bind texture in Texture Unit 0 |     // Bind texture in Texture Unit 0 | ||||||
|     glActiveTexture(GL_TEXTURE0); |     glActiveTexture(GL_TEXTURE0); | ||||||
|  |  | ||||||
|     glEnableVertexAttribArray(0); |     glEnableVertexAttribArray(attrib_position); | ||||||
|     glEnableVertexAttribArray(1); |     glEnableVertexAttribArray(attrib_texcoord); | ||||||
|  |  | ||||||
|     for (int i = 0; i < 2; i++) { |     for (int i = 0; i < 2; i++) { | ||||||
|  |  | ||||||
| @@ -216,15 +218,15 @@ void RendererOpenGL::RenderFramebuffer() { | |||||||
|         const GLvoid* uv_offset = (const GLvoid*)(3 * sizeof(GLfloat)); |         const GLvoid* uv_offset = (const GLvoid*)(3 * sizeof(GLfloat)); | ||||||
|  |  | ||||||
|         // Configure vertex buffer |         // Configure vertex buffer | ||||||
|         glVertexAttribPointer(0, 3, GL_FLOAT, GL_FALSE, stride, NULL); |         glVertexAttribPointer(attrib_position, 3, GL_FLOAT, GL_FALSE, stride, NULL); | ||||||
|         glVertexAttribPointer(1, 2, GL_FLOAT, GL_FALSE, stride, uv_offset); |         glVertexAttribPointer(attrib_texcoord, 2, GL_FLOAT, GL_FALSE, stride, uv_offset); | ||||||
|  |  | ||||||
|         // Draw screen |         // Draw screen | ||||||
|         glDrawArrays(GL_TRIANGLES, 0, 6); |         glDrawArrays(GL_TRIANGLES, 0, 6); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     glDisableVertexAttribArray(0); |     glDisableVertexAttribArray(attrib_position); | ||||||
|     glDisableVertexAttribArray(1); |     glDisableVertexAttribArray(attrib_texcoord); | ||||||
|  |  | ||||||
|     m_current_frame++; |     m_current_frame++; | ||||||
| } | } | ||||||
|   | |||||||
| @@ -85,6 +85,9 @@ private: | |||||||
|     GLuint vertex_array_id; |     GLuint vertex_array_id; | ||||||
|     GLuint program_id; |     GLuint program_id; | ||||||
|     GLuint sampler_id; |     GLuint sampler_id; | ||||||
|  |     // Shader attribute input indices | ||||||
|  |     GLuint attrib_position; | ||||||
|  |     GLuint attrib_texcoord; | ||||||
|  |  | ||||||
|     struct : std::array<ScreenInfo, 2> { |     struct : std::array<ScreenInfo, 2> { | ||||||
|         ScreenInfo& Top() { return (*this)[0]; } |         ScreenInfo& Top() { return (*this)[0]; } | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 Yuri Kunde Schlesner
					Yuri Kunde Schlesner