From 38c66f62d0d7b59bac8296daece6392169079c13 Mon Sep 17 00:00:00 2001 From: twinaphex Date: Sun, 18 Oct 2015 07:15:54 +0200 Subject: [PATCH] Merge menu_video.c and menu_display.c --- Makefile.common | 1 - griffin/griffin.c | 1 - menu/drivers/glui.c | 1 - menu/drivers/rgui.c | 1 - menu/drivers/rmenu.c | 2 +- menu/drivers/rmenu_xui.cpp | 2 +- menu/drivers/xmb.c | 2 +- menu/drivers/zarch.c | 1 - menu/menu_display.c | 89 +++++++++++++++++++++++++++++++ menu/menu_display.h | 29 ++++++++++ menu/menu_driver.c | 2 +- menu/menu_video.c | 106 ------------------------------------- menu/menu_video.h | 59 --------------------- 13 files changed, 122 insertions(+), 174 deletions(-) delete mode 100644 menu/menu_video.c delete mode 100644 menu/menu_video.h diff --git a/Makefile.common b/Makefile.common index 2e0d14b455..533521869d 100644 --- a/Makefile.common +++ b/Makefile.common @@ -415,7 +415,6 @@ ifeq ($(HAVE_MENU_COMMON), 1) menu/menu_navigation.o \ menu/menu_setting.o \ menu/menu_shader.o \ - menu/menu_video.o \ menu/menu_cbs.o \ menu/cbs/menu_cbs_ok.o \ menu/cbs/menu_cbs_cancel.o \ diff --git a/griffin/griffin.c b/griffin/griffin.c index efa39ad0a2..e47c639018 100644 --- a/griffin/griffin.c +++ b/griffin/griffin.c @@ -767,7 +767,6 @@ MENU #include "../menu/menu_entries.c" #include "../menu/menu_setting.c" #include "../menu/menu_cbs.c" -#include "../menu/menu_video.c" #include "../menu/cbs/menu_cbs_ok.c" #include "../menu/cbs/menu_cbs_cancel.c" #include "../menu/cbs/menu_cbs_select.c" diff --git a/menu/drivers/glui.c b/menu/drivers/glui.c index c8b6e215c9..900b53a0c7 100644 --- a/menu/drivers/glui.c +++ b/menu/drivers/glui.c @@ -32,7 +32,6 @@ #include "../menu_animation.h" #include "../menu_hash.h" #include "../menu_display.h" -#include "../menu_video.h" #include "../../gfx/video_texture.h" diff --git a/menu/drivers/rgui.c b/menu/drivers/rgui.c index 9f6ba90e1c..36194cec14 100644 --- a/menu/drivers/rgui.c +++ b/menu/drivers/rgui.c @@ -34,7 +34,6 @@ #include "../menu_animation.h" #include "../menu_display.h" #include "../menu_hash.h" -#include "../menu_video.h" #include "../../gfx/drivers_font_renderer/bitmap.h" diff --git a/menu/drivers/rmenu.c b/menu/drivers/rmenu.c index 20bbbd2566..e8b145f7a9 100644 --- a/menu/drivers/rmenu.c +++ b/menu/drivers/rmenu.c @@ -31,7 +31,7 @@ #include "../menu_entry.h" #include "../menu_input.h" #include "../menu_setting.h" -#include "../menu_video.h" +#include "../menu_display.h" #include "../../general.h" #include "../../config.def.h" #include "../../performance.h" diff --git a/menu/drivers/rmenu_xui.cpp b/menu/drivers/rmenu_xui.cpp index d0140d0180..4903fc8ebf 100644 --- a/menu/drivers/rmenu_xui.cpp +++ b/menu/drivers/rmenu_xui.cpp @@ -35,7 +35,7 @@ #include "../menu_entries.h" #include "../menu_input.h" #include "../menu_setting.h" -#include "../menu_video.h" +#include "../menu_display.h" #include "../../gfx/video_context_driver.h" diff --git a/menu/drivers/xmb.c b/menu/drivers/xmb.c index a36165d4ea..99eec45d48 100644 --- a/menu/drivers/xmb.c +++ b/menu/drivers/xmb.c @@ -33,7 +33,7 @@ #include "../menu_animation.h" #include "../menu_display.h" #include "../menu_hash.h" -#include "../menu_video.h" +#include "../menu_display.h" #include "../menu_cbs.h" diff --git a/menu/drivers/zarch.c b/menu/drivers/zarch.c index 875e0812b1..fc91e73d47 100644 --- a/menu/drivers/zarch.c +++ b/menu/drivers/zarch.c @@ -40,7 +40,6 @@ #include "../../gfx/video_thread_wrapper.h" #include "../../gfx/font_driver.h" #include "../../gfx/video_texture.h" -#include "../menu_video.h" const GLfloat ZUI_NORMAL[] = { 1, 1, 1, 1, diff --git a/menu/menu_display.c b/menu/menu_display.c index 1d98d98799..0ca4e1ccdd 100644 --- a/menu/menu_display.c +++ b/menu/menu_display.c @@ -16,6 +16,7 @@ #include #include +#include #include "../config.def.h" #include "../gfx/font_renderer_driver.h" @@ -26,6 +27,10 @@ #include "menu_animation.h" #include "menu_display.h" +#ifdef HAVE_THREADS +#include "../gfx/video_thread_wrapper.h" +#endif + typedef struct menu_framebuf { uint16_t *data; @@ -476,3 +481,87 @@ void menu_display_msg_queue_push(const char *msg, unsigned prio, unsigned durati { rarch_main_msg_queue_push(msg, prio, duration, flush); } + +#ifdef HAVE_OPENGL +void menu_video_draw_frame( + unsigned x, unsigned y, + unsigned width, unsigned height, + const void *shader_data, + struct gfx_coords *coords, + math_matrix_4x4 *mat, + bool blend, + GLuint texture + ) +{ + const shader_backend_t *shader = (const shader_backend_t*)shader_data; + driver_t *driver = driver_get_ptr(); + + glViewport(x, y, width, height); + glBindTexture(GL_TEXTURE_2D, texture); + + shader->set_coords(coords); + shader->set_mvp(driver->video_data, mat); + + if (blend) + glEnable(GL_BLEND); + + glDrawArrays(GL_TRIANGLE_STRIP, 0, 4); + + if (blend) + glDisable(GL_BLEND); +} + +void menu_video_frame_background( + menu_handle_t *menu, + settings_t *settings, + gl_t *gl, + unsigned width, + unsigned height, + GLuint texture, + float handle_alpha, + bool force_transparency, + GRfloat *coord_color, + GRfloat *coord_color2, + const GRfloat *vertex, + const GRfloat *tex_coord) +{ + struct gfx_coords coords; + + global_t *global = global_get_ptr(); + + coords.vertices = 4; + coords.vertex = vertex; + coords.tex_coord = tex_coord; + coords.lut_tex_coord = tex_coord; + coords.color = (const float*)coord_color; + + if (gl->shader && gl->shader->use) + gl->shader->use(gl, GL_SHADER_STOCK_BLEND); + + menu_display_ctl(MENU_DISPLAY_CTL_SET_VIEWPORT, NULL); + + if ((settings->menu.pause_libretro + || !global->inited.main || (global->inited.core.type == CORE_TYPE_DUMMY)) + && !force_transparency + && texture) + coords.color = (const float*)coord_color2; + + menu_video_draw_frame(0, 0, width, height, + gl->shader, &coords, + &gl->mvp_no_rot, true, texture); + + gl->coords.color = gl->white_color_ptr; +} +#endif + +const char *menu_video_get_ident(void) +{ +#ifdef HAVE_THREADS + settings_t *settings = config_get_ptr(); + + if (settings->video.threaded) + return rarch_threaded_video_get_ident(); +#endif + + return video_driver_get_ident(); +} diff --git a/menu/menu_display.h b/menu/menu_display.h index 738157b3a4..c72b2463a7 100644 --- a/menu/menu_display.h +++ b/menu/menu_display.h @@ -80,6 +80,35 @@ void menu_display_timedate(char *s, size_t len, unsigned time_mode); void menu_display_msg_queue_push(const char *msg, unsigned prio, unsigned duration, bool flush); +#ifdef HAVE_OPENGL +#include "../gfx/drivers/gl_common.h" + +void menu_video_draw_frame( + unsigned x, unsigned y, + unsigned width, unsigned height, + const void *shader, + struct gfx_coords *coords, + math_matrix_4x4 *mat, + bool blend, + GLuint texture + ); + +void menu_video_frame_background( + menu_handle_t *menu, + settings_t *settings, + gl_t *gl, + unsigned width, unsigned height, + GLuint texture, + float handle_alpha, + bool force_transparency, + GRfloat *color, + GRfloat *color2, + const GRfloat *vertex, + const GRfloat *tex_coord); +#endif + +const char *menu_video_get_ident(void); + #ifdef __cplusplus } #endif diff --git a/menu/menu_driver.c b/menu/menu_driver.c index 3367981d07..c2ce63603e 100644 --- a/menu/menu_driver.c +++ b/menu/menu_driver.c @@ -18,7 +18,7 @@ #include #include "menu.h" -#include "menu_video.h" +#include "menu_display.h" #include "../general.h" static bool menu_alive = false; diff --git a/menu/menu_video.c b/menu/menu_video.c deleted file mode 100644 index 7f25c5b872..0000000000 --- a/menu/menu_video.c +++ /dev/null @@ -1,106 +0,0 @@ -/* RetroArch - A frontend for libretro. - * Copyright (C) 2011-2015 - 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 "menu_display.h" -#include "menu_video.h" - -#ifdef HAVE_THREADS -#include "../gfx/video_thread_wrapper.h" -#endif - -#ifdef HAVE_OPENGL -void menu_video_draw_frame( - unsigned x, unsigned y, - unsigned width, unsigned height, - const shader_backend_t *shader, - struct gfx_coords *coords, - math_matrix_4x4 *mat, - bool blend, - GLuint texture - ) -{ - driver_t *driver = driver_get_ptr(); - - glViewport(x, y, width, height); - glBindTexture(GL_TEXTURE_2D, texture); - - shader->set_coords(coords); - shader->set_mvp(driver->video_data, mat); - - if (blend) - glEnable(GL_BLEND); - - glDrawArrays(GL_TRIANGLE_STRIP, 0, 4); - - if (blend) - glDisable(GL_BLEND); -} - -void menu_video_frame_background( - menu_handle_t *menu, - settings_t *settings, - gl_t *gl, - unsigned width, - unsigned height, - GLuint texture, - float handle_alpha, - bool force_transparency, - GRfloat *coord_color, - GRfloat *coord_color2, - const GRfloat *vertex, - const GRfloat *tex_coord) -{ - struct gfx_coords coords; - - global_t *global = global_get_ptr(); - - coords.vertices = 4; - coords.vertex = vertex; - coords.tex_coord = tex_coord; - coords.lut_tex_coord = tex_coord; - coords.color = (const float*)coord_color; - - if (gl->shader && gl->shader->use) - gl->shader->use(gl, GL_SHADER_STOCK_BLEND); - - menu_display_ctl(MENU_DISPLAY_CTL_SET_VIEWPORT, NULL); - - if ((settings->menu.pause_libretro - || !global->inited.main || (global->inited.core.type == CORE_TYPE_DUMMY)) - && !force_transparency - && texture) - coords.color = (const float*)coord_color2; - - menu_video_draw_frame(0, 0, width, height, - gl->shader, &coords, - &gl->mvp_no_rot, true, texture); - - gl->coords.color = gl->white_color_ptr; -} -#endif - -const char *menu_video_get_ident(void) -{ -#ifdef HAVE_THREADS - settings_t *settings = config_get_ptr(); - - if (settings->video.threaded) - return rarch_threaded_video_get_ident(); -#endif - - return video_driver_get_ident(); -} diff --git a/menu/menu_video.h b/menu/menu_video.h deleted file mode 100644 index 84e9bd4904..0000000000 --- a/menu/menu_video.h +++ /dev/null @@ -1,59 +0,0 @@ -/* RetroArch - A frontend for libretro. - * Copyright (C) 2010-2014 - Hans-Kristian Arntzen - * Copyright (C) 2011-2015 - 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 . - */ - -#ifndef _MENU_VIDEO_H -#define _MENU_VIDEO_H - -#include "menu_shader.h" - -#ifdef __cplusplus -extern "C" { -#endif - -#ifdef HAVE_OPENGL -#include "../gfx/drivers/gl_common.h" - -void menu_video_draw_frame( - unsigned x, unsigned y, - unsigned width, unsigned height, - const shader_backend_t *shader, - struct gfx_coords *coords, - math_matrix_4x4 *mat, - bool blend, - GLuint texture - ); - -void menu_video_frame_background( - menu_handle_t *menu, - settings_t *settings, - gl_t *gl, - unsigned width, unsigned height, - GLuint texture, - float handle_alpha, - bool force_transparency, - GRfloat *color, - GRfloat *color2, - const GRfloat *vertex, - const GRfloat *tex_coord); -#endif - -const char *menu_video_get_ident(void); - -#ifdef __cplusplus -} -#endif - -#endif