diff options
Diffstat (limited to 'src/render')
| -rw-r--r-- | src/render/gl.cpp | 26 | ||||
| -rw-r--r-- | src/render/gl_2d_font.cpp | 28 |
2 files changed, 16 insertions, 38 deletions
diff --git a/src/render/gl.cpp b/src/render/gl.cpp index 6654dd4..c084db0 100644 --- a/src/render/gl.cpp +++ b/src/render/gl.cpp @@ -43,7 +43,7 @@ GL_DATA* gl_create( I32* _canvas ) { GL_DATA* gl = new GL_DATA; gl->window = SDL_CreateWindow( "game", - SDL_WINDOWPOS_CENTERED, // Use centered position + SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED, _canvas[0], _canvas[1], @@ -64,6 +64,7 @@ GL_DATA* gl_create( I32* _canvas ) { return 0; } + SDL_GL_SetSwapInterval(0); SDL_GL_MakeCurrent( gl->window, gl->ctx ); GLenum glewError = glewInit(); @@ -75,17 +76,8 @@ GL_DATA* gl_create( I32* _canvas ) { return 0; } - dlog( "OpenGL Version: %s\n", glGetString(GL_VERSION) ); - dlog( "GLSL Version: %s\n", glGetString(GL_SHADING_LANGUAGE_VERSION) ); - dlog( "Renderer: %s\n", glGetString(GL_RENDERER) ); - dlog( "Vendor: %s\n", glGetString(GL_VENDOR) ); - - // Set up V-Sync (0 = off, 1 = on, -1 = adaptive) - SDL_GL_SetSwapInterval(1); - - // Clear any OpenGL errors that might have occurred during initialization - while( glGetError() != GL_NO_ERROR ); - + while( glGetError() != GL_NO_ERROR ); // clear errors + // glGetIntegerv( GL_MAX_TEXTURE_IMAGE_UNITS, &gl->shader_texture_limit ); if( gl->shader_texture_limit > 255 ) gl->shader_texture_limit = 255; @@ -96,28 +88,22 @@ GL_DATA* gl_create( I32* _canvas ) { memcpy( gl->canvas_size, _canvas, sizeof(I32) * 2 ); gl->clip_start = { 0, 0 }; gl->clip_dim = { (F32)gl->canvas_size[0], (F32)gl->canvas_size[1] }; - - // Set initial viewport glViewport( 0, 0, gl->canvas_size[0], gl->canvas_size[1] ); - - // Set initial clear color (so you can see if clearing is working) - glClearColor( 0.2f, 0.2f, 0.2f, 1.0f ); gl_inst = gl; return gl; } void gl_gen_buffers( GL_DATA* gl ) { - // Generate and bind VAO first glGenVertexArrays( 1, &gl->vao ); glBindVertexArray( gl->vao ); - + glGenBuffers( 1, &gl->vbuffer ); glBindBuffer( GL_ARRAY_BUFFER, gl->vbuffer ); glBufferData( GL_ARRAY_BUFFER, 8192, 0, GL_STATIC_DRAW ); glBindBuffer( GL_ARRAY_BUFFER, 0 ); - glBindVertexArray( 0 ); // Unbind VAO + glBindVertexArray( 0 ); } void gl_destroy( GL_DATA *gl ) { diff --git a/src/render/gl_2d_font.cpp b/src/render/gl_2d_font.cpp index a104124..329f0be 100644 --- a/src/render/gl_2d_font.cpp +++ b/src/render/gl_2d_font.cpp @@ -211,31 +211,23 @@ void gl_font_draw( GL_FONT* font, GL_SHADER_PROGRAM* shader, VEC2 origin, const glBindBuffer( GL_ARRAY_BUFFER, shader->gl->vbuffer ); glBufferData( GL_ARRAY_BUFFER, sizeof(VERTEX) * 6 * len, vertices, GL_STATIC_DRAW ); - + I32 position = glGetAttribLocation( shader->id, "in_pos" ); I32 color = glGetAttribLocation( shader->id, "in_clr" ); I32 texcoord = glGetAttribLocation( shader->id, "in_texcoord" ); I32 sampler = glGetAttribLocation( shader->id, "in_sampler" ); - - if (position >= 0) { - glEnableVertexAttribArray( position ); - glVertexAttribPointer( position, 2, GL_FLOAT, 0, sizeof(VERTEX), &( (VERTEX*)nullptr)->pos ); - } - if (color >= 0) { - glEnableVertexAttribArray( color ); - glVertexAttribPointer( color, 4, GL_FLOAT, 0, sizeof(VERTEX), &( (VERTEX*)nullptr)->clr ); - } + glEnableVertexAttribArray( position ); + glVertexAttribPointer( position, 2, GL_FLOAT, 0, sizeof(VERTEX), &( (VERTEX*)nullptr)->pos ); - if (texcoord >= 0) { - glEnableVertexAttribArray( texcoord ); - glVertexAttribPointer( texcoord, 2, GL_FLOAT, 0, sizeof(VERTEX), &( (VERTEX*)nullptr)->uv ); - } + glEnableVertexAttribArray( color ); + glVertexAttribPointer( color, 4, GL_FLOAT, 0, sizeof(VERTEX), &( (VERTEX*)nullptr)->clr ); - if (sampler >= 0) { - glEnableVertexAttribArray( sampler ); - glVertexAttribPointer( sampler, 1, GL_UNSIGNED_BYTE, 1, sizeof(VERTEX), &( (VERTEX*)nullptr)->sampler ); - } + glEnableVertexAttribArray( texcoord ); + glVertexAttribPointer( texcoord, 2, GL_FLOAT, 0, sizeof(VERTEX), &( (VERTEX*)nullptr)->uv ); + + glEnableVertexAttribArray( sampler ); + glVertexAttribPointer( sampler, 1, GL_UNSIGNED_BYTE, 1, sizeof(VERTEX), &( (VERTEX*)nullptr)->sampler ); glActiveTexture( GL_TEXTURE0 ); glBindTexture( GL_TEXTURE_2D, font->atlas->id ); |
