Pass window width/height to gl_init_font_first.

This commit is contained in:
Themaister 2013-11-01 17:01:27 +01:00
parent 727dc76db8
commit dab40b16c0
5 changed files with 25 additions and 27 deletions

View File

@ -25,12 +25,13 @@ static const gl_font_renderer_t *gl_font_backends[] = {
#endif #endif
}; };
const gl_font_renderer_t *gl_font_init_first(void *data, const char *font_path, float font_size) const gl_font_renderer_t *gl_font_init_first(void *data, const char *font_path, float font_size,
unsigned win_width, unsigned win_height)
{ {
size_t i; size_t i;
for (i = 0; i < ARRAY_SIZE(gl_font_backends); i++) for (i = 0; i < ARRAY_SIZE(gl_font_backends); i++)
{ {
if (gl_font_backends[i]->init(data, font_path, font_size)) if (gl_font_backends[i]->init(data, font_path, font_size, win_width, win_height))
return gl_font_backends[i]; return gl_font_backends[i];
} }

View File

@ -21,7 +21,8 @@
typedef struct gl_font_renderer typedef struct gl_font_renderer
{ {
bool (*init)(void *data, const char *font_path, float font_size); bool (*init)(void *data, const char *font_path, float font_size,
unsigned win_width, unsigned win_height);
void (*deinit)(void *data); void (*deinit)(void *data);
void (*render_msg)(void *data, const char *msg, void *parms); void (*render_msg)(void *data, const char *msg, void *parms);
const char *ident; const char *ident;
@ -31,7 +32,7 @@ extern const gl_font_renderer_t gl_raster_font;
extern const gl_font_renderer_t libdbg_font; extern const gl_font_renderer_t libdbg_font;
const gl_font_renderer_t *gl_font_init_first(void *data, const gl_font_renderer_t *gl_font_init_first(void *data,
const char *font_path, float font_size); const char *font_path, float font_size, unsigned win_width, unsigned win_height);
#endif #endif

View File

@ -18,9 +18,12 @@
#include "../gl_common.h" #include "../gl_common.h"
#include "../shader_common.h" #include "../shader_common.h"
static bool gl_init_font(void *data, const char *font_path, float font_size) static bool gl_init_font(void *data, const char *font_path, float font_size, unsigned win_width, unsigned win_height)
{ {
size_t i, j; size_t i, j;
(void)win_width;
(void)win_height;
if (!g_settings.video.font_enable) if (!g_settings.video.font_enable)
return false; return false;

View File

@ -32,7 +32,8 @@
#define DbgFontExit cellDbgFontExit #define DbgFontExit cellDbgFontExit
#endif #endif
static bool gl_init_font(void *data, const char *font_path, float font_size) static bool gl_init_font(void *data, const char *font_path, float font_size,
unsigned win_width, unsigned win_height)
{ {
(void)font_path; (void)font_path;
(void)font_size; (void)font_size;
@ -45,12 +46,9 @@ static bool gl_init_font(void *data, const char *font_path, float font_size)
#if defined(SN_TARGET_PSP2) #if defined(SN_TARGET_PSP2)
cfg.fontSize = SCE_DBGFONT_FONTSIZE_LARGE; cfg.fontSize = SCE_DBGFONT_FONTSIZE_LARGE;
#elif defined(__CELLOS_LV2__) #elif defined(__CELLOS_LV2__)
// FIXME - We need to do init_font_first in gl_start because of this
gl_t *gl = (gl_t*)driver.video_data;
cfg.bufSize = SCE_DBGFONT_BUFSIZE_LARGE; cfg.bufSize = SCE_DBGFONT_BUFSIZE_LARGE;
cfg.screenWidth = gl->win_width; cfg.screenWidth = win_width;
cfg.screenHeight = gl->win_height; cfg.screenHeight = win_height;
#endif #endif
DbgFontInit(&cfg); DbgFontInit(&cfg);

View File

@ -1700,6 +1700,13 @@ static bool resolve_extensions(gl_t *gl)
RARCH_WARN("[GL]: GLES implementation does not have BGRA8888 extension.\n" RARCH_WARN("[GL]: GLES implementation does not have BGRA8888 extension.\n"
"32-bit path will require conversion.\n"); "32-bit path will require conversion.\n");
} }
gl->support_unpack_row_length = false;
if (gl_query_extension(gl, "GL_EXT_unpack_subimage"))
{
RARCH_LOG("[GL]: Extension GL_EXT_unpack_subimage, can copy textures faster using UNPACK_ROW_LENGTH.\n");
gl->support_unpack_row_length = true;
}
#endif #endif
#ifdef GL_DEBUG #ifdef GL_DEBUG
@ -2151,25 +2158,16 @@ static void *gl_init(const video_info_t *video, const input_driver_t **input, vo
if (input && input_data) if (input && input_data)
context_input_driver_func(input, input_data); context_input_driver_func(input, input_data);
#if !defined(RARCH_CONSOLE)
// Comes too early for console - moved to gl_start
if (g_settings.video.font_enable) if (g_settings.video.font_enable)
gl->font_ctx = gl_font_init_first(gl, g_settings.video.font_path, g_settings.video.font_size); {
#endif gl->font_ctx = gl_font_init_first(gl, g_settings.video.font_path, g_settings.video.font_size,
gl->win_width, gl->win_height);
}
#if !defined(HAVE_OPENGLES) && defined(HAVE_FFMPEG) #if !defined(HAVE_OPENGLES) && defined(HAVE_FFMPEG)
gl_init_pbo_readback(gl); gl_init_pbo_readback(gl);
#endif #endif
#if defined(HAVE_OPENGLES)
gl->support_unpack_row_length = false;
if (gl_query_extension(gl, "GL_EXT_unpack_subimage"))
{
RARCH_LOG("[GL]: Extension GL_EXT_unpack_subimage, can copy textures faster using UNPACK_ROW_LENGTH.\n");
gl->support_unpack_row_length = true;
}
#endif
if (!gl_check_error()) if (!gl_check_error())
{ {
context_destroy_func(); context_destroy_func();
@ -2429,9 +2427,6 @@ static void gl_start(void)
gl_t *gl = (gl_t*)driver.video_data; gl_t *gl = (gl_t*)driver.video_data;
gl_get_poke_interface(gl, &driver.video_poke); gl_get_poke_interface(gl, &driver.video_poke);
// Comes too early for console - moved to gl_start
gl->font_ctx = gl_font_init_first(gl, g_settings.video.font_path, g_settings.video.font_size);
} }
static void gl_restart(void) static void gl_restart(void)