mirror of
https://github.com/libretro/RetroArch.git
synced 2025-02-21 10:11:18 +00:00
Refactor set_mvp code a bit
This commit is contained in:
parent
2ac75f98ae
commit
2b1481d97f
@ -253,14 +253,18 @@ static void gl_cg_reset_attrib(void *data)
|
|||||||
cg->attribs_index = 0;
|
cg->attribs_index = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static bool gl_cg_set_mvp(void *data, void *shader_data, const math_matrix_4x4 *mat)
|
static bool gl_cg_set_mvp(void *data, void *shader_data,
|
||||||
|
const void *mat_data)
|
||||||
{
|
{
|
||||||
cg_shader_data_t *cg = (cg_shader_data_t*)shader_data;
|
cg_shader_data_t *cg = (cg_shader_data_t*)shader_data;
|
||||||
if (!cg || !cg->prg[cg->active_idx].mvp)
|
if (cg && cg->prg[cg->active_idx].mvp)
|
||||||
return false;
|
{
|
||||||
|
const math_matrix_4x4 *mat = (const math_matrix_4x4*)mat_data;
|
||||||
|
cgGLSetMatrixParameterfc(cg->prg[cg->active_idx].mvp, mat->data);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
cgGLSetMatrixParameterfc(cg->prg[cg->active_idx].mvp, mat->data);
|
return false;
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static bool gl_cg_set_coords(void *handle_data, void *shader_data, const struct video_coords *coords)
|
static bool gl_cg_set_coords(void *handle_data, void *shader_data, const struct video_coords *coords)
|
||||||
|
@ -1434,10 +1434,10 @@ static void gl_glsl_set_params(void *data, void *shader_data,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static bool gl_glsl_set_mvp(void *data, void *shader_data, const math_matrix_4x4 *mat)
|
static bool gl_glsl_set_mvp(void *data, void *shader_data, const void *mat_data)
|
||||||
{
|
{
|
||||||
int loc;
|
int loc;
|
||||||
glsl_shader_data_t *glsl = (glsl_shader_data_t*)shader_data;
|
glsl_shader_data_t *glsl = (glsl_shader_data_t*)shader_data;
|
||||||
|
|
||||||
(void)data;
|
(void)data;
|
||||||
|
|
||||||
@ -1447,6 +1447,8 @@ static bool gl_glsl_set_mvp(void *data, void *shader_data, const math_matrix_4x4
|
|||||||
loc = glsl->uniforms[glsl->active_idx].mvp;
|
loc = glsl->uniforms[glsl->active_idx].mvp;
|
||||||
if (loc >= 0)
|
if (loc >= 0)
|
||||||
{
|
{
|
||||||
|
const math_matrix_4x4 *mat = (const math_matrix_4x4*)mat_data;
|
||||||
|
|
||||||
if ( (glsl->current_idx != glsl->active_idx) ||
|
if ( (glsl->current_idx != glsl->active_idx) ||
|
||||||
(mat->data != glsl->current_mat_data_pointer[glsl->active_idx]) ||
|
(mat->data != glsl->current_mat_data_pointer[glsl->active_idx]) ||
|
||||||
(*mat->data != glsl->current_mat_data[glsl->active_idx]))
|
(*mat->data != glsl->current_mat_data[glsl->active_idx]))
|
||||||
|
@ -497,11 +497,12 @@ static void hlsl_shader_scale(void *data, unsigned idx, struct gfx_fbo_scale *sc
|
|||||||
scale->valid = false;
|
scale->valid = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
static bool hlsl_set_mvp(void *data, void *shader_data, const math_matrix_4x4 *mat)
|
static bool hlsl_set_mvp(void *data, void *shader_data, const void *mat_data)
|
||||||
{
|
{
|
||||||
d3d_video_t *d3d = (d3d_video_t*)data;
|
d3d_video_t *d3d = (d3d_video_t*)data;
|
||||||
LPDIRECT3DDEVICE d3dr = (LPDIRECT3DDEVICE)d3d->dev;
|
LPDIRECT3DDEVICE d3dr = (LPDIRECT3DDEVICE)d3d->dev;
|
||||||
hlsl_shader_data_t *hlsl_data = (hlsl_shader_data_t*)shader_data;
|
hlsl_shader_data_t *hlsl_data = (hlsl_shader_data_t*)shader_data;
|
||||||
|
const math_matrix_4x4 *mat = (const math_matrix_4x4*)mat_data;
|
||||||
|
|
||||||
if(hlsl_data && hlsl_data->prg[hlsl_data->active_idx].mvp)
|
if(hlsl_data && hlsl_data->prg[hlsl_data->active_idx].mvp)
|
||||||
{
|
{
|
||||||
|
@ -127,7 +127,7 @@ typedef struct video_pixel_scaler
|
|||||||
static void (*video_driver_cb_shader_use)(void *data,
|
static void (*video_driver_cb_shader_use)(void *data,
|
||||||
void *shader_data, unsigned index, bool set_active);
|
void *shader_data, unsigned index, bool set_active);
|
||||||
static bool (*video_driver_cb_shader_set_mvp)(void *data,
|
static bool (*video_driver_cb_shader_set_mvp)(void *data,
|
||||||
void *shader_data, const math_matrix_4x4 *mat);
|
void *shader_data, const void *mat_data);
|
||||||
bool (*video_driver_cb_has_focus)(void);
|
bool (*video_driver_cb_has_focus)(void);
|
||||||
|
|
||||||
/* Opaque handles to currently running window.
|
/* Opaque handles to currently running window.
|
||||||
@ -3237,7 +3237,7 @@ static enum gfx_wrap_type video_shader_driver_wrap_type_null(
|
|||||||
}
|
}
|
||||||
|
|
||||||
static bool video_shader_driver_set_mvp_null(void *data,
|
static bool video_shader_driver_set_mvp_null(void *data,
|
||||||
void *shader_data, const math_matrix_4x4 *mat)
|
void *shader_data, const void *mat_data)
|
||||||
{
|
{
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@ -3245,9 +3245,10 @@ static bool video_shader_driver_set_mvp_null(void *data,
|
|||||||
#ifdef HAVE_OPENGL
|
#ifdef HAVE_OPENGL
|
||||||
#ifndef NO_GL_FF_MATRIX
|
#ifndef NO_GL_FF_MATRIX
|
||||||
static bool video_shader_driver_set_mvp_null_gl(void *data,
|
static bool video_shader_driver_set_mvp_null_gl(void *data,
|
||||||
void *shader_data, const math_matrix_4x4 *mat)
|
void *shader_data, const void *mat_data)
|
||||||
{
|
{
|
||||||
math_matrix_4x4 ident;
|
math_matrix_4x4 ident;
|
||||||
|
const math_matrix_4x4 *mat = (const math_matrix_4x4*)mat_data;
|
||||||
|
|
||||||
/* Fall back to fixed function-style if needed and possible. */
|
/* Fall back to fixed function-style if needed and possible. */
|
||||||
glMatrixMode(GL_PROJECTION);
|
glMatrixMode(GL_PROJECTION);
|
||||||
|
@ -234,7 +234,7 @@ typedef struct shader_backend
|
|||||||
bool (*set_coords)(void *handle_data,
|
bool (*set_coords)(void *handle_data,
|
||||||
void *shader_data, const struct video_coords *coords);
|
void *shader_data, const struct video_coords *coords);
|
||||||
bool (*set_mvp)(void *data, void *shader_data,
|
bool (*set_mvp)(void *data, void *shader_data,
|
||||||
const math_matrix_4x4 *mat);
|
const void *mat_data);
|
||||||
unsigned (*get_prev_textures)(void *data);
|
unsigned (*get_prev_textures)(void *data);
|
||||||
bool (*get_feedback_pass)(void *data, unsigned *pass);
|
bool (*get_feedback_pass)(void *data, unsigned *pass);
|
||||||
bool (*mipmap_input)(void *data, unsigned index);
|
bool (*mipmap_input)(void *data, unsigned index);
|
||||||
@ -471,7 +471,7 @@ typedef struct video_frame_info
|
|||||||
void *shader_data, const struct video_coords *coords);
|
void *shader_data, const struct video_coords *coords);
|
||||||
#endif
|
#endif
|
||||||
bool (*cb_shader_set_mvp)(void *data, void *shader_data,
|
bool (*cb_shader_set_mvp)(void *data, void *shader_data,
|
||||||
const math_matrix_4x4 *mat);
|
const void *mat_data);
|
||||||
|
|
||||||
void *context_data;
|
void *context_data;
|
||||||
void *shader_data;
|
void *shader_data;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user