(Cg D3D9) Cleanups

This commit is contained in:
twinaphex 2018-01-16 03:22:13 +01:00
parent f13148d10e
commit 6c95f389b1
1 changed files with 29 additions and 36 deletions

View File

@ -1062,7 +1062,7 @@ static void d3d9_cg_renderchain_set_final_viewport(
const void *viewport_data) const void *viewport_data)
{ {
d3d_video_t *d3d = (d3d_video_t*)data; d3d_video_t *d3d = (d3d_video_t*)data;
cg_renderchain_t *chain = (cg_renderchain_t*)renderchain_data; cg_renderchain_t *chain = (cg_renderchain_t*)renderchain_data;
const D3DVIEWPORT *final_viewport = (const D3DVIEWPORT*)viewport_data; const D3DVIEWPORT *final_viewport = (const D3DVIEWPORT*)viewport_data;
if (chain) if (chain)
@ -1165,8 +1165,12 @@ static bool d3d9_cg_renderchain_add_lut(void *data,
static void d3d9_cg_renderchain_add_state_tracker( static void d3d9_cg_renderchain_add_state_tracker(
void *data, void *tracker_data) void *data, void *tracker_data)
{ {
state_tracker_t *tracker = (state_tracker_t*)tracker_data; state_tracker_t *tracker = (state_tracker_t*)tracker_data;
cg_renderchain_t *chain = (cg_renderchain_t*)data; cg_renderchain_t *chain = (cg_renderchain_t*)data;
if (!chain)
return;
if (chain->state_tracker) if (chain->state_tracker)
state_tracker_free(chain->state_tracker); state_tracker_free(chain->state_tracker);
chain->state_tracker = tracker; chain->state_tracker = tracker;
@ -1317,16 +1321,13 @@ static void cg_d3d9_renderchain_set_vertices(
d3d_vertex_buffer_unlock(pass->vertex_buf); d3d_vertex_buffer_unlock(pass->vertex_buf);
} }
if (chain) d3d9_cg_renderchain_calc_and_set_shader_mvp(
{ chain, pass->vPrg, vp_width, vp_height, rotation);
d3d9_cg_renderchain_calc_and_set_shader_mvp( if (pass)
chain, pass->vPrg, vp_width, vp_height, rotation); d3d9_cg_renderchain_set_shader_params(chain, pass,
if (pass) width, height,
d3d9_cg_renderchain_set_shader_params(chain, pass, info->tex_w, info->tex_h,
width, height, vp_width, vp_height);
info->tex_w, info->tex_h,
vp_width, vp_height);
}
} }
static void cg_d3d9_renderchain_blit_to_texture( static void cg_d3d9_renderchain_blit_to_texture(
@ -1482,18 +1483,17 @@ static bool d3d9_cg_renderchain_render(
unsigned width, unsigned height, unsigned width, unsigned height,
unsigned pitch, unsigned rotation) unsigned pitch, unsigned rotation)
{ {
LPDIRECT3DDEVICE d3dr;
LPDIRECT3DSURFACE back_buffer, target; LPDIRECT3DSURFACE back_buffer, target;
unsigned i, current_width, current_height, out_width = 0, out_height = 0; unsigned i, current_width, current_height, out_width = 0, out_height = 0;
struct Pass *last_pass = NULL; struct Pass *last_pass = NULL;
d3d_video_t *d3d = (d3d_video_t*)data; d3d_video_t *d3d = (d3d_video_t*)data;
cg_renderchain_t *chain = d3d ? (cg_renderchain_t*)d3d->renderchain_data : NULL; cg_renderchain_t *chain = d3d ? (cg_renderchain_t*)d3d->renderchain_data : NULL;
LPDIRECT3DDEVICE d3dr = chain ? (LPDIRECT3DDEVICE)chain->dev : NULL;
if (chain) if (!chain)
{ return false;
d3dr = (LPDIRECT3DDEVICE)chain->dev;
d3d9_cg_renderchain_start_render(chain); d3d9_cg_renderchain_start_render(chain);
}
current_width = width; current_width = width;
current_height = height; current_height = height;
@ -1534,16 +1534,14 @@ static bool d3d9_cg_renderchain_render(
viewport.Width = out_width; viewport.Width = out_width;
viewport.Height = out_height; viewport.Height = out_height;
if (chain) d3d_set_viewports(chain->dev, &viewport);
d3d_set_viewports(chain->dev, &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,
out_width, out_height, out_width, out_height,
out_width, out_height, 0); out_width, out_height, 0);
if (chain) cg_d3d9_renderchain_render_pass(chain, from_pass, i + 1);
cg_d3d9_renderchain_render_pass(chain, from_pass, i + 1);
current_width = out_width; current_width = out_width;
current_height = out_height; current_height = out_height;
@ -1560,8 +1558,7 @@ static bool d3d9_cg_renderchain_render(
&out_width, &out_height, &out_width, &out_height,
current_width, current_height, chain->final_viewport); current_width, current_height, chain->final_viewport);
if (chain) d3d_set_viewports(chain->dev, chain->final_viewport);
d3d_set_viewports(chain->dev, 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,
@ -1569,23 +1566,19 @@ static bool d3d9_cg_renderchain_render(
chain->final_viewport->Width, chain->final_viewport->Height, chain->final_viewport->Width, chain->final_viewport->Height,
rotation); rotation);
if (chain) cg_d3d9_renderchain_render_pass(chain,
cg_d3d9_renderchain_render_pass(chain, last_pass, chain->passes->count);
last_pass, chain->passes->count);
chain->frame_count++; chain->frame_count++;
d3d_surface_free(back_buffer); d3d_surface_free(back_buffer);
if (chain) d3d9_cg_renderchain_end_render(chain);
{ cgD3D9BindProgram(chain->fStock);
d3d9_cg_renderchain_end_render(chain); cgD3D9BindProgram(chain->vStock);
cgD3D9BindProgram(chain->fStock); d3d9_cg_renderchain_calc_and_set_shader_mvp(
cgD3D9BindProgram(chain->vStock); chain, chain->vStock, chain->final_viewport->Width,
d3d9_cg_renderchain_calc_and_set_shader_mvp( chain->final_viewport->Height, 0);
chain, chain->vStock, chain->final_viewport->Width,
chain->final_viewport->Height, 0);
}
return true; return true;
} }