From 4693b0aaa5d4d44771f7a984880ba3703bf5f98f Mon Sep 17 00:00:00 2001 From: twinaphex Date: Thu, 22 Nov 2012 18:02:46 +0100 Subject: [PATCH] (PS3/PSP2) Make libdbgfont portable --- console/griffin/griffin.c | 2 +- gfx/fonts/freetype.c | 12 ++++-- gfx/fonts/null_fonts.c | 4 +- gfx/fonts/ps3_libdbgfont.c | 54 --------------------------- gfx/fonts/ps_libdbgfont.c | 75 ++++++++++++++++++++++++++++++++++++++ gfx/gl_font.h | 4 +- 6 files changed, 88 insertions(+), 63 deletions(-) delete mode 100644 gfx/fonts/ps3_libdbgfont.c create mode 100644 gfx/fonts/ps_libdbgfont.c diff --git a/console/griffin/griffin.c b/console/griffin/griffin.c index cba1247414..104d6b12b4 100644 --- a/console/griffin/griffin.c +++ b/console/griffin/griffin.c @@ -187,7 +187,7 @@ FONTS #include "../../gfx/fonts/freetype.c" #include "../../gfx/fonts/fonts.c" #elif defined(HAVE_LIBDBGFONT) -#include "../../gfx/fonts/ps3_libdbgfont.c" +#include "../../gfx/fonts/ps_libdbgfont.c" #elif defined(_XBOX1) #include "../../gfx/fonts/xdk1_xfonts.c" #elif defined(_XBOX360) diff --git a/gfx/fonts/freetype.c b/gfx/fonts/freetype.c index 0d8146d426..bc8615981f 100644 --- a/gfx/fonts/freetype.c +++ b/gfx/fonts/freetype.c @@ -16,12 +16,14 @@ #include "../gl_common.h" -void gl_init_font(gl_t *gl, const char *font_path, unsigned font_size) +void gl_init_font(void *data, const char *font_path, unsigned font_size) { #ifdef HAVE_FREETYPE if (!g_settings.video.font_enable) return; + gl_t *gl = (gl_t*)data; + const char *path = font_path; if (!*path) path = font_renderer_get_default_font(); @@ -60,15 +62,17 @@ void gl_init_font(gl_t *gl, const char *font_path, unsigned font_size) gl->font_color_dark[4 * i + 3] = 1.0; } #else - (void)gl; + (void)data; (void)font_path; (void)font_size; #endif } -void gl_deinit_font(gl_t *gl) +void gl_deinit_font(void *data) { #ifdef HAVE_FREETYPE + gl_t *gl = (gl_t*)data; + if (gl->font) { font_renderer_free(gl->font); @@ -78,7 +82,7 @@ void gl_deinit_font(gl_t *gl) free(gl->font_tex_buf); } #else - (void)gl; + (void)data; #endif } diff --git a/gfx/fonts/null_fonts.c b/gfx/fonts/null_fonts.c index a7c804aaba..51d99a3078 100644 --- a/gfx/fonts/null_fonts.c +++ b/gfx/fonts/null_fonts.c @@ -16,13 +16,13 @@ #include "../gl_common.h" -void gl_init_font(gl_t *gl, const char *font_path, unsigned font_size) +void gl_init_font(void *data, const char *font_path, unsigned font_size) { (void)font_path; (void)font_size; } -void gl_deinit_font(gl_t *gl) +void gl_deinit_font(void *data) { } diff --git a/gfx/fonts/ps3_libdbgfont.c b/gfx/fonts/ps3_libdbgfont.c deleted file mode 100644 index 8029fcaf89..0000000000 --- a/gfx/fonts/ps3_libdbgfont.c +++ /dev/null @@ -1,54 +0,0 @@ -/* RetroArch - A frontend for libretro. - * Copyright (C) 2010-2012 - Hans-Kristian Arntzen - * Copyright (C) 2011-2012 - Daniel De Matteis - * - * RetroArch is free software: you can redistribute it and/or modify it under the terms - * of the GNU General Public License as published by the Free Software Found- - * ation, either version 3 of the License, or (at your option) any later version. - * - * RetroArch is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; - * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR - * PURPOSE. See the GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along with RetroArch. - * If not, see . - */ - -#include -#include "../gl_common.h" - -void gl_init_font(gl_t *gl, const char *font_path, unsigned font_size) -{ - (void)font_path; - (void)font_size; - - CellDbgFontConfig cfg = { - .bufSize = 512, - .screenWidth = gl->win_width, - .screenHeight = gl->win_height, - }; - - cellDbgFontInit(&cfg); -} - -void gl_deinit_font(gl_t *gl) -{ - cellDbgFontExit(); -} - -void gl_render_msg(void *data, const char *msg) -{ - (void)data; - - cellDbgFontPrintf(g_settings.video.msg_pos_x, 0.76f, 1.04f, SILVER, msg); - cellDbgFontPrintf(g_settings.video.msg_pos_x, 0.76f, 1.03f, WHITE, msg); - cellDbgFontDraw(); -} - -void gl_render_msg_place(void *data, float x, float y, float scale, uint32_t color, const char *msg) -{ - (void)data; - - cellDbgFontPrintf(x, y, scale, color, msg); - cellDbgFontDraw(); -} diff --git a/gfx/fonts/ps_libdbgfont.c b/gfx/fonts/ps_libdbgfont.c new file mode 100644 index 0000000000..062567aa9a --- /dev/null +++ b/gfx/fonts/ps_libdbgfont.c @@ -0,0 +1,75 @@ +/* RetroArch - A frontend for libretro. + * Copyright (C) 2010-2012 - Hans-Kristian Arntzen + * Copyright (C) 2011-2012 - Daniel De Matteis + * + * RetroArch is free software: you can redistribute it and/or modify it under the terms + * of the GNU General Public License as published by the Free Software Found- + * ation, either version 3 of the License, or (at your option) any later version. + * + * RetroArch is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; + * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + * PURPOSE. See the GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along with RetroArch. + * If not, see . + */ + +#include "../gl_common.h" + +#if defined(SN_TARGET_PSP2) +#include +#define DbgFontPrint(x, y, scale, color, msg) sceDbgFontPrint(x, y, color, msg) +#define DbgFontConfig SceDbgFontConfig +#define DbgFontInit sceDbgFontInit +#define DbgFontExit sceDbgFontExit +#define DbgFontDraw sceDbgFontFlush +#else +#include +#define SCE_DBGFONT_BUFSIZE_LARGE 512 +#define DbgFontPrint(x, y, scale, color, msg) cellDbgFontPrintf(x, y, scale, color, msg) +#define DbgFontConfig CellDbgFontConfig +#define DbgFontInit cellDbgFontInit +#define DbgFontExit cellDbgFontExit +#define DbgFontDraw cellDbgFontDraw +#endif + +void gl_init_font(void *data, const char *font_path, unsigned font_size) +{ + (void)font_path; + (void)font_size; + + DbgFontConfig cfg; +#if defined(SN_TARGET_PSP2) + cfg.fontSize = SCE_DBGFONT_FONTSIZE_LARGE; +#else + gl_t *gl = (gl_t*)data; + + cfg.bufSize = SCE_DBGFONT_BUFSIZE_LARGE; + cfg.screenWidth = gl->win_width; + cfg.screenHeight = gl->win_height; +#endif + + DbgFontInit(&cfg); +} + +void gl_deinit_font(void *data) +{ + DbgFontExit(); +} + +void gl_render_msg(void *data, const char *msg) +{ + (void)data; + + DbgFontPrint(g_settings.video.msg_pos_x, 0.76f, 1.04f, SILVER, msg); + DbgFontPrint(g_settings.video.msg_pos_x, 0.76f, 1.03f, WHITE, msg); + DbgFontDraw(); +} + +void gl_render_msg_place(void *data, float x, float y, float scale, uint32_t color, const char *msg) +{ + (void)data; + + DbgFontPrint(x, y, scale, color, msg); + DbgFontDraw(); +} diff --git a/gfx/gl_font.h b/gfx/gl_font.h index d83091072c..97441a1fff 100644 --- a/gfx/gl_font.h +++ b/gfx/gl_font.h @@ -18,8 +18,8 @@ #include "gl_common.h" -void gl_init_font(gl_t *gl, const char *font_path, unsigned font_size); -void gl_deinit_font(gl_t *gl); +void gl_init_font(void *data, const char *font_path, unsigned font_size); +void gl_deinit_font(void *data); void gl_render_msg(void *data, const char *msg); #ifdef RARCH_CONSOLE