Get rid of set_mvp function in D3D9 renderchain driver - use

one common set_mvp function instead
This commit is contained in:
twinaphex 2018-02-10 21:21:09 +01:00
parent 843a7f200c
commit b141c37fe9
4 changed files with 3 additions and 62 deletions

View File

@ -332,11 +332,7 @@ static void d3d9_set_mvp(void *data,
const void *mat_data) const void *mat_data)
{ {
d3d_video_t *d3d = (d3d_video_t*)data; d3d_video_t *d3d = (d3d_video_t*)data;
d3d_set_vertex_shader_constantf(d3d->dev, 0, (const float*)mat_data, 4);
if ( d3d &&
d3d->renderchain_driver &&
d3d->renderchain_driver->set_mvp)
d3d->renderchain_driver->set_mvp(d3d, d3d->renderchain_data, shader_data, mat_data);
} }
static void d3d9_overlay_render(d3d_video_t *d3d, static void d3d9_overlay_render(d3d_video_t *d3d,

View File

@ -1223,20 +1223,6 @@ static void d3d9_cg_renderchain_calc_and_set_shader_mvp(
d3d9_cg_renderchain_set_shader_mvp(chain, vPrg, &matrix); d3d9_cg_renderchain_set_shader_mvp(chain, vPrg, &matrix);
} }
static void d3d9_cg_renderchain_set_mvp(
void *data,
void *chain_data,
void *shader_data,
const void *mat_data)
{
d3d_video_t *d3d = (d3d_video_t*)data;
if (!d3d)
return;
d3d_set_vertex_shader_constantf(d3d->dev, 0, (const float*)mat_data, 4);
}
static void cg_d3d9_renderchain_set_vertices( static void cg_d3d9_renderchain_set_vertices(
cg_renderchain_t *chain, cg_renderchain_t *chain,
struct Pass *pass, struct Pass *pass,
@ -1334,13 +1320,6 @@ static void cg_d3d9_renderchain_set_vertices(
} }
} }
static void cg_d3d9_renderchain_set_viewport(
cg_renderchain_t *chain,
D3DVIEWPORT9 *vp)
{
d3d_set_viewports(chain->dev, vp);
}
static void cg_d3d9_renderchain_blit_to_texture( static void cg_d3d9_renderchain_blit_to_texture(
cg_renderchain_t *chain, cg_renderchain_t *chain,
const void *frame, const void *frame,
@ -1552,7 +1531,7 @@ static bool d3d9_cg_renderchain_render(
viewport.Height = out_height; viewport.Height = out_height;
if (chain) if (chain)
cg_d3d9_renderchain_set_viewport(chain, &viewport); d3d_set_viewports(chain, &viewport);
cg_d3d9_renderchain_set_vertices(chain, from_pass, cg_d3d9_renderchain_set_vertices(chain, from_pass,
current_width, current_height, current_width, current_height,
@ -1578,7 +1557,7 @@ static bool d3d9_cg_renderchain_render(
current_width, current_height, chain->final_viewport); current_width, current_height, chain->final_viewport);
if (chain) if (chain)
cg_d3d9_renderchain_set_viewport(chain, chain->final_viewport); d3d_set_viewports(chain, chain->final_viewport);
cg_d3d9_renderchain_set_vertices(chain, last_pass, cg_d3d9_renderchain_set_vertices(chain, last_pass,
current_width, current_height, current_width, current_height,
@ -1723,7 +1702,6 @@ static void d3d9_cg_renderchain_viewport_info(
} }
d3d_renderchain_driver_t cg_d3d9_renderchain = { d3d_renderchain_driver_t cg_d3d9_renderchain = {
d3d9_cg_renderchain_set_mvp,
d3d9_cg_renderchain_free, d3d9_cg_renderchain_free,
d3d9_cg_renderchain_new, d3d9_cg_renderchain_new,
d3d9_cg_renderchain_init, d3d9_cg_renderchain_init,

View File

@ -43,23 +43,6 @@ typedef struct hlsl_d3d9_renderchain
LPDIRECT3DVERTEXDECLARATION9 vertex_decl; LPDIRECT3DVERTEXDECLARATION9 vertex_decl;
} hlsl_d3d9_renderchain_t; } hlsl_d3d9_renderchain_t;
/* TODO/FIXME - this forward declaration should not be necesary */
void hlsl_set_proj_matrix(void *data, void *matrix_data);
static void hlsl_d3d9_renderchain_set_mvp(
void *data,
void *chain_data,
void *shader_data,
const void *mat_data)
{
d3d_video_t *d3d = (d3d_video_t*)data;
if(shader_data)
hlsl_set_proj_matrix(shader_data, (void*)mat_data);
else
hlsl_set_proj_matrix((void*)&d3d->shader, (void*)mat_data);
}
static void hlsl_d3d9_renderchain_clear(void *data) static void hlsl_d3d9_renderchain_clear(void *data)
{ {
hlsl_d3d9_renderchain_t *chain = (hlsl_d3d9_renderchain_t*)data; hlsl_d3d9_renderchain_t *chain = (hlsl_d3d9_renderchain_t*)data;
@ -190,11 +173,6 @@ static void hlsl_d3d9_renderchain_set_vertices(
d3d_vertex_buffer_unlock(chain->vertex_buf); d3d_vertex_buffer_unlock(chain->vertex_buf);
} }
/* TODO/FIXME - last parameter is mat_data, should be set to
something other than NULL */
hlsl_d3d9_renderchain_set_mvp(d3d, chain, &d3d->shader,
NULL);
shader_info.data = d3d; shader_info.data = d3d;
shader_info.idx = pass; shader_info.idx = pass;
shader_info.set_active = true; shader_info.set_active = true;
@ -225,8 +203,6 @@ static void hlsl_d3d9_renderchain_blit_to_texture(
D3DLOCKED_RECT d3dlr; D3DLOCKED_RECT d3dlr;
hlsl_d3d9_renderchain_t *chain = (hlsl_d3d9_renderchain_t*)data; hlsl_d3d9_renderchain_t *chain = (hlsl_d3d9_renderchain_t*)data;
d3d_frame_postprocess(chain);
if (chain->last_width != width || chain->last_height != height) if (chain->last_width != width || chain->last_height != height)
{ {
d3d_lock_rectangle(chain->tex, d3d_lock_rectangle(chain->tex,
@ -390,10 +366,6 @@ static bool hlsl_d3d9_renderchain_render(void *data, const void *frame,
for (i = 0; i < 4; i++) for (i = 0; i < 4; i++)
d3d_set_stream_source(chain->dev, i, chain->vertex_buf, 0, sizeof(Vertex)); d3d_set_stream_source(chain->dev, i, chain->vertex_buf, 0, sizeof(Vertex));
d3d_draw_primitive(chain->dev, D3DPT_TRIANGLESTRIP, 0, 2); d3d_draw_primitive(chain->dev, D3DPT_TRIANGLESTRIP, 0, 2);
/* TODO/FIXME - last parameter is mat_data - should be something
other than NULL */
hlsl_d3d9_renderchain_set_mvp(d3d,
chain, &d3d->shader, NULL);
return true; return true;
} }
@ -455,7 +427,6 @@ static void hlsl_d3d9_renderchain_viewport_info(
} }
d3d_renderchain_driver_t hlsl_d3d9_renderchain = { d3d_renderchain_driver_t hlsl_d3d9_renderchain = {
hlsl_d3d9_renderchain_set_mvp,
hlsl_d3d9_renderchain_free, hlsl_d3d9_renderchain_free,
hlsl_d3d9_renderchain_new, hlsl_d3d9_renderchain_new,
hlsl_d3d9_renderchain_init, hlsl_d3d9_renderchain_init,

View File

@ -800,10 +800,6 @@ typedef struct video_driver
typedef struct d3d_renderchain_driver typedef struct d3d_renderchain_driver
{ {
void (*set_mvp)(void *data,
void *chain_data,
void *shader_data,
const void *mat_data);
void (*chain_free)(void *data); void (*chain_free)(void *data);
void *(*chain_new)(void); void *(*chain_new)(void);
bool (*init)(void *data, bool (*init)(void *data,