Start hooking up set_shader_mvp function

This commit is contained in:
twinaphex 2018-05-15 06:02:10 +02:00
parent 6afd100d2f
commit 2d540264e8
4 changed files with 20 additions and 7 deletions

View File

@ -51,7 +51,9 @@ typedef struct d3d9_renderchain_driver
bool (*add_lut)(void *data, bool (*add_lut)(void *data,
const char *id, const char *path, const char *id, const char *path,
bool smooth); bool smooth);
bool (*render)(d3d9_video_t *d3d, state_tracker_t *tracker, bool (*render)(d3d9_video_t *d3d,
const video_frame_info_t *video_info,
state_tracker_t *tracker,
const void *frame, const void *frame,
unsigned width, unsigned height, unsigned pitch, unsigned rotation); unsigned width, unsigned height, unsigned pitch, unsigned rotation);
bool (*read_viewport)(d3d9_video_t *d3d, uint8_t *buffer, bool is_idle); bool (*read_viewport)(d3d9_video_t *d3d, uint8_t *buffer, bool is_idle);

View File

@ -1676,7 +1676,8 @@ static bool d3d9_frame(void *data, const void *frame,
} }
if (!d3d->renderchain_driver->render( if (!d3d->renderchain_driver->render(
d3d, d3d->state_tracker, d3d, video_info,
d3d->state_tracker,
frame, frame_width, frame_height, frame, frame_width, frame_height,
pitch, d3d->dev_rotation)) pitch, d3d->dev_rotation))
{ {

View File

@ -1085,6 +1085,7 @@ static void d3d9_cg_renderchain_calc_and_set_shader_mvp(
} }
static void cg_d3d9_renderchain_set_vertices( static void cg_d3d9_renderchain_set_vertices(
const video_frame_info_t *video_info,
cg_renderchain_t *chain, cg_renderchain_t *chain,
struct cg_pass *pass, struct cg_pass *pass,
unsigned width, unsigned height, unsigned width, unsigned height,
@ -1308,6 +1309,7 @@ static void cg_d3d9_renderchain_render_pass(
static bool d3d9_cg_renderchain_render( static bool d3d9_cg_renderchain_render(
d3d9_video_t *d3d, d3d9_video_t *d3d,
const video_frame_info_t *video_info,
state_tracker_t *tracker, state_tracker_t *tracker,
const void *frame_data, const void *frame_data,
unsigned width, unsigned height, unsigned width, unsigned height,
@ -1374,7 +1376,8 @@ static bool d3d9_cg_renderchain_render(
d3d9_set_viewports(chain->dev, &viewport); d3d9_set_viewports(chain->dev, &viewport);
cg_d3d9_renderchain_set_vertices(chain, from_pass, cg_d3d9_renderchain_set_vertices(video_info,
chain, from_pass,
current_width, current_height, current_width, current_height,
out_width, out_height, out_width, out_height,
out_width, out_height, 0); out_width, out_height, 0);
@ -1399,7 +1402,8 @@ static bool d3d9_cg_renderchain_render(
d3d9_set_viewports(chain->dev, chain->final_viewport); d3d9_set_viewports(chain->dev, chain->final_viewport);
cg_d3d9_renderchain_set_vertices(chain, last_pass, cg_d3d9_renderchain_set_vertices(video_info,
chain, last_pass,
current_width, current_height, current_width, current_height,
out_width, out_height, out_width, out_height,
chain->final_viewport->Width, chain->final_viewport->Height, chain->final_viewport->Width, chain->final_viewport->Height,

View File

@ -175,6 +175,7 @@ static bool hlsl_d3d9_renderchain_create_first_pass(
static void hlsl_d3d9_renderchain_set_vertices( static void hlsl_d3d9_renderchain_set_vertices(
d3d9_video_t *d3d, d3d9_video_t *d3d,
const video_frame_info_t *video_info,
hlsl_d3d9_renderchain_t *chain, hlsl_d3d9_renderchain_t *chain,
struct hlsl_pass *pass, struct hlsl_pass *pass,
unsigned pass_count, unsigned pass_count,
@ -254,7 +255,7 @@ static void hlsl_d3d9_renderchain_set_vertices(
params.fbo_info_cnt = 0; params.fbo_info_cnt = 0;
#if 0 #if 0
d3d9_cg_renderchain_calc_and_set_shader_mvp( d3d9_cg_renderchain_calc_and_set_shader_mvp(video_info,
/*pass->vPrg, */vp_width, vp_height, rotation); /*pass->vPrg, */vp_width, vp_height, rotation);
#endif #endif
video_shader_driver_set_parameters(&params); video_shader_driver_set_parameters(&params);
@ -532,6 +533,7 @@ static void hlsl_d3d9_renderchain_render_pass(
} }
static void d3d9_hlsl_renderchain_calc_and_set_shader_mvp( static void d3d9_hlsl_renderchain_calc_and_set_shader_mvp(
const video_frame_info_t *video_info,
unsigned vp_width, unsigned vp_height, unsigned vp_width, unsigned vp_height,
unsigned rotation) unsigned rotation)
{ {
@ -544,6 +546,8 @@ static void d3d9_hlsl_renderchain_calc_and_set_shader_mvp(
d3d_matrix_multiply(&proj, &ortho, &rot); d3d_matrix_multiply(&proj, &ortho, &rot);
d3d_matrix_transpose(&matrix, &proj); d3d_matrix_transpose(&matrix, &proj);
video_info->cb_set_mvp(NULL,
video_info->shader_data, (void*)&matrix);
#if 0 #if 0
cgD3D9SetUniformMatrix(cgpModelViewProj, (D3DMATRIX*)&matrix); cgD3D9SetUniformMatrix(cgpModelViewProj, (D3DMATRIX*)&matrix);
#endif #endif
@ -551,6 +555,7 @@ static void d3d9_hlsl_renderchain_calc_and_set_shader_mvp(
static bool hlsl_d3d9_renderchain_render( static bool hlsl_d3d9_renderchain_render(
d3d9_video_t *d3d, d3d9_video_t *d3d,
const video_frame_info_t *video_info,
state_tracker_t *tracker, state_tracker_t *tracker,
const void *frame, const void *frame,
unsigned width, unsigned height, unsigned width, unsigned height,
@ -591,7 +596,8 @@ static bool hlsl_d3d9_renderchain_render(
d3d9_set_viewports(chain->dev, &d3d->final_viewport); d3d9_set_viewports(chain->dev, &d3d->final_viewport);
hlsl_d3d9_renderchain_set_vertices(d3d, chain, last_pass, hlsl_d3d9_renderchain_set_vertices(d3d, video_info,
chain, last_pass,
1, width, height, chain->frame_count); 1, width, height, chain->frame_count);
hlsl_d3d9_renderchain_render_pass(chain, last_pass, hlsl_d3d9_renderchain_render_pass(chain, last_pass,
@ -600,7 +606,7 @@ static bool hlsl_d3d9_renderchain_render(
chain->frame_count++; chain->frame_count++;
d3d9_hlsl_renderchain_calc_and_set_shader_mvp( d3d9_hlsl_renderchain_calc_and_set_shader_mvp(video_info,
/* chain->vStock, */ chain->final_viewport->Width, /* chain->vStock, */ chain->final_viewport->Width,
chain->final_viewport->Height, 0); chain->final_viewport->Height, 0);