Create menu_display_get_fb_size

This commit is contained in:
twinaphex 2017-01-25 18:32:16 +01:00
parent 374fd57270
commit 0a7538f1b8
6 changed files with 52 additions and 46 deletions

View File

@ -546,27 +546,27 @@ static void setup_video_mode(gx_video_t *gx)
static void init_texture(void *data, unsigned width, unsigned height)
{
unsigned g_filter, menu_w, menu_h;
unsigned g_filter;
size_t fb_pitch;
unsigned fb_width, fb_height;
gx_video_t *gx = (gx_video_t*)data;
GXTexObj *fb_ptr = (GXTexObj*)&g_tex.obj;
GXTexObj *menu_ptr = (GXTexObj*)&menu_tex.obj;
settings_t *settings = config_get_ptr();
width &= ~3;
height &= ~3;
g_filter = settings->video.smooth ? GX_LINEAR : GX_NEAR;
menu_w = 320;
menu_h = 240;
width &= ~3;
height &= ~3;
g_filter = settings->video.smooth ? GX_LINEAR : GX_NEAR;
menu_w = menu_display_get_width();
menu_h = menu_display_get_height();
menu_display_get_fb_size(&fb_width, &fb_height,
&fb_pitch);
GX_InitTexObj(fb_ptr, g_tex.data, width, height,
(gx->rgb32) ? GX_TF_RGBA8 : gx->menu_texture_enable ?
GX_TF_RGB5A3 : GX_TF_RGB565,
GX_CLAMP, GX_CLAMP, GX_FALSE);
GX_InitTexObjFilterMode(fb_ptr, g_filter, g_filter);
GX_InitTexObj(menu_ptr, menu_tex.data, menu_w, menu_h,
GX_InitTexObj(menu_ptr, menu_tex.data, fb_width, fb_height,
GX_TF_RGB5A3, GX_CLAMP, GX_CLAMP, GX_FALSE);
GX_InitTexObjFilterMode(menu_ptr, g_filter, g_filter);
GX_InvalidateTexAll();
@ -1503,9 +1503,11 @@ static bool gx_frame(void *data, const void *frame,
if (gx->menu_texture_enable && gx->menu_data)
{
unsigned fb_width = menu_display_get_width();
unsigned fb_height = menu_display_get_height();
size_t fb_pitch = menu_display_get_framebuffer_pitch();
size_t fb_pitch;
unsigned fb_width, fb_height;
menu_display_get_fb_size(&fb_width, &fb_height,
&fb_pitch);
convert_texture16(
gx->menu_data,

View File

@ -253,14 +253,14 @@ static bool rguidisp_init_font(menu_handle_t *menu)
static void rgui_render_background(void)
{
size_t pitch_in_pixels, size, fb_pitch;
size_t pitch_in_pixels, size;
size_t fb_pitch;
unsigned fb_width, fb_height;
uint16_t *src = NULL;
uint16_t *dst = NULL;
fb_width = menu_display_get_width();
fb_height = menu_display_get_height();
fb_pitch = menu_display_get_framebuffer_pitch();
menu_display_get_fb_size(&fb_width, &fb_height,
&fb_pitch);
pitch_in_pixels = fb_pitch >> 1;
size = fb_pitch * 4;
@ -316,9 +316,8 @@ static void rgui_render_messagebox(const char *message)
width = 0;
glyphs_width = 0;
fb_width = menu_display_get_width();
fb_height = menu_display_get_height();
fb_pitch = menu_display_get_framebuffer_pitch();
menu_display_get_fb_size(&fb_width, &fb_height,
&fb_pitch);
for (i = 0; i < list->size; i++)
{
@ -371,12 +370,13 @@ end:
static void rgui_blit_cursor(void)
{
size_t fb_pitch;
unsigned fb_width, fb_height;
int16_t x = menu_input_mouse_state(MENU_MOUSE_X_AXIS);
int16_t y = menu_input_mouse_state(MENU_MOUSE_Y_AXIS);
unsigned fb_width = menu_display_get_width();
unsigned fb_height = menu_display_get_height();
size_t fb_pitch = menu_display_get_framebuffer_pitch();
menu_display_get_fb_size(&fb_width, &fb_height,
&fb_pitch);
rgui_color_rect(fb_pitch, fb_width, fb_height, x, y - 5, 1, 11, 0xFFFF);
rgui_color_rect(fb_pitch, fb_width, fb_height, x - 5, y, 11, 1, 0xFFFF);
@ -425,9 +425,8 @@ static void rgui_render(void *data)
return;
}
fb_width = menu_display_get_width();
fb_height = menu_display_get_height();
fb_pitch = menu_display_get_framebuffer_pitch();
menu_display_get_fb_size(&fb_width, &fb_height,
&fb_pitch);
/* if the framebuffer changed size, recache the background */
if (rgui->last_width != fb_width || rgui->last_height != fb_height)
@ -734,13 +733,14 @@ static void rgui_free(void *data)
static void rgui_set_texture(void)
{
size_t fb_pitch;
unsigned fb_width, fb_height;
if (!menu_display_get_framebuffer_dirty_flag())
return;
fb_width = menu_display_get_width();
fb_height = menu_display_get_height();
menu_display_get_fb_size(&fb_width, &fb_height,
&fb_pitch);
menu_display_unset_framebuffer_dirty_flag();
@ -762,7 +762,7 @@ static void rgui_navigation_clear(void *data, bool pending_push)
static void rgui_navigation_set(void *data, bool scroll)
{
size_t selection, start;
size_t selection, start, fb_pitch;
unsigned fb_width, fb_height;
bool do_set_start = false;
size_t end = menu_entries_get_end();
@ -771,8 +771,8 @@ static void rgui_navigation_set(void *data, bool scroll)
if (!scroll)
return;
fb_width = menu_display_get_width();
fb_height = menu_display_get_height();
menu_display_get_fb_size(&fb_width, &fb_height,
&fb_pitch);
if (selection < RGUI_TERM_HEIGHT(fb_width, fb_height) /2)
{

View File

@ -528,15 +528,18 @@ static void xui_set_list_text(int index, const wchar_t* leftText,
static void xui_render(void *data)
{
size_t end, i, selection;
size_t end, i, selection, fb_pitch;
unsigned fb_width, fb_height;
char title[PATH_MAX_LENGTH] = {0};
const char *dir = NULL;
const char *label = NULL;
unsigned menu_type = 0;
uint64_t *frame_count = video_driver_get_frame_count_ptr();
unsigned fb_width = menu_display_get_width();
bool msg_force = menu_display_get_msg_force();
menu_display_get_fb_size(&fb_width, &fb_height,
&fb_pitch);
if (
menu_entries_ctl(MENU_ENTRIES_CTL_NEEDS_REFRESH, NULL)
&& menu_driver_is_alive()

View File

@ -336,26 +336,24 @@ bool menu_display_libretro(void)
return video_driver_cached_frame();
}
void menu_display_get_fb_size(unsigned *fb_width,
unsigned *fb_height, size_t *fb_pitch)
{
*fb_width = menu_display_framebuf_width;
*fb_height = menu_display_framebuf_height;
*fb_pitch = menu_display_framebuf_pitch;
}
void menu_display_set_width(unsigned width)
{
menu_display_framebuf_width = width;
}
unsigned menu_display_get_width(void)
{
return menu_display_framebuf_width;
}
void menu_display_set_height(unsigned height)
{
menu_display_framebuf_height = height;
}
unsigned menu_display_get_height(void)
{
return menu_display_framebuf_height;
}
void menu_display_set_header_height(unsigned height)
{
menu_display_header_height = height;

View File

@ -216,9 +216,9 @@ bool menu_display_libretro_running(void);
bool menu_display_libretro(void);
void menu_display_set_width(unsigned width);
unsigned menu_display_get_width(void);
void menu_display_get_fb_size(unsigned *fb_width, unsigned *fb_height,
size_t *fb_pitch);
void menu_display_set_height(unsigned height);
unsigned menu_display_get_height(void);
void menu_display_set_header_height(unsigned height);
unsigned menu_display_get_header_height(void);
size_t menu_display_get_framebuffer_pitch(void);

View File

@ -47,14 +47,17 @@ static int menu_event_pointer(unsigned *action)
{
rarch_joypad_info_t joypad_info;
int pointer_x, pointer_y;
size_t fb_pitch;
unsigned fb_width, fb_height;
const struct retro_keybind *binds[MAX_USERS] = {NULL};
menu_input_t *menu_input = menu_input_get_ptr();
unsigned fb_width = menu_display_get_width();
unsigned fb_height = menu_display_get_height();
int pointer_device =
menu_driver_ctl(RARCH_MENU_CTL_IS_SET_TEXTURE, NULL) ?
RETRO_DEVICE_POINTER : RARCH_DEVICE_POINTER_SCREEN;
menu_display_get_fb_size(&fb_width, &fb_height,
&fb_pitch);
joypad_info.joy_idx = 0;
joypad_info.auto_binds = NULL;
joypad_info.axis_threshold = 0.0f;