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…
Reference in a new issue