X-Git-Url: https://git.verplant.org/?a=blobdiff_plain;f=src%2Fvideo%2Fgl_renderer.cpp;h=c39744a9dcd5513070f4338e58f383236daa4185;hb=38105c22495d9439b30221732dd5d7b89f328a0c;hp=86ef0c1ca229a6f61474d65d993228957c52d88f;hpb=7a6f00e27bdc0aac2107506c3b00cbf0bf1cccc5;p=supertux.git diff --git a/src/video/gl_renderer.cpp b/src/video/gl_renderer.cpp index 86ef0c1ca..c39744a9d 100644 --- a/src/video/gl_renderer.cpp +++ b/src/video/gl_renderer.cpp @@ -103,11 +103,11 @@ inline void intern_draw(float left, float top, float right, float bottom, bottom -= center_y; float vertices[] = { - left*ca - top*sa + center_x, left*sa + top*ca + center_y, - right*ca - top*sa + center_x, right*sa + top*ca + center_y, - right*ca - bottom*sa + center_x, right*sa + bottom*ca + center_y, - left*ca - bottom*sa + center_x, left*sa + bottom*ca + center_y - }; + left*ca - top*sa + center_x, left*sa + top*ca + center_y, + right*ca - top*sa + center_x, right*sa + top*ca + center_y, + right*ca - bottom*sa + center_x, right*sa + bottom*ca + center_y, + left*ca - bottom*sa + center_x, left*sa + bottom*ca + center_y + }; glVertexPointer(2, GL_FLOAT, 0, vertices); float uvs[] = { @@ -195,8 +195,8 @@ Renderer::Renderer() glDisable(GL_CULL_FACE); glEnable(GL_TEXTURE_2D); glEnable(GL_BLEND); - glEnable(GL_VERTEX_ARRAY); - glEnable(GL_TEXTURE_COORD_ARRAY); + glEnableClientState(GL_VERTEX_ARRAY); + glEnableClientState(GL_TEXTURE_COORD_ARRAY); glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); // Init the projection matrix, viewport and stuff @@ -275,8 +275,8 @@ Renderer::draw_gradient(const DrawingRequest& request) const Color& bottom = gradientrequest->bottom; glDisable(GL_TEXTURE_2D); - glDisable(GL_TEXTURE_COORD_ARRAY); - glEnable(GL_COLOR_ARRAY); + glDisableClientState(GL_TEXTURE_COORD_ARRAY); + glEnableClientState(GL_COLOR_ARRAY); float vertices[] = { 0, 0, @@ -296,8 +296,8 @@ Renderer::draw_gradient(const DrawingRequest& request) glDrawArrays(GL_TRIANGLE_FAN, 0, 4); - glDisable(GL_COLOR_ARRAY); - glEnable(GL_TEXTURE_COORD_ARRAY); + glDisableClientState(GL_COLOR_ARRAY); + glEnableClientState(GL_TEXTURE_COORD_ARRAY); glEnable(GL_TEXTURE_2D); glColor4f(1, 1, 1, 1); @@ -361,7 +361,7 @@ Renderer::draw_filled_rect(const DrawingRequest& request) glDisable(GL_TEXTURE_2D); glColor4f(fillrectrequest->color.red, fillrectrequest->color.green, fillrectrequest->color.blue, fillrectrequest->color.alpha); - glDisable(GL_TEXTURE_COORD_ARRAY); + glDisableClientState(GL_TEXTURE_COORD_ARRAY); float vertices[] = { x, y, @@ -373,7 +373,7 @@ Renderer::draw_filled_rect(const DrawingRequest& request) glDrawArrays(GL_TRIANGLE_FAN, 0, 4); - glEnable(GL_TEXTURE_COORD_ARRAY); + glEnableClientState(GL_TEXTURE_COORD_ARRAY); glEnable(GL_TEXTURE_2D); glColor4f(1, 1, 1, 1); } @@ -448,12 +448,12 @@ Renderer::draw_inverse_ellipse(const DrawingRequest& request) vertices[p++] = x - ex2; vertices[p++] = y + ey2; } - glDisable(GL_TEXTURE_COORD_ARRAY); + glDisableClientState(GL_TEXTURE_COORD_ARRAY); glVertexPointer(2, GL_FLOAT, 0, vertices); glDrawArrays(GL_TRIANGLES, 0, points); - glEnable(GL_TEXTURE_COORD_ARRAY); + glEnableClientState(GL_TEXTURE_COORD_ARRAY); glEnable(GL_TEXTURE_2D); glColor4f(1, 1, 1, 1); @@ -605,7 +605,7 @@ Renderer::apply_config() { // This scales SCREEN_WIDTH/SCREEN_HEIGHT so that they never excede // max_width/max_height - if (config->stretch_to_window || (SCREEN_WIDTH > max_width || SCREEN_HEIGHT > max_height)) + if (SCREEN_WIDTH > max_width || SCREEN_HEIGHT > max_height) { float scale1 = float(max_width)/SCREEN_WIDTH; float scale2 = float(max_height)/SCREEN_HEIGHT; @@ -638,25 +638,21 @@ Renderer::apply_config() SCREEN_HEIGHT = static_cast(max_height); } - // Clear so that we get a clean black border without junk + // Clear both buffers so that we get a clean black border without junk + glClear(GL_COLOR_BUFFER_BIT); + SDL_GL_SwapBuffers(); glClear(GL_COLOR_BUFFER_BIT); + SDL_GL_SwapBuffers(); if (0) std::cout << (w-nw)/2 << " " << (h-nh)/2 << " " << nw << "x" << nh << std::endl; - if (config->stretch_to_window) - { - glViewport(0, 0, w, h); - } - else - { - glViewport(std::max(0, (w-nw)/2), - std::max(0, (h-nh)/2), - std::min(nw, w), - std::min(nh, h)); - } + glViewport(std::max(0, (w-nw)/2), + std::max(0, (h-nh)/2), + std::min(nw, w), + std::min(nh, h)); } if (0)