Some OpenGL cleanup
This commit is contained in:
parent
eb62a80956
commit
350ba46f2e
1 changed files with 18 additions and 15 deletions
|
@ -25,6 +25,12 @@ typedef struct Backend_Glyph
|
||||||
unsigned int height;
|
unsigned int height;
|
||||||
} Backend_Glyph;
|
} Backend_Glyph;
|
||||||
|
|
||||||
|
typedef struct VertexBuffer
|
||||||
|
{
|
||||||
|
GLfloat vertexes[4][2];
|
||||||
|
GLfloat texture_coordinates[4][2];
|
||||||
|
} VertexBuffer;
|
||||||
|
|
||||||
static SDL_Window *window;
|
static SDL_Window *window;
|
||||||
static SDL_GLContext context;
|
static SDL_GLContext context;
|
||||||
|
|
||||||
|
@ -39,11 +45,7 @@ static GLint program_glyph_uniform_colour;
|
||||||
static GLuint framebuffer_id;
|
static GLuint framebuffer_id;
|
||||||
static GLuint vertex_buffer_id;
|
static GLuint vertex_buffer_id;
|
||||||
|
|
||||||
static struct
|
static VertexBuffer vertex_buffer;
|
||||||
{
|
|
||||||
GLfloat vertexes[4][2];
|
|
||||||
GLfloat texture_coordinates[4][2];
|
|
||||||
} vertex_buffer;
|
|
||||||
|
|
||||||
static Backend_Surface framebuffer_surface;
|
static Backend_Surface framebuffer_surface;
|
||||||
|
|
||||||
|
@ -198,23 +200,28 @@ BOOL Backend_Init(SDL_Window *p_window)
|
||||||
glClearColor(0.0f, 0.0f, 0.0f, 1.0f);
|
glClearColor(0.0f, 0.0f, 0.0f, 1.0f);
|
||||||
glClear(GL_COLOR_BUFFER_BIT);
|
glClear(GL_COLOR_BUFFER_BIT);
|
||||||
|
|
||||||
// Set up VAO
|
// Set up Vertex Array Object
|
||||||
GLuint vertex_array_id;
|
GLuint vertex_array_id;
|
||||||
glGenVertexArrays(1, &vertex_array_id);
|
glGenVertexArrays(1, &vertex_array_id);
|
||||||
glBindVertexArray(vertex_array_id);
|
glBindVertexArray(vertex_array_id);
|
||||||
|
|
||||||
// Set up VBO
|
// Set up Vertex Buffer Object
|
||||||
glGenBuffers(1, &vertex_buffer_id);
|
glGenBuffers(1, &vertex_buffer_id);
|
||||||
glBindBuffer(GL_ARRAY_BUFFER, vertex_buffer_id);
|
glBindBuffer(GL_ARRAY_BUFFER, vertex_buffer_id);
|
||||||
glBufferData(GL_ARRAY_BUFFER, sizeof(vertex_buffer), NULL, GL_DYNAMIC_DRAW);
|
glBufferData(GL_ARRAY_BUFFER, sizeof(vertex_buffer), NULL, GL_DYNAMIC_DRAW);
|
||||||
|
|
||||||
// Set up IBO
|
// Set up Index Buffer Object
|
||||||
const GLuint indices[4] = {0, 1, 2, 3};
|
const GLuint indices[4] = {0, 1, 2, 3};
|
||||||
GLuint indices_buffer_id;
|
GLuint index_buffer_id;
|
||||||
glGenBuffers(1, &indices_buffer_id);
|
glGenBuffers(1, &index_buffer_id);
|
||||||
glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, indices_buffer_id);
|
glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, index_buffer_id);
|
||||||
glBufferData(GL_ELEMENT_ARRAY_BUFFER, sizeof(indices), indices, GL_STATIC_DRAW);
|
glBufferData(GL_ELEMENT_ARRAY_BUFFER, sizeof(indices), indices, GL_STATIC_DRAW);
|
||||||
|
|
||||||
|
// Set up the vertex attributes
|
||||||
|
glEnableVertexAttribArray(1);
|
||||||
|
glVertexAttribPointer(1, 2, GL_FLOAT, GL_FALSE, 0, (GLvoid*)offsetof(VertexBuffer, vertexes));
|
||||||
|
glVertexAttribPointer(2, 2, GL_FLOAT, GL_FALSE, 0, (GLvoid*)offsetof(VertexBuffer, texture_coordinates));
|
||||||
|
|
||||||
// Set up our shaders
|
// Set up our shaders
|
||||||
program_texture = CompileShader(vertex_shader_texture, fragment_shader_texture);
|
program_texture = CompileShader(vertex_shader_texture, fragment_shader_texture);
|
||||||
program_texture_colour_key = CompileShader(vertex_shader_texture, fragment_shader_texture_colour_key);
|
program_texture_colour_key = CompileShader(vertex_shader_texture, fragment_shader_texture_colour_key);
|
||||||
|
@ -228,10 +235,6 @@ BOOL Backend_Init(SDL_Window *p_window)
|
||||||
program_colour_fill_uniform_colour = glGetUniformLocation(program_colour_fill, "colour");
|
program_colour_fill_uniform_colour = glGetUniformLocation(program_colour_fill, "colour");
|
||||||
program_glyph_uniform_colour = glGetUniformLocation(program_glyph, "colour");
|
program_glyph_uniform_colour = glGetUniformLocation(program_glyph, "colour");
|
||||||
|
|
||||||
glEnableVertexAttribArray(1);
|
|
||||||
glVertexAttribPointer(1, 2, GL_FLOAT, GL_FALSE, 0, 0);
|
|
||||||
glVertexAttribPointer(2, 2, GL_FLOAT, GL_FALSE, 0, (GLvoid*)(sizeof(GLfloat) * 4 * 2));
|
|
||||||
|
|
||||||
// Set up framebuffer (used for surface-to-surface blitting)
|
// Set up framebuffer (used for surface-to-surface blitting)
|
||||||
glGenFramebuffers(1, &framebuffer_id);
|
glGenFramebuffers(1, &framebuffer_id);
|
||||||
glBindFramebuffer(GL_FRAMEBUFFER, framebuffer_id);
|
glBindFramebuffer(GL_FRAMEBUFFER, framebuffer_id);
|
||||||
|
|
Loading…
Add table
Reference in a new issue