mirror of
https://github.com/libretro/RetroArch
synced 2025-03-31 19:21:06 +00:00
Create d3d_set_render_state
This commit is contained in:
parent
cb5d4b0569
commit
823e2db596
@ -418,6 +418,18 @@ void d3d_texture_blit(unsigned pixel_size,
|
||||
#endif
|
||||
}
|
||||
|
||||
void d3d_set_render_state(void *data, D3DRENDERSTATETYPE state, DWORD value)
|
||||
{
|
||||
LPDIRECT3DDEVICE dev = (LPDIRECT3DDEVICE)data;
|
||||
|
||||
if (!dev)
|
||||
return;
|
||||
if (!d3d_restore_device(dev))
|
||||
return;
|
||||
|
||||
dev->SetRenderState(state, value);
|
||||
}
|
||||
|
||||
void d3d_enable_blend_func(void *data)
|
||||
{
|
||||
LPDIRECT3DDEVICE dev = (LPDIRECT3DDEVICE)data;
|
||||
@ -427,9 +439,9 @@ void d3d_enable_blend_func(void *data)
|
||||
if (!d3d_restore_device(dev))
|
||||
return;
|
||||
|
||||
dev->SetRenderState(D3DRS_SRCBLEND, D3DBLEND_SRCALPHA);
|
||||
dev->SetRenderState(D3DRS_DESTBLEND, D3DBLEND_INVSRCALPHA);
|
||||
dev->SetRenderState(D3DRS_ALPHABLENDENABLE, true);
|
||||
d3d_render_state(dev, D3DRS_SRCBLEND, D3DBLEND_SRCALPHA);
|
||||
d3d_render_state(dev, D3DRS_DESTBLEND, D3DBLEND_INVSRCALPHA);
|
||||
d3d_render_state(dev, D3DRS_ALPHABLENDENABLE, true);
|
||||
}
|
||||
|
||||
void d3d_enable_alpha_blend_texture_func(void *data)
|
||||
@ -474,7 +486,7 @@ void d3d_disable_blend_func(void *data)
|
||||
if (!d3d_restore_device(dev))
|
||||
return;
|
||||
|
||||
dev->SetRenderState(D3DRS_ALPHABLENDENABLE, false);
|
||||
d3d_render_state(dev, D3DRS_ALPHABLENDENABLE, false);
|
||||
}
|
||||
|
||||
void d3d_set_vertex_declaration(void *data, void *vertex_data)
|
||||
|
@ -105,6 +105,8 @@ void d3d_enable_alpha_blend_texture_func(void *data);
|
||||
|
||||
void d3d_frame_postprocess(void *data);
|
||||
|
||||
void d3d_set_render_state(void *data, D3DRENDERSTATETYPE state, DWORD value);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
@ -115,10 +115,10 @@ static bool renderchain_create_first_pass(void *data,
|
||||
d3d_set_sampler_address_u(d3dr, D3DSAMP_ADDRESSU, D3DTADDRESS_BORDER);
|
||||
d3d_set_sampler_address_v(d3dr, D3DSAMP_ADDRESSV, D3DTADDRESS_BORDER);
|
||||
#ifdef _XBOX1
|
||||
d3dr->SetRenderState(D3DRS_LIGHTING, FALSE);
|
||||
d3d_set_render_state(d3dr, D3DRS_LIGHTING, 0);
|
||||
#endif
|
||||
d3dr->SetRenderState(D3DRS_CULLMODE, D3DCULL_NONE);
|
||||
d3dr->SetRenderState(D3DRS_ZENABLE, FALSE);
|
||||
d3d_set_render_state(d3dr, D3DRS_CULLMODE, D3DCULL_NONE);
|
||||
d3d_set_render_state(d3dr, D3DRS_ZENABLE, FALSE);
|
||||
|
||||
if (!xdk_renderchain_init_shader_fvf(chain, chain))
|
||||
return false;
|
||||
|
@ -309,11 +309,10 @@ static void gfx_ctx_d3d_swap_interval(void *data, unsigned interval)
|
||||
{
|
||||
d3d_video_t *d3d = (d3d_video_t*)data;
|
||||
#ifdef _XBOX
|
||||
LPDIRECT3DDEVICE d3dr = (LPDIRECT3DDEVICE)d3d->dev;
|
||||
unsigned d3d_interval = interval ?
|
||||
D3DPRESENT_INTERVAL_ONE : D3DPRESENT_INTERVAL_IMMEDIATE;
|
||||
|
||||
d3dr->SetRenderState(XBOX_PRESENTATIONINTERVAL, d3d_interval);
|
||||
d3d_render_state(d3d->dev, XBOX_PRESENTATIONINTERVAL, d3d_interval);
|
||||
#else
|
||||
d3d_restore(d3d);
|
||||
#endif
|
||||
|
Loading…
x
Reference in New Issue
Block a user