From 8e17f8695e837e392c3e7ab64570932135362f35 Mon Sep 17 00:00:00 2001
From: Themaister <maister@archlinux.us>
Date: Sun, 27 May 2012 12:26:43 +0200
Subject: [PATCH] Remove unneeded pre/post calls.

---
 gfx/fonts/freetype.c       | 50 ++++++++++++++++++++++++------------
 gfx/fonts/ps3_libdbgfont.c | 18 +++++--------
 gfx/gl.c                   | 52 ++++++++++++--------------------------
 gfx/gl_common.h            |  4 +++
 gfx/gl_font.h              |  3 ---
 5 files changed, 61 insertions(+), 66 deletions(-)

diff --git a/gfx/fonts/freetype.c b/gfx/fonts/freetype.c
index 7014c8c28c..6377948fa2 100644
--- a/gfx/fonts/freetype.c
+++ b/gfx/fonts/freetype.c
@@ -221,12 +221,44 @@ static void calculate_font_coords(gl_t *gl,
 }
 #endif
 
+static void gl_render_msg_pre(gl_t *gl)
+{
+#ifdef HAVE_FREETYPE
+   gl_shader_use(0);
+   gl_set_viewport(gl, gl->win_width, gl->win_height, false, false);
+   glEnable(GL_BLEND);
+#else
+   (void)gl;
+#endif
+}
+
+extern const GLfloat vertexes_flipped[];
+extern const GLfloat white_color[];
+
+static void gl_render_msg_post(gl_t *gl)
+{
+#ifdef HAVE_FREETYPE
+   // Go back to old rendering path.
+   glTexCoordPointer(2, GL_FLOAT, 0, gl->tex_coords);
+   glVertexPointer(2, GL_FLOAT, 0, vertexes_flipped);
+   glColorPointer(4, GL_FLOAT, 0, white_color);
+   glBindTexture(GL_TEXTURE_2D, gl->texture[gl->tex_index]);
+
+   glDisable(GL_BLEND);
+   gl_set_projection(gl, true);
+#else
+   (void)gl;
+#endif
+}
+
 void gl_render_msg(gl_t *gl, const char *msg)
 {
 #ifdef HAVE_FREETYPE
    if (!gl->font)
       return;
 
+   gl_render_msg_pre(gl);
+
    GLfloat font_vertex[8]; 
    GLfloat font_vertex_dark[8]; 
    GLfloat font_tex_coords[8];
@@ -261,26 +293,12 @@ void gl_render_msg(gl_t *gl, const char *msg)
    glVertexPointer(2, GL_FLOAT, 0, font_vertex);
    glColorPointer(4, GL_FLOAT, 0, gl->font_color);
    glDrawArrays(GL_QUADS, 0, 4);
+
+   gl_render_msg_post(gl);
 #else
    (void)gl;
    (void)msg;
 #endif
 }
 
-void gl_render_msg_pre(gl_t *gl)
-{
-#ifdef HAVE_FREETYPE
-#ifdef HAVE_CG
-   gl_shader_use(0);
-#endif
-   set_viewport(gl, gl->win_width, gl->win_height, false, false);
-   glEnable(GL_BLEND);
-#endif
-}
 
-void gl_render_msg_post(gl_t *gl)
-{
-#ifdef HAVE_FREETYPE
-   gl_old_render_path(gl);
-#endif
-}
diff --git a/gfx/fonts/ps3_libdbgfont.c b/gfx/fonts/ps3_libdbgfont.c
index 51f22bd5d1..445af60a56 100644
--- a/gfx/fonts/ps3_libdbgfont.c
+++ b/gfx/fonts/ps3_libdbgfont.c
@@ -21,12 +21,13 @@ void gl_init_font(gl_t *gl, const char *font_path, unsigned font_size)
 {
    (void)font_path;
    (void)font_size;
-   CellDbgFontConfig cfg;
 
-   memset(&cfg, 0, sizeof(cfg));
-   cfg.bufSize = 512;
-   cfg.screenWidth = gl->win_width;
-   cfg.screenHeight = gl->win_height;
+   CellDbgFontConfig cfg = {
+      .bufSize      = 512,
+      .screenWidth  = gl->win_width,
+      .screenHeight = gl->win_height,
+   };
+
    cellDbgFontInit(&cfg);
 }
 
@@ -39,11 +40,6 @@ void gl_render_msg(gl_t *gl, const char *msg)
 {
    cellDbgFontPrintf(g_settings.video.msg_pos_x, g_settings.video.msg_pos_y, 1.11f, BLUE,	msg);
    cellDbgFontPrintf(g_settings.video.msg_pos_x, g_settings.video.msg_pos_y, 1.10f, WHITE, msg);
-}
-
-void gl_render_msg_pre(gl_t *gl) { }
-
-void gl_render_msg_post(gl_t *gl)
-{
    cellDbgFontDraw();
 }
+
diff --git a/gfx/gl.c b/gfx/gl.c
index 2da9d6909a..d052f5c59f 100644
--- a/gfx/gl.c
+++ b/gfx/gl.c
@@ -46,12 +46,8 @@
 #include "shader_glsl.h"
 #endif
 
-#ifdef HAVE_FREETYPE
-#include "fonts/fonts.h"
-#endif
-
 // Used for the last pass when rendering to the back buffer.
-static const GLfloat vertexes_flipped[] = {
+const GLfloat vertexes_flipped[] = {
    0, 0,
    0, 1,
    1, 1,
@@ -74,7 +70,7 @@ static const GLfloat tex_coords[] = {
    1, 1
 };
 
-static const GLfloat white_color[] = {
+const GLfloat white_color[] = {
    1, 1, 1, 1,
    1, 1, 1, 1,
    1, 1, 1, 1,
@@ -183,7 +179,7 @@ static bool gl_shader_init(void)
    return true;
 }
 
-static void gl_shader_use(unsigned index)
+void gl_shader_use(unsigned index)
 {
 #ifdef HAVE_CG
    gl_cg_use(index);
@@ -430,7 +426,7 @@ static void gl_init_fbo(gl_t *gl, unsigned width, unsigned height)
 
 ////////////
 
-static void set_projection(gl_t *gl, bool allow_rotate)
+void gl_set_projection(gl_t *gl, bool allow_rotate)
 {
    glMatrixMode(GL_PROJECTION);
    glLoadIdentity();
@@ -445,7 +441,7 @@ static void set_projection(gl_t *gl, bool allow_rotate)
    gl_shader_set_proj_matrix();
 }
 
-void set_viewport(gl_t *gl, unsigned width, unsigned height, bool force_full, bool allow_rotate)
+void gl_set_viewport(gl_t *gl, unsigned width, unsigned height, bool force_full, bool allow_rotate)
 {
    if (gl->keep_aspect && !force_full)
    {
@@ -472,7 +468,7 @@ void set_viewport(gl_t *gl, unsigned width, unsigned height, bool force_full, bo
    else
       glViewport(0, 0, width, height);
 
-   set_projection(gl, allow_rotate);
+   gl_set_projection(gl, allow_rotate);
 
    gl->vp_width = width;
    gl->vp_height = height;
@@ -491,7 +487,7 @@ static void gl_set_rotation(void *data, unsigned rotation)
 {
    gl_t *gl = (gl_t*)data;
    gl->rotation = 90 * rotation;
-   set_projection(gl, true);
+   gl_set_projection(gl, true);
 }
 
 static inline void set_lut_texture_coords(const GLfloat *coords)
@@ -590,7 +586,7 @@ static void gl_start_frame_fbo(gl_t *gl)
    glBindTexture(GL_TEXTURE_2D, gl->texture[gl->tex_index]);
    pglBindFramebuffer(GL_FRAMEBUFFER, gl->fbo[0]);
    gl->render_to_tex = true;
-   set_viewport(gl, gl->fbo_rect[0].img_width, gl->fbo_rect[0].img_height, true, false);
+   gl_set_viewport(gl, gl->fbo_rect[0].img_width, gl->fbo_rect[0].img_height, true, false);
 
    // Need to preserve the "flipped" state when in FBO as well to have 
    // consistent texture coordinates.
@@ -673,7 +669,7 @@ static void gl_frame_fbo(gl_t *gl, const struct gl_tex_info *tex_info)
       glClear(GL_COLOR_BUFFER_BIT);
 
       // Render to FBO with certain size.
-      set_viewport(gl, rect->img_width, rect->img_height, true, false);
+      gl_set_viewport(gl, rect->img_width, rect->img_height, true, false);
       gl_shader_set_params(prev_rect->img_width, prev_rect->img_height, 
             prev_rect->width, prev_rect->height, 
             gl->vp_width, gl->vp_height, gl->frame_count, 
@@ -699,7 +695,7 @@ static void gl_frame_fbo(gl_t *gl, const struct gl_tex_info *tex_info)
 
    glClear(GL_COLOR_BUFFER_BIT);
    gl->render_to_tex = false;
-   set_viewport(gl, gl->win_width, gl->win_height, false, true);
+   gl_set_viewport(gl, gl->win_width, gl->win_height, false, true);
    gl_shader_set_params(prev_rect->img_width, prev_rect->img_height, 
          prev_rect->width, prev_rect->height, 
          gl->vp_width, gl->vp_height, gl->frame_count, 
@@ -716,7 +712,7 @@ static void gl_update_resize(gl_t *gl)
 {
 #ifdef HAVE_FBO
    if (!gl->render_to_tex)
-      set_viewport(gl, gl->win_width, gl->win_height, false, true);
+      gl_set_viewport(gl, gl->win_width, gl->win_height, false, true);
    else
    {
       gl_check_fbo_dimensions(gl);
@@ -725,7 +721,7 @@ static void gl_update_resize(gl_t *gl)
       gl_start_frame_fbo(gl);
    }
 #else
-   set_viewport(gl, gl->win_width, gl->win_height, false, true);
+   gl_set_viewport(gl, gl->win_width, gl->win_height, false, true);
 #endif
 }
 
@@ -836,18 +832,6 @@ static void gl_next_texture_index(gl_t *gl, const struct gl_tex_info *tex_info)
    gl->tex_index = (gl->tex_index + 1) & TEXTURES_MASK;
 }
 
-void gl_old_render_path (gl_t *gl)
-{
-   // Go back to old rendering path.
-   glTexCoordPointer(2, GL_FLOAT, 0, gl->tex_coords);
-   glVertexPointer(2, GL_FLOAT, 0, vertexes_flipped);
-   glColorPointer(4, GL_FLOAT, 0, white_color);
-   glBindTexture(GL_TEXTURE_2D, gl->texture[gl->tex_index]);
-
-   glDisable(GL_BLEND);
-   set_projection(gl, true);
-}
-
 static bool gl_frame(void *data, const void *frame, unsigned width, unsigned height, unsigned pitch, const char *msg)
 {
    gl_t *gl = (gl_t*)data;
@@ -907,11 +891,7 @@ static bool gl_frame(void *data, const void *frame, unsigned width, unsigned hei
    gl_next_texture_index(gl, &tex_info);
 
    if (msg)
-   {
-      gl_render_msg_pre(gl);
       gl_render_msg(gl, msg);
-      gl_render_msg_post(gl);
-   }
 
    gfx_ctx_update_window_title(false);
    gfx_ctx_swap_buffers();
@@ -1040,9 +1020,9 @@ static void *gl_init(const video_info_t *video, const input_driver_t **input, vo
 
    // Apparently need to set viewport for passes when we aren't using FBOs.
    gl_shader_use(0);
-   set_viewport(gl, gl->win_width, gl->win_height, false, true);
+   gl_set_viewport(gl, gl->win_width, gl->win_height, false, true);
    gl_shader_use(1);
-   set_viewport(gl, gl->win_width, gl->win_height, false, true);
+   gl_set_viewport(gl, gl->win_width, gl->win_height, false, true);
 
    bool force_smooth;
    if (gl_shader_filter_type(1, &force_smooth))
@@ -1150,9 +1130,9 @@ static bool gl_xml_shader(void *data, const char *path)
 
    // Apparently need to set viewport for passes when we aren't using FBOs.
    gl_shader_use(0);
-   set_viewport(gl, gl->win_width, gl->win_height, false, true);
+   gl_set_viewport(gl, gl->win_width, gl->win_height, false, true);
    gl_shader_use(1);
-   set_viewport(gl, gl->win_width, gl->win_height, false, true);
+   gl_set_viewport(gl, gl->win_width, gl->win_height, false, true);
 
    return true;
 }
diff --git a/gfx/gl_common.h b/gfx/gl_common.h
index faed0c34c7..800e8b946c 100644
--- a/gfx/gl_common.h
+++ b/gfx/gl_common.h
@@ -197,4 +197,8 @@ extern PFNGLACTIVETEXTUREPROC pglActiveTexture;
 #define RARCH_GL_FORMAT32 GL_UNSIGNED_INT_8_8_8_8_REV
 #define RARCH_GL_FORMAT16 GL_UNSIGNED_SHORT_1_5_5_5_REV
 
+void gl_shader_use(unsigned);
+void gl_set_projection(gl_t *gl, bool allow_rotate);
+void gl_set_viewport(gl_t *gl, unsigned width, unsigned height, bool force_full, bool allow_rotate);
+
 #endif
diff --git a/gfx/gl_font.h b/gfx/gl_font.h
index 6fd286bafa..9c512ecd35 100644
--- a/gfx/gl_font.h
+++ b/gfx/gl_font.h
@@ -23,8 +23,5 @@ void gl_deinit_font(gl_t *gl);
 
 void gl_render_msg(gl_t *gl, const char *msg);
 
-void gl_render_msg_post(gl_t *gl);
-void gl_render_msg_pre(gl_t *gl);
-
 #endif