(D3D9) Cleanups

This commit is contained in:
twinaphex 2022-04-22 14:37:21 +02:00
parent 7f0cf651f1
commit afb04b419b
5 changed files with 25 additions and 22 deletions

View File

@ -1110,7 +1110,9 @@ void d3d9_overlay_render(d3d9_video_t *d3d,
D3DTADDRESS_BORDER);
IDirect3DDevice9_SetSamplerState(dev,0,D3DSAMP_MINFILTER, filter_type);
IDirect3DDevice9_SetSamplerState(dev,0,D3DSAMP_MAGFILTER, filter_type);
d3d9_draw_primitive(dev, D3DPT_TRIANGLESTRIP, 0, 2);
IDirect3DDevice9_BeginScene(dev);
IDirect3DDevice9_DrawPrimitive(dev, D3DPT_TRIANGLESTRIP, 0, 2);
IDirect3DDevice9_EndScene(dev);
/* Restore previous state. */
IDirect3DDevice9_SetRenderState(dev, D3DRS_ALPHABLENDENABLE, false);

View File

@ -149,16 +149,6 @@ static INLINE void d3d9_set_stream_source(
stride);
}
static INLINE void d3d9_draw_primitive(
LPDIRECT3DDEVICE9 dev,
D3DPRIMITIVETYPE type,
unsigned start, unsigned count)
{
IDirect3DDevice9_BeginScene(dev);
IDirect3DDevice9_DrawPrimitive(dev, type, start, count);
IDirect3DDevice9_EndScene(dev);
}
static INLINE bool d3d9_lock_rectangle(
LPDIRECT3DTEXTURE9 tex,
unsigned level,

View File

@ -1098,7 +1098,9 @@ static void d3d9_cg_renderchain_render_pass(
if (pass_index >= 3)
d3d9_cg_renderchain_bind_pass(chain, chain->dev, pass, pass_index);
d3d9_draw_primitive(chain->dev, D3DPT_TRIANGLESTRIP, 0, 2);
IDirect3DDevice9_BeginScene(chain->dev);
IDirect3DDevice9_DrawPrimitive(chain->dev, D3DPT_TRIANGLESTRIP, 0, 2);
IDirect3DDevice9_EndScene(chain->dev);
/* So we don't render with linear filter into render targets,
* which apparently looked odd (too blurry). */

View File

@ -127,6 +127,9 @@ static void gfx_display_d3d9_cg_draw(gfx_display_ctx_draw_t *draw,
unsigned i;
math_matrix_4x4 mop, m1, m2;
LPDIRECT3DDEVICE9 dev;
D3DPRIMITIVETYPE type;
unsigned start = 0;
unsigned count = 0;
d3d9_video_t *d3d = (d3d9_video_t*)data;
Vertex * pv = NULL;
const float *vertex = NULL;
@ -211,12 +214,15 @@ static void gfx_display_d3d9_cg_draw(gfx_display_ctx_draw_t *draw,
if (draw && draw->texture)
gfx_display_d3d9_cg_bind_texture(draw, d3d);
d3d9_draw_primitive(dev,
(D3DPRIMITIVETYPE)gfx_display_prim_to_d3d9_cg_enum(draw->prim_type),
d3d->menu_display.offset,
draw->coords->vertices -
type = (D3DPRIMITIVETYPE)gfx_display_prim_to_d3d9_cg_enum(draw->prim_type);
start = d3d->menu_display.offset;
count = draw->coords->vertices -
((draw->prim_type == GFX_DISPLAY_PRIM_TRIANGLESTRIP)
? 2 : 0));
? 2 : 0);
IDirect3DDevice9_BeginScene(dev);
IDirect3DDevice9_DrawPrimitive(dev, type, start, count);
IDirect3DDevice9_EndScene(dev);
d3d->menu_display.offset += draw->coords->vertices;
}

View File

@ -211,12 +211,15 @@ static void gfx_display_d3d9_hlsl_draw(gfx_display_ctx_draw_t *draw,
if (draw && draw->texture)
gfx_display_d3d9_bind_texture(draw, d3d);
d3d9_draw_primitive(dev,
(D3DPRIMITIVETYPE)gfx_display_prim_to_d3d9_enum(draw->prim_type),
d3d->menu_display.offset,
draw->coords->vertices -
type = (D3DPRIMITIVETYPE)gfx_display_prim_to_d3d9_cg_enum(draw->prim_type);
start = d3d->menu_display.offset;
count = draw->coords->vertices -
((draw->prim_type == GFX_DISPLAY_PRIM_TRIANGLESTRIP)
? 2 : 0));
? 2 : 0);
IDirect3DDevice9_BeginScene(dev);
IDirect3DDevice9_DrawPrimitive(dev, type, start, count);
IDirect3DDevice9_EndScene(dev);
d3d->menu_display.offset += draw->coords->vertices;
}