Get rid of video_poke_interface set_mvp

This commit is contained in:
twinaphex 2019-03-18 15:19:11 +01:00
parent 399cfe67f4
commit f67bfa24ef
37 changed files with 20 additions and 121 deletions

View File

@ -515,6 +515,8 @@ static INLINE INT32 d3d8_get_xrgb8888_format(void)
#endif
}
void d3d8_set_mvp(void *data, const void *userdata);
RETRO_END_DECLS
#endif

View File

@ -812,6 +812,8 @@ static INLINE void d3d9_convert_geometry(
}
}
void d3d9_set_mvp(void *data, const void *userdata);
RETRO_END_DECLS
#endif

View File

@ -306,8 +306,6 @@ static void caca_set_osd_msg(void *data,
static const video_poke_interface_t caca_poke_interface = {
NULL, /* get_flags */
NULL, /* set_mvp */
NULL,
NULL,
NULL,
NULL,

View File

@ -1144,7 +1144,6 @@ static void ctr_set_osd_msg(void *data,
static const video_poke_interface_t ctr_poke_interface = {
NULL, /* get_flags */
NULL, /* set_mvp */
ctr_load_texture,
ctr_unload_texture,
NULL,

View File

@ -1684,7 +1684,6 @@ static uint32_t d3d10_get_flags(void *data)
static const video_poke_interface_t d3d10_poke_interface = {
d3d10_get_flags,
NULL, /* set_mvp */
d3d10_gfx_load_texture,
d3d10_gfx_unload_texture,
NULL, /* set_video_mode */

View File

@ -1751,7 +1751,6 @@ static uint32_t d3d11_get_flags(void *data)
static const video_poke_interface_t d3d11_poke_interface = {
d3d11_get_flags,
NULL, /* set_mvp */
d3d11_gfx_load_texture,
d3d11_gfx_unload_texture,
NULL, /* set_video_mode */

View File

@ -1797,7 +1797,6 @@ static uint32_t d3d12_get_flags(void *data)
static const video_poke_interface_t d3d12_poke_interface = {
d3d12_get_flags,
NULL, /* set_mvp */
d3d12_gfx_load_texture,
d3d12_gfx_unload_texture,
NULL, /* set_video_mode */

View File

@ -86,23 +86,20 @@ typedef struct d3d8_renderchain
uint64_t frame_count;
} d3d8_renderchain_t;
static void d3d8_renderchain_set_mvp(
d3d8_video_t *d3d,
void *chain_data,
void *shader_data,
const void *mat_data)
void d3d8_set_mvp(void *data, const void *mat_data)
{
struct d3d_matrix matrix;
LPDIRECT3DDEVICE8 d3dr = (LPDIRECT3DDEVICE8)data;
d3d_matrix_identity(&matrix);
d3d8_set_transform(d3d->dev, D3DTS_PROJECTION, (D3DMATRIX*)&matrix);
d3d8_set_transform(d3d->dev, D3DTS_VIEW, (D3DMATRIX*)&matrix);
d3d8_set_transform(d3dr, D3DTS_PROJECTION, (D3DMATRIX*)&matrix);
d3d8_set_transform(d3dr, D3DTS_VIEW, (D3DMATRIX*)&matrix);
if (mat_data)
d3d_matrix_transpose(&matrix, mat_data);
d3d8_set_transform(d3d->dev, D3DTS_WORLD, (D3DMATRIX*)&matrix);
d3d8_set_transform(d3dr, D3DTS_WORLD, (D3DMATRIX*)&matrix);
}
static bool d3d8_renderchain_create_first_pass(
@ -288,7 +285,7 @@ static void d3d8_renderchain_render_pass(
D3DFVF_XYZ | D3DFVF_TEX1 | D3DFVF_DIFFUSE,
NULL);
d3d8_set_stream_source(d3dr, 0, chain->vertex_buf, 0, sizeof(Vertex));
d3d8_renderchain_set_mvp(d3d, chain, NULL, &d3d->mvp_rotate);
d3d8_set_mvp(d3d->dev, &d3d->mvp_rotate);
d3d8_draw_primitive(d3dr, D3DPT_TRIANGLESTRIP, 0, 2);
}
@ -427,15 +424,6 @@ static void d3d8_viewport_info(void *data, struct video_viewport *vp)
d3d8_renderchain_viewport_info(d3d, vp);
}
static void d3d8_set_mvp(void *data,
void *shader_data,
const void *mat_data)
{
d3d8_video_t *d3d = (d3d8_video_t*)data;
if (d3d)
d3d8_renderchain_set_mvp(d3d, d3d->renderchain_data, shader_data, mat_data);
}
static void d3d8_overlay_render(d3d8_video_t *d3d,
video_frame_info_t *video_info,
overlay_t *overlay, bool force_linear)
@ -1598,7 +1586,7 @@ static bool d3d8_frame(void *data, const void *frame,
#ifdef HAVE_MENU
if (d3d->menu && d3d->menu->enabled)
{
d3d8_set_mvp(d3d, NULL, &d3d->mvp);
d3d8_set_mvp(d3d->dev, &d3d->mvp);
d3d8_overlay_render(d3d, video_info, d3d->menu, false);
d3d->menu_display.offset = 0;
@ -1623,7 +1611,7 @@ static bool d3d8_frame(void *data, const void *frame,
#ifdef HAVE_OVERLAY
if (d3d->overlays_enabled)
{
d3d8_set_mvp(d3d, NULL, &d3d->mvp);
d3d8_set_mvp(d3d->dev, &d3d->mvp);
for (i = 0; i < d3d->overlays_size; i++)
d3d8_overlay_render(d3d, video_info, &d3d->overlays[i], true);
}
@ -1854,7 +1842,6 @@ static uint32_t d3d8_get_flags(void *data)
static const video_poke_interface_t d3d_poke_interface = {
d3d8_get_flags,
d3d8_set_mvp,
d3d8_load_texture,
d3d8_unload_texture,
d3d8_set_video_mode,

View File

@ -456,12 +456,10 @@ static void d3d9_viewport_info(void *data, struct video_viewport *vp)
vp->full_height = height;
}
static void d3d9_set_mvp(void *data,
void *shader_data,
const void *mat_data)
void d3d9_set_mvp(void *data, const void *mat_data)
{
d3d9_video_t *d3d = (d3d9_video_t*)data;
d3d9_set_vertex_shader_constantf(d3d->dev, 0, (const float*)mat_data, 4);
LPDIRECT3DDEVICE9 dev = (LPDIRECT3DDEVICE9)data;
d3d9_set_vertex_shader_constantf(dev, 0, (const float*)mat_data, 4);
}
static void d3d9_overlay_render(d3d9_video_t *d3d,
@ -1696,7 +1694,7 @@ static bool d3d9_frame(void *data, const void *frame,
#ifdef HAVE_MENU
if (d3d->menu && d3d->menu->enabled)
{
d3d9_set_mvp(d3d, NULL, &d3d->mvp);
d3d9_set_mvp(d3d->dev, &d3d->mvp);
d3d9_overlay_render(d3d, video_info, d3d->menu, false);
d3d->menu_display.offset = 0;
@ -1725,7 +1723,7 @@ static bool d3d9_frame(void *data, const void *frame,
#ifdef HAVE_OVERLAY
if (d3d->overlays_enabled)
{
d3d9_set_mvp(d3d, NULL, &d3d->mvp);
d3d9_set_mvp(d3d->dev, &d3d->mvp);
for (i = 0; i < d3d->overlays_size; i++)
d3d9_overlay_render(d3d, video_info, &d3d->overlays[i], true);
}
@ -2053,7 +2051,6 @@ static uint32_t d3d9_get_flags(void *data)
static const video_poke_interface_t d3d9_poke_interface = {
d3d9_get_flags,
d3d9_set_mvp,
d3d9_load_texture,
d3d9_unload_texture,
d3d9_set_video_mode,

View File

@ -632,7 +632,6 @@ static void dispmanx_set_aspect_ratio (void *data, unsigned aspect_ratio_idx)
static const video_poke_interface_t dispmanx_poke_interface = {
NULL, /* get_flags */
NULL, /* set_mvp */
NULL,
NULL,
NULL, /* set_video_mode */

View File

@ -966,7 +966,6 @@ static void drm_set_aspect_ratio (void *data, unsigned aspect_ratio_idx)
static const video_poke_interface_t drm_poke_interface = {
NULL, /* get_flags */
NULL, /* set_mvp */
NULL,
NULL,
NULL, /* set_video_mode */

View File

@ -1489,7 +1489,6 @@ static void exynos_show_mouse(void *data, bool state)
static const video_poke_interface_t exynos_poke_interface = {
NULL, /* get_flags */
NULL, /* set_mvp */
NULL,
NULL,
NULL, /* set_video_mode */

View File

@ -631,7 +631,6 @@ static void gdi_unload_texture(void *data, uintptr_t handle)
static const video_poke_interface_t gdi_poke_interface = {
NULL, /* get_flags */
NULL, /* set_mvp */
gdi_load_texture,
gdi_unload_texture,
gdi_set_video_mode,

View File

@ -4142,7 +4142,6 @@ static uint32_t gl2_get_flags(void *data)
static const video_poke_interface_t gl2_poke_interface = {
gl2_get_flags,
NULL, /* set_mvp */
gl2_load_texture,
gl2_unload_texture,
gl2_set_video_mode,

View File

@ -1250,7 +1250,6 @@ static uint32_t gl1_get_flags(void *data)
static const video_poke_interface_t gl1_poke_interface = {
gl1_get_flags,
NULL,
gl1_load_texture,
gl1_unload_texture,
gl1_set_video_mode,

View File

@ -1960,7 +1960,6 @@ static retro_proc_address_t gl_core_get_proc_address(void *data, const char *sym
static const video_poke_interface_t gl_core_poke_interface = {
gl_core_get_flags,
NULL, /* set_mvp */
gl_core_load_texture,
gl_core_unload_texture,
gl_core_set_video_mode,

View File

@ -1717,7 +1717,6 @@ static uint32_t wiiu_gfx_get_flags(void *data)
static const video_poke_interface_t wiiu_poke_interface = {
wiiu_gfx_get_flags,
NULL, /* set_mvp */
wiiu_gfx_load_texture,
wiiu_gfx_unload_texture,
NULL, /* set_video_mode */

View File

@ -1265,7 +1265,6 @@ static void gx_get_video_output_next(void *data)
static const video_poke_interface_t gx_poke_interface = {
NULL, /* get_flags */
NULL, /* set_mvp */
NULL,
NULL,
gx_set_video_mode,

View File

@ -1138,7 +1138,6 @@ static float omap_get_refresh_rate(void *data)
static const video_poke_interface_t omap_gfx_poke_interface = {
NULL, /* get_flags */
NULL, /* set_mvp */
NULL,
NULL,
NULL,

View File

@ -470,7 +470,6 @@ static bool ps2_get_hw_render_interface(void* data,
static const video_poke_interface_t ps2_poke_interface = {
NULL, /* get_flags */
NULL, /* set_mvp */
NULL,
NULL,
NULL,

View File

@ -832,7 +832,6 @@ static void psp_viewport_info(void *data, struct video_viewport *vp)
static const video_poke_interface_t psp_poke_interface = {
NULL, /* get_flags */
NULL, /* set_mvp */
NULL,
NULL,
NULL,

View File

@ -726,7 +726,6 @@ static void sdl2_grab_mouse_toggle(void *data)
static video_poke_interface_t sdl2_video_poke_interface = {
NULL, /* get_flags */
NULL, /* set_mvp */
NULL,
NULL,
NULL,

View File

@ -518,7 +518,6 @@ static void sdl_grab_mouse_toggle(void *data)
static const video_poke_interface_t sdl_poke_interface = {
NULL, /* get_flags */
NULL, /* set_mvp */
NULL,
NULL,
NULL,

View File

@ -602,7 +602,6 @@ static const video_poke_interface_t sixel_poke_interface = {
NULL,
NULL,
NULL,
NULL,
sixel_set_video_mode,
NULL,
NULL,

View File

@ -944,7 +944,6 @@ static float sunxi_get_refresh_rate (void *data)
static const video_poke_interface_t sunxi_poke_interface = {
NULL, /* get_flags */
NULL, /* set_mvp */
NULL,
NULL,
NULL, /* set_video_mode */

View File

@ -406,7 +406,6 @@ static void switch_set_texture_enable(void *data, bool enable, bool full_screen)
static const video_poke_interface_t switch_poke_interface = {
NULL, /* get_flags */
NULL, /* set_mvp */
NULL, /* load_texture */
NULL, /* unload_texture */
NULL, /* set_video_mode */

View File

@ -755,7 +755,6 @@ void switch_overlay_interface(void *data, const video_overlay_interface_t **ifac
static const video_poke_interface_t switch_poke_interface = {
NULL, /* get_flags */
NULL, /* set_mvp */
NULL, /* load_texture */
NULL, /* unload_texture */
NULL, /* set_video_mode */

View File

@ -391,7 +391,6 @@ static void vga_set_osd_msg(void *data,
static const video_poke_interface_t vga_poke_interface = {
NULL, /* get_flags */
NULL, /* set_mvp */
NULL,
NULL,
NULL,

View File

@ -790,7 +790,6 @@ static bool vita_get_current_sw_framebuffer(void *data,
static const video_poke_interface_t vita_poke_interface = {
NULL, /* get_flags */
NULL, /* set_mvp */
vita_load_texture,
vita_unload_texture,
NULL,

View File

@ -2407,7 +2407,6 @@ static uint32_t vulkan_get_flags(void *data)
static const video_poke_interface_t vulkan_poke_interface = {
vulkan_get_flags,
NULL, /* set_mvp */
vulkan_load_texture,
vulkan_unload_texture,
vulkan_set_video_mode,

View File

@ -205,7 +205,6 @@ static void xshm_grab_mouse_toggle(void *data)
static video_poke_interface_t xshm_video_poke_interface = {
NULL, /* get_flags */
NULL, /* set_mvp */
NULL,
NULL,
NULL,

View File

@ -939,7 +939,6 @@ static video_poke_interface_t xv_video_poke_interface = {
NULL,
NULL,
NULL,
NULL,
x11_get_refresh_rate,
NULL,
NULL,

View File

@ -125,8 +125,6 @@ typedef struct video_pixel_scaler
void *scaler_out;
} video_pixel_scaler_t;
static bool (*video_driver_cb_shader_set_mvp)(void *data,
void *shader_data, const void *mat_data);
bool (*video_driver_cb_has_focus)(void);
/* Opaque handles to currently running window.
@ -2852,8 +2850,6 @@ void video_driver_build_info(video_frame_info_t *video_info)
video_info->cb_get_metrics = current_video_context.get_metrics;
video_info->cb_set_resize = current_video_context.set_resize;
video_info->cb_set_mvp = video_driver_cb_shader_set_mvp;
video_info->userdata = video_driver_get_ptr(false);
#ifdef HAVE_THREADS
@ -3472,31 +3468,6 @@ bool video_shader_driver_deinit(void)
return true;
}
static bool video_driver_cb_set_mvp(void *data,
void *shader_data, const void *mat_data)
{
video_shader_ctx_mvp_t mvp;
mvp.data = data;
mvp.matrix = mat_data;
video_driver_set_mvp(&mvp);
return true;
}
static void video_shader_driver_reset_to_defaults(void)
{
if (!current_shader)
return;
if (current_shader->set_mvp)
video_driver_cb_shader_set_mvp = current_shader->set_mvp;
else
{
current_shader->set_mvp = video_driver_cb_set_mvp;
video_driver_cb_shader_set_mvp = video_driver_cb_set_mvp;
}
}
/* Finds first suitable shader context driver. */
bool video_shader_driver_init_first(const void *data)
{
@ -3504,7 +3475,6 @@ bool video_shader_driver_init_first(const void *data)
if (!ptr)
return false;
current_shader = ptr;
video_shader_driver_reset_to_defaults();
return true;
}
@ -3539,27 +3509,10 @@ bool video_shader_driver_init(video_shader_ctx_init_t *init)
RARCH_LOG("Resetting shader to defaults ... \n");
current_shader = (shader_backend_t*)init->shader;
video_shader_driver_reset_to_defaults();
return true;
}
void video_driver_set_mvp(video_shader_ctx_mvp_t *mvp)
{
if (!mvp || !mvp->matrix)
return;
if (current_shader && current_shader->set_mvp)
current_shader->set_mvp(mvp->data,
current_shader_data, mvp->matrix);
else
{
if (video_driver_poke && video_driver_poke->set_mvp)
video_driver_poke->set_mvp(mvp->data,
current_shader_data, mvp->matrix);
}
}
float video_driver_get_refresh_rate(void)
{
if (video_driver_poke && video_driver_poke->get_refresh_rate)

View File

@ -492,9 +492,6 @@ typedef struct video_frame_info
float *value);
bool (*cb_set_resize)(void*, unsigned, unsigned);
bool (*cb_set_mvp)(void *data, void *shader_data,
const void *mat_data);
void *context_data;
void *shader_data;
void *userdata;
@ -691,8 +688,6 @@ struct aspect_ratio_elem
typedef struct video_poke_interface
{
uint32_t (*get_flags)(void *data);
void (*set_mvp)(void *data, void *shader_data,
const void *mat_data);
uintptr_t (*load_texture)(void *video_data, void *data,
bool threaded, enum texture_filter_type filter_type);
void (*unload_texture)(void *data, uintptr_t id);
@ -1196,8 +1191,6 @@ bool video_shader_driver_init_first(const void *data);
bool video_shader_driver_init(video_shader_ctx_init_t *init);
void video_driver_set_mvp(video_shader_ctx_mvp_t *mvp);
float video_driver_get_refresh_rate(void);
extern bool (*video_driver_cb_has_focus)(void);

View File

@ -1241,7 +1241,6 @@ static uint32_t thread_get_flags(void *data)
static const video_poke_interface_t thread_poke = {
thread_get_flags,
NULL, /* set_mvp */
thread_load_texture,
thread_unload_texture,
thread_set_video_mode,

View File

@ -121,7 +121,6 @@ static void menu_display_d3d8_draw(menu_display_ctx_draw_t *draw,
video_frame_info_t *video_info)
{
unsigned i;
video_shader_ctx_mvp_t mvp;
math_matrix_4x4 mop, m1, m2;
unsigned width, height;
d3d8_video_t *d3d = video_info ?
@ -212,9 +211,8 @@ static void menu_display_d3d8_draw(menu_display_ctx_draw_t *draw,
matrix_4x4_multiply(m2, d3d->mvp_transposed, m1);
d3d_matrix_transpose(&m1, &m2);
mvp.data = d3d;
mvp.matrix = &m1;
video_driver_set_mvp(&mvp);
d3d8_set_mvp(d3d->dev, &m1);
if (draw && draw->texture)
menu_display_d3d8_bind_texture(draw, d3d);

View File

@ -122,7 +122,6 @@ static void menu_display_d3d9_draw(menu_display_ctx_draw_t *draw,
video_frame_info_t *video_info)
{
unsigned i;
video_shader_ctx_mvp_t mvp;
math_matrix_4x4 mop, m1, m2;
unsigned width, height;
LPDIRECT3DDEVICE9 dev;
@ -205,9 +204,7 @@ static void menu_display_d3d9_draw(menu_display_ctx_draw_t *draw,
matrix_4x4_multiply(m2, d3d->mvp_transposed, m1);
d3d_matrix_transpose(&m1, &m2);
mvp.data = d3d;
mvp.matrix = &m1;
video_driver_set_mvp(&mvp);
d3d9_set_mvp(d3d->dev, &m1);
if (draw && draw->texture)
menu_display_d3d9_bind_texture(draw, d3d);