mirror of
https://github.com/FunkyFr3sh/cnc-ddraw.git
synced 2025-03-24 17:49:52 +01:00
add fallback solution for rgb555 texture format issues
This commit is contained in:
parent
4da01c3683
commit
5fc3764253
2
src/dd.c
2
src/dd.c
@ -1441,7 +1441,7 @@ HRESULT dd_CreateEx(GUID* lpGuid, LPVOID* lplpDD, REFIID iid, IUnknown* pUnkOute
|
|||||||
TRACE(" proc_affinity=%08X, system_affinity=%08X\n", proc_affinity, system_affinity);
|
TRACE(" proc_affinity=%08X, system_affinity=%08X\n", proc_affinity, system_affinity);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
if (_strcmpi(g_config.renderer, "direct3d9on12") == 0)
|
if (_strcmpi(g_config.renderer, "direct3d9on12") == 0)
|
||||||
{
|
{
|
||||||
g_ddraw->d3d9on12 = TRUE;
|
g_ddraw->d3d9on12 = TRUE;
|
||||||
|
@ -275,17 +275,49 @@ static BOOL d3d9_create_resources()
|
|||||||
|
|
||||||
for (int i = 0; i < D3D9_TEXTURE_COUNT; i++)
|
for (int i = 0; i < D3D9_TEXTURE_COUNT; i++)
|
||||||
{
|
{
|
||||||
err = err || FAILED(
|
if (g_ddraw->bpp == 16 && g_config.rgb555)
|
||||||
IDirect3DDevice9_CreateTexture(
|
{
|
||||||
g_d3d9.device,
|
BOOL error = FAILED(
|
||||||
g_d3d9.tex_width,
|
IDirect3DDevice9_CreateTexture(
|
||||||
g_d3d9.tex_height,
|
g_d3d9.device,
|
||||||
1,
|
g_d3d9.tex_width,
|
||||||
0,
|
g_d3d9.tex_height,
|
||||||
g_ddraw->bpp == 16 ? (g_config.rgb555 ? D3DFMT_X1R5G5B5 : D3DFMT_R5G6B5) : g_ddraw->bpp == 32 ? D3DFMT_X8R8G8B8 : D3DFMT_L8,
|
1,
|
||||||
D3DPOOL_MANAGED,
|
0,
|
||||||
&g_d3d9.surface_tex[i],
|
D3DFMT_X1R5G5B5,
|
||||||
0));
|
D3DPOOL_MANAGED,
|
||||||
|
&g_d3d9.surface_tex[i],
|
||||||
|
0));
|
||||||
|
|
||||||
|
if (error)
|
||||||
|
{
|
||||||
|
err = err || FAILED(
|
||||||
|
IDirect3DDevice9_CreateTexture(
|
||||||
|
g_d3d9.device,
|
||||||
|
g_d3d9.tex_width,
|
||||||
|
g_d3d9.tex_height,
|
||||||
|
1,
|
||||||
|
0,
|
||||||
|
D3DFMT_A1R5G5B5,
|
||||||
|
D3DPOOL_MANAGED,
|
||||||
|
&g_d3d9.surface_tex[i],
|
||||||
|
0));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
err = err || FAILED(
|
||||||
|
IDirect3DDevice9_CreateTexture(
|
||||||
|
g_d3d9.device,
|
||||||
|
g_d3d9.tex_width,
|
||||||
|
g_d3d9.tex_height,
|
||||||
|
1,
|
||||||
|
0,
|
||||||
|
g_ddraw->bpp == 16 ? D3DFMT_R5G6B5 : g_ddraw->bpp == 32 ? D3DFMT_X8R8G8B8 : D3DFMT_L8,
|
||||||
|
D3DPOOL_MANAGED,
|
||||||
|
&g_d3d9.surface_tex[i],
|
||||||
|
0));
|
||||||
|
}
|
||||||
|
|
||||||
err = err || !g_d3d9.surface_tex[i];
|
err = err || !g_d3d9.surface_tex[i];
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user