mirror of
https://github.com/CTCaer/RetroArch.git
synced 2025-02-10 05:33:14 +00:00
(GLUI) Adapt to font size
This commit is contained in:
parent
ac3edc79e3
commit
4920af94f5
@ -38,12 +38,8 @@
|
||||
|
||||
#include "shared.h"
|
||||
|
||||
#define GLUI_FONT_HEIGHT_STRIDE 40
|
||||
#define GLUI_FONT_WIDTH_STRIDE 16
|
||||
#define GLUI_TERM_START_X (gl->win_width / 21)
|
||||
#define GLUI_TERM_START_Y (gl->win_height / 9)
|
||||
#define GLUI_TERM_WIDTH (((gl->win_width - GLUI_TERM_START_X - GLUI_TERM_START_X) / (GLUI_FONT_WIDTH_STRIDE)))
|
||||
#define GLUI_TERM_HEIGHT (((gl->win_height - GLUI_TERM_START_Y) / (GLUI_FONT_HEIGHT_STRIDE)) - 1)
|
||||
int line_height, glyph_width, glui_term_start_x, glui_term_start_y,
|
||||
glui_term_width, glui_term_height;
|
||||
|
||||
const gl_font_renderer_t *font_driver;
|
||||
|
||||
@ -115,19 +111,21 @@ static void glui_frame(void)
|
||||
size_t begin = 0;
|
||||
size_t end;
|
||||
|
||||
if (driver.menu->selection_ptr >= GLUI_TERM_HEIGHT / 2)
|
||||
begin = driver.menu->selection_ptr - GLUI_TERM_HEIGHT / 2;
|
||||
end = (driver.menu->selection_ptr + GLUI_TERM_HEIGHT <=
|
||||
if (driver.menu->selection_ptr >= glui_term_height / 2)
|
||||
begin = driver.menu->selection_ptr - glui_term_height / 2;
|
||||
end = (driver.menu->selection_ptr + glui_term_height <=
|
||||
file_list_get_size(driver.menu->selection_buf)) ?
|
||||
driver.menu->selection_ptr + GLUI_TERM_HEIGHT :
|
||||
driver.menu->selection_ptr + glui_term_height :
|
||||
file_list_get_size(driver.menu->selection_buf);
|
||||
|
||||
/* Do not scroll if all items are visible. */
|
||||
if (file_list_get_size(driver.menu->selection_buf) <= GLUI_TERM_HEIGHT)
|
||||
if (file_list_get_size(driver.menu->selection_buf) <= glui_term_height)
|
||||
begin = 0;
|
||||
|
||||
if (end - begin > GLUI_TERM_HEIGHT)
|
||||
end = begin + GLUI_TERM_HEIGHT;
|
||||
if (end - begin > glui_term_height)
|
||||
end = begin + glui_term_height;
|
||||
|
||||
end -= 1;
|
||||
|
||||
glui_render_background();
|
||||
|
||||
@ -150,9 +148,10 @@ static void glui_frame(void)
|
||||
title, sizeof(title));
|
||||
|
||||
char title_buf[256];
|
||||
menu_ticker_line(title_buf, GLUI_TERM_WIDTH - 3,
|
||||
g_extern.frame_count / GLUI_TERM_START_X, title, true);
|
||||
blit_line(GLUI_TERM_START_X + GLUI_TERM_START_X, GLUI_TERM_START_X, title_buf, true);
|
||||
menu_ticker_line(title_buf, glui_term_width - 3,
|
||||
g_extern.frame_count / glui_term_start_x, title, true);
|
||||
blit_line(glui_term_start_x + glui_term_start_x, glui_term_start_y,
|
||||
title_buf, true);
|
||||
|
||||
char title_msg[64];
|
||||
const char *core_name = g_extern.menu.info.library_name;
|
||||
@ -170,17 +169,17 @@ static void glui_frame(void)
|
||||
snprintf(title_msg, sizeof(title_msg), "%s - %s %s", PACKAGE_VERSION,
|
||||
core_name, core_version);
|
||||
blit_line(
|
||||
GLUI_TERM_START_X + GLUI_TERM_START_X,
|
||||
(GLUI_TERM_HEIGHT * GLUI_FONT_HEIGHT_STRIDE) +
|
||||
GLUI_TERM_START_Y + 2, title_msg, true);
|
||||
glui_term_start_x + glui_term_start_x,
|
||||
(glui_term_height * line_height) +
|
||||
glui_term_start_y + 2, title_msg, true);
|
||||
|
||||
unsigned x, y;
|
||||
size_t i;
|
||||
|
||||
x = GLUI_TERM_START_X;
|
||||
y = GLUI_TERM_START_Y;
|
||||
x = glui_term_start_x;
|
||||
y = glui_term_start_y + line_height;
|
||||
|
||||
for (i = begin; i < end; i++, y += GLUI_FONT_HEIGHT_STRIDE)
|
||||
for (i = begin; i < end; i++, y += line_height)
|
||||
{
|
||||
char message[PATH_MAX], type_str[PATH_MAX],
|
||||
entry_title_buf[PATH_MAX], type_str_buf[PATH_MAX],
|
||||
@ -203,10 +202,10 @@ static void glui_frame(void)
|
||||
|
||||
selected = (i == driver.menu->selection_ptr);
|
||||
|
||||
menu_ticker_line(entry_title_buf, GLUI_TERM_WIDTH - (w + 1 + 2),
|
||||
g_extern.frame_count / GLUI_TERM_START_X, path_buf, selected);
|
||||
menu_ticker_line(type_str_buf, w, g_extern.frame_count / GLUI_TERM_START_X,
|
||||
type_str, selected);
|
||||
menu_ticker_line(entry_title_buf, glui_term_width - (w + 1 + 2),
|
||||
g_extern.frame_count / glui_term_start_x, path_buf, selected);
|
||||
menu_ticker_line(type_str_buf, w,
|
||||
g_extern.frame_count / glui_term_start_x, type_str, selected);
|
||||
|
||||
snprintf(message, sizeof(message), "%c %s",
|
||||
' ',
|
||||
@ -214,8 +213,8 @@ static void glui_frame(void)
|
||||
|
||||
blit_line(x, y, message, selected);
|
||||
|
||||
blit_line(gl->win_width - GLUI_FONT_WIDTH_STRIDE * w
|
||||
- GLUI_TERM_START_X , y, type_str_buf, selected);
|
||||
blit_line(gl->win_width - glyph_width * w
|
||||
- glui_term_start_x , y, type_str_buf, selected);
|
||||
}
|
||||
|
||||
#ifdef GEKKO
|
||||
@ -317,6 +316,15 @@ static void glui_context_reset(void *data)
|
||||
if (!menu)
|
||||
return;
|
||||
|
||||
line_height = g_settings.video.font_size * 4 / 3;
|
||||
glyph_width = line_height / 2;
|
||||
glui_term_start_x = gl->win_width / 21;
|
||||
glui_term_start_y = gl->win_height / 9;
|
||||
glui_term_width = (gl->win_width - glui_term_start_x - glui_term_start_x)
|
||||
/ glyph_width;
|
||||
glui_term_height = ((gl->win_height - glui_term_start_y)
|
||||
/ (line_height)) - 1;
|
||||
|
||||
gl_font_init_first(&font_driver, (void*)&menu->font, gl, g_settings.video.font_path,
|
||||
g_settings.video.font_size);
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user