(D3D8) More buildfixes

This commit is contained in:
libretroadmin 2022-05-15 07:25:12 +02:00
parent 77fd75dd06
commit c2ae445a85
2 changed files with 53 additions and 49 deletions

View File

@ -1588,6 +1588,10 @@ static void d3d8_set_menu_texture_frame(void *data,
{
D3DLOCKED_RECT d3dlr;
d3d8_video_t *d3d = (d3d8_video_t*)data;
if (!d3d || !d3d->menu)
return;
if ( !d3d->menu->tex ||
d3d->menu->tex_w != width ||
d3d->menu->tex_h != height)
@ -1614,7 +1618,9 @@ static void d3d8_set_menu_texture_frame(void *data,
d3d->menu->alpha_mod = alpha;
if (IDirect3DTexture8_LockRect(d3d->menu->tex,
{
LPDIRECT3DTEXTURE8 tex = d3d->menu->tex;
if (IDirect3DTexture8_LockRect(tex,
0, &d3dlr, NULL, D3DLOCK_NOSYSLOCK) == D3D_OK)
{
unsigned h, w;
@ -1654,10 +1660,6 @@ static void d3d8_set_menu_texture_frame(void *data,
}
}
if (d3d->menu)
{
LPDIRECT3DTEXTURE8 tex = d3d->menu->tex;
if (tex)
IDirect3DTexture8_UnlockRect(tex, 0);
}
}

View File

@ -114,6 +114,7 @@ static void gfx_display_d3d8_draw(gfx_display_ctx_draw_t *draw,
};
unsigned i;
math_matrix_4x4 mop, m1, m2;
LPDIRECT3DVERTEXBUFFER8 vbo;
LPDIRECT3DDEVICE8 dev;
D3DPRIMITIVETYPE type;
unsigned start = 0;
@ -129,9 +130,9 @@ static void gfx_display_d3d8_draw(gfx_display_ctx_draw_t *draw,
if ((d3d->menu_display.offset + draw->coords->vertices )
> (unsigned)d3d->menu_display.size)
return;
vbo = (LPDIRECT3DVERTEXBUFFER8)d3d->menu_display.buffer;
dev = d3d->dev;
pv = (Vertex*)
d3d8_vertex_buffer_lock(d3d->menu_display.buffer);
pv = (Vertex*)d3d8_vertex_buffer_lock(vbo);
if (!pv)
return;
@ -164,8 +165,9 @@ static void gfx_display_d3d8_draw(gfx_display_ctx_draw_t *draw,
if ((void*)draw->texture)
{
D3DSURFACE_DESC desc;
if (SUCCEEDED(IDirect3DTexture8_GetLevelDesc(
(void*)draw->texture, 0, (D3DSURFACE_DESC*)&desc)))
LPDIRECT3DTEXTURE8 tex = (LPDIRECT3DTEXTURE8)draw->texture;
if (SUCCEEDED(IDirect3DTexture8_GetLevelDesc(tex,
0, (D3DSURFACE_DESC*)&desc)))
{
pv[i].u *= desc.Width;
pv[i].v *= desc.Height;
@ -180,7 +182,7 @@ static void gfx_display_d3d8_draw(gfx_display_ctx_draw_t *draw,
colors[2] /* B */
);
}
IDirect3DVertexBuffer8_Unlock(d3d->menu_display.buffer);
IDirect3DVertexBuffer8_Unlock(vbo);
if (!draw->matrix_data)
draw->matrix_data = &default_mvp;