mirror of
https://github.com/FunkyFr3sh/cnc-ddraw.git
synced 2025-03-24 17:49:52 +01:00
use fancy macros
This commit is contained in:
parent
6b8208ad85
commit
9811f310bc
@ -6,6 +6,6 @@ DWORD WINAPI render_d3d9_main(void);
|
|||||||
BOOL Direct3D9_Create();
|
BOOL Direct3D9_Create();
|
||||||
BOOL Direct3D9_Reset();
|
BOOL Direct3D9_Reset();
|
||||||
BOOL Direct3D9_Release();
|
BOOL Direct3D9_Release();
|
||||||
BOOL Direct3D9_DeviceLost();
|
BOOL Direct3D9_OnDeviceLost();
|
||||||
|
|
||||||
extern HMODULE Direct3D9_hModule;
|
extern HMODULE Direct3D9_hModule;
|
||||||
|
@ -704,7 +704,7 @@ LRESULT CALLBACK WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
|
|||||||
{
|
{
|
||||||
case WM_D3D9DEVICELOST:
|
case WM_D3D9DEVICELOST:
|
||||||
{
|
{
|
||||||
if (Direct3D9Active && Direct3D9_DeviceLost())
|
if (Direct3D9Active && Direct3D9_OnDeviceLost())
|
||||||
{
|
{
|
||||||
if (!ddraw->windowed)
|
if (!ddraw->windowed)
|
||||||
mouse_lock();
|
mouse_lock();
|
||||||
|
@ -66,7 +66,7 @@ BOOL Direct3D9_Create()
|
|||||||
for (i = 0; i < sizeof(behaviorFlags) / sizeof(behaviorFlags[0]); i++)
|
for (i = 0; i < sizeof(behaviorFlags) / sizeof(behaviorFlags[0]); i++)
|
||||||
{
|
{
|
||||||
if (SUCCEEDED(
|
if (SUCCEEDED(
|
||||||
D3d->lpVtbl->CreateDevice(
|
IDirect3D9_CreateDevice(
|
||||||
D3d,
|
D3d,
|
||||||
D3DADAPTER_DEFAULT,
|
D3DADAPTER_DEFAULT,
|
||||||
D3DDEVTYPE_HAL,
|
D3DDEVTYPE_HAL,
|
||||||
@ -82,9 +82,9 @@ BOOL Direct3D9_Create()
|
|||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
BOOL Direct3D9_DeviceLost()
|
BOOL Direct3D9_OnDeviceLost()
|
||||||
{
|
{
|
||||||
if (D3dDev && D3dDev->lpVtbl->TestCooperativeLevel(D3dDev) == D3DERR_DEVICENOTRESET)
|
if (D3dDev && IDirect3DDevice9_TestCooperativeLevel(D3dDev) == D3DERR_DEVICENOTRESET)
|
||||||
return Direct3D9_Reset();
|
return Direct3D9_Reset();
|
||||||
|
|
||||||
return FALSE;
|
return FALSE;
|
||||||
@ -97,7 +97,7 @@ BOOL Direct3D9_Reset()
|
|||||||
D3dpp.BackBufferHeight = D3dpp.Windowed ? 0 : ddraw->render.height;
|
D3dpp.BackBufferHeight = D3dpp.Windowed ? 0 : ddraw->render.height;
|
||||||
D3dpp.BackBufferFormat = BitsPerPixel == 16 ? D3DFMT_R5G6B5 : D3DFMT_X8R8G8B8;
|
D3dpp.BackBufferFormat = BitsPerPixel == 16 ? D3DFMT_R5G6B5 : D3DFMT_X8R8G8B8;
|
||||||
|
|
||||||
if (D3dDev && SUCCEEDED(D3dDev->lpVtbl->Reset(D3dDev, &D3dpp)))
|
if (D3dDev && SUCCEEDED(IDirect3DDevice9_Reset(D3dDev, &D3dpp)))
|
||||||
return SetStates();
|
return SetStates();
|
||||||
|
|
||||||
return FALSE;
|
return FALSE;
|
||||||
@ -107,41 +107,41 @@ BOOL Direct3D9_Release()
|
|||||||
{
|
{
|
||||||
if (VertexBuf)
|
if (VertexBuf)
|
||||||
{
|
{
|
||||||
VertexBuf->lpVtbl->Release(VertexBuf);
|
IDirect3DVertexBuffer9_Release(VertexBuf);
|
||||||
VertexBuf = NULL;
|
VertexBuf = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
int i;
|
int i;
|
||||||
for (i = 0; i < TEXTURE_COUNT; i++)
|
for (i = 0; i < TEXTURE_COUNT; i++)
|
||||||
{
|
{
|
||||||
if (SurfaceTex[i])
|
if (SurfaceTex[i])
|
||||||
{
|
{
|
||||||
SurfaceTex[i]->lpVtbl->Release(SurfaceTex[i]);
|
IDirect3DTexture9_Release(SurfaceTex[i]);
|
||||||
SurfaceTex[i] = NULL;
|
SurfaceTex[i] = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (PaletteTex[i])
|
if (PaletteTex[i])
|
||||||
{
|
{
|
||||||
PaletteTex[i]->lpVtbl->Release(PaletteTex[i]);
|
IDirect3DTexture9_Release(PaletteTex[i]);
|
||||||
PaletteTex[i] = NULL;
|
PaletteTex[i] = NULL;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (PixelShader)
|
if (PixelShader)
|
||||||
{
|
{
|
||||||
PixelShader->lpVtbl->Release(PixelShader);
|
IDirect3DPixelShader9_Release(PixelShader);
|
||||||
PixelShader = NULL;
|
PixelShader = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (D3dDev)
|
if (D3dDev)
|
||||||
{
|
{
|
||||||
D3dDev->lpVtbl->Release(D3dDev);
|
IDirect3DDevice9_Release(D3dDev);
|
||||||
D3dDev = NULL;
|
D3dDev = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (D3d)
|
if (D3d)
|
||||||
{
|
{
|
||||||
D3d->lpVtbl->Release(D3d);
|
IDirect3D9_Release(D3d);
|
||||||
D3d = NULL;
|
D3d = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -167,7 +167,7 @@ static BOOL CreateResources()
|
|||||||
ScaleH = (float)height / texHeight;
|
ScaleH = (float)height / texHeight;
|
||||||
|
|
||||||
err = err || FAILED(
|
err = err || FAILED(
|
||||||
D3dDev->lpVtbl->CreateVertexBuffer(
|
IDirect3DDevice9_CreateVertexBuffer(
|
||||||
D3dDev, sizeof(CUSTOMVERTEX) * 4, 0, D3DFVF_XYZRHW | D3DFVF_TEX1, D3DPOOL_MANAGED, &VertexBuf, NULL));
|
D3dDev, sizeof(CUSTOMVERTEX) * 4, 0, D3DFVF_XYZRHW | D3DFVF_TEX1, D3DPOOL_MANAGED, &VertexBuf, NULL));
|
||||||
|
|
||||||
err = err || !UpdateVertices(InterlockedExchangeAdd(&ddraw->incutscene, 0));
|
err = err || !UpdateVertices(InterlockedExchangeAdd(&ddraw->incutscene, 0));
|
||||||
@ -176,18 +176,18 @@ static BOOL CreateResources()
|
|||||||
for (i = 0; i < TEXTURE_COUNT; i++)
|
for (i = 0; i < TEXTURE_COUNT; i++)
|
||||||
{
|
{
|
||||||
err = err || FAILED(
|
err = err || FAILED(
|
||||||
D3dDev->lpVtbl->CreateTexture(D3dDev, texWidth, texHeight, 1, 0, D3DFMT_L8, D3DPOOL_MANAGED, &SurfaceTex[i], 0));
|
IDirect3DDevice9_CreateTexture(D3dDev, texWidth, texHeight, 1, 0, D3DFMT_L8, D3DPOOL_MANAGED, &SurfaceTex[i], 0));
|
||||||
|
|
||||||
err = err || !SurfaceTex[i];
|
err = err || !SurfaceTex[i];
|
||||||
|
|
||||||
err = err || FAILED(
|
err = err || FAILED(
|
||||||
D3dDev->lpVtbl->CreateTexture(D3dDev, 256, 256, 1, 0, D3DFMT_X8R8G8B8, D3DPOOL_MANAGED, &PaletteTex[i], 0));
|
IDirect3DDevice9_CreateTexture(D3dDev, 256, 256, 1, 0, D3DFMT_X8R8G8B8, D3DPOOL_MANAGED, &PaletteTex[i], 0));
|
||||||
|
|
||||||
err = err || !PaletteTex[i];
|
err = err || !PaletteTex[i];
|
||||||
}
|
}
|
||||||
|
|
||||||
err = err || FAILED(
|
err = err || FAILED(
|
||||||
D3dDev->lpVtbl->CreatePixelShader(D3dDev, (DWORD *)PalettePixelShaderSrc, &PixelShader));
|
IDirect3DDevice9_CreatePixelShader(D3dDev, (DWORD *)PalettePixelShaderSrc, &PixelShader));
|
||||||
|
|
||||||
return VertexBuf && PixelShader && !err;
|
return VertexBuf && PixelShader && !err;
|
||||||
}
|
}
|
||||||
@ -196,11 +196,11 @@ static BOOL SetStates()
|
|||||||
{
|
{
|
||||||
BOOL err = FALSE;
|
BOOL err = FALSE;
|
||||||
|
|
||||||
err = err || FAILED(D3dDev->lpVtbl->SetFVF(D3dDev, D3DFVF_XYZRHW | D3DFVF_TEX1));
|
err = err || FAILED(IDirect3DDevice9_SetFVF(D3dDev, D3DFVF_XYZRHW | D3DFVF_TEX1));
|
||||||
err = err || FAILED(D3dDev->lpVtbl->SetStreamSource(D3dDev, 0, VertexBuf, 0, sizeof(CUSTOMVERTEX)));
|
err = err || FAILED(IDirect3DDevice9_SetStreamSource(D3dDev, 0, VertexBuf, 0, sizeof(CUSTOMVERTEX)));
|
||||||
err = err || FAILED(D3dDev->lpVtbl->SetTexture(D3dDev, 0, (IDirect3DBaseTexture9 *)SurfaceTex[0]));
|
err = err || FAILED(IDirect3DDevice9_SetTexture(D3dDev, 0, (IDirect3DBaseTexture9 *)SurfaceTex[0]));
|
||||||
err = err || FAILED(D3dDev->lpVtbl->SetTexture(D3dDev, 1, (IDirect3DBaseTexture9 *)PaletteTex[0]));
|
err = err || FAILED(IDirect3DDevice9_SetTexture(D3dDev, 1, (IDirect3DBaseTexture9 *)PaletteTex[0]));
|
||||||
err = err || FAILED(D3dDev->lpVtbl->SetPixelShader(D3dDev, PixelShader));
|
err = err || FAILED(IDirect3DDevice9_SetPixelShader(D3dDev, PixelShader));
|
||||||
|
|
||||||
D3DVIEWPORT9 viewData = {
|
D3DVIEWPORT9 viewData = {
|
||||||
ddraw->render.viewport.x,
|
ddraw->render.viewport.x,
|
||||||
@ -210,7 +210,7 @@ static BOOL SetStates()
|
|||||||
0.0f,
|
0.0f,
|
||||||
1.0f };
|
1.0f };
|
||||||
|
|
||||||
err = err || FAILED(D3dDev->lpVtbl->SetViewport(D3dDev, &viewData));
|
err = err || FAILED(IDirect3DDevice9_SetViewport(D3dDev, &viewData));
|
||||||
|
|
||||||
return !err;
|
return !err;
|
||||||
}
|
}
|
||||||
@ -235,11 +235,11 @@ static BOOL UpdateVertices(BOOL inCutscene)
|
|||||||
};
|
};
|
||||||
|
|
||||||
void *data;
|
void *data;
|
||||||
if (VertexBuf && SUCCEEDED(VertexBuf->lpVtbl->Lock(VertexBuf, 0, 0, (void**)&data, 0)))
|
if (VertexBuf && SUCCEEDED(IDirect3DVertexBuffer9_Lock(VertexBuf, 0, 0, (void**)&data, 0)))
|
||||||
{
|
{
|
||||||
memcpy(data, vertices, sizeof(vertices));
|
memcpy(data, vertices, sizeof(vertices));
|
||||||
|
|
||||||
VertexBuf->lpVtbl->Unlock(VertexBuf);
|
IDirect3DVertexBuffer9_Unlock(VertexBuf);
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -313,8 +313,8 @@ DWORD WINAPI render_d3d9_main(void)
|
|||||||
|
|
||||||
RECT rc = { 0,0,ddraw->width,ddraw->height };
|
RECT rc = { 0,0,ddraw->width,ddraw->height };
|
||||||
|
|
||||||
if (SUCCEEDED(D3dDev->lpVtbl->SetTexture(D3dDev, 0, (IDirect3DBaseTexture9 *)SurfaceTex[texIndex])) &&
|
if (SUCCEEDED(IDirect3DDevice9_SetTexture(D3dDev, 0, (IDirect3DBaseTexture9 *)SurfaceTex[texIndex])) &&
|
||||||
SUCCEEDED(SurfaceTex[texIndex]->lpVtbl->LockRect(SurfaceTex[texIndex], 0, &lock_rc, &rc, 0)))
|
SUCCEEDED(IDirect3DTexture9_LockRect(SurfaceTex[texIndex], 0, &lock_rc, &rc, 0)))
|
||||||
{
|
{
|
||||||
unsigned char *src = (unsigned char *)ddraw->primary->surface;
|
unsigned char *src = (unsigned char *)ddraw->primary->surface;
|
||||||
unsigned char *dst = (unsigned char *)lock_rc.pBits;
|
unsigned char *dst = (unsigned char *)lock_rc.pBits;
|
||||||
@ -328,7 +328,7 @@ DWORD WINAPI render_d3d9_main(void)
|
|||||||
dst += lock_rc.Pitch;
|
dst += lock_rc.Pitch;
|
||||||
}
|
}
|
||||||
|
|
||||||
SurfaceTex[texIndex]->lpVtbl->UnlockRect(SurfaceTex[texIndex], 0);
|
IDirect3DTexture9_UnlockRect(SurfaceTex[texIndex], 0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -339,23 +339,23 @@ DWORD WINAPI render_d3d9_main(void)
|
|||||||
|
|
||||||
RECT rc = { 0,0,256,1 };
|
RECT rc = { 0,0,256,1 };
|
||||||
|
|
||||||
if (SUCCEEDED(D3dDev->lpVtbl->SetTexture(D3dDev, 1, (IDirect3DBaseTexture9 *)PaletteTex[palIndex])) &&
|
if (SUCCEEDED(IDirect3DDevice9_SetTexture(D3dDev, 1, (IDirect3DBaseTexture9 *)PaletteTex[palIndex])) &&
|
||||||
SUCCEEDED(PaletteTex[palIndex]->lpVtbl->LockRect(PaletteTex[palIndex], 0, &lock_rc, &rc, 0)))
|
SUCCEEDED(IDirect3DTexture9_LockRect(PaletteTex[palIndex], 0, &lock_rc, &rc, 0)))
|
||||||
{
|
{
|
||||||
memcpy(lock_rc.pBits, ddraw->primary->palette->data_rgb, 256 * sizeof(int));
|
memcpy(lock_rc.pBits, ddraw->primary->palette->data_rgb, 256 * sizeof(int));
|
||||||
|
|
||||||
PaletteTex[palIndex]->lpVtbl->UnlockRect(PaletteTex[palIndex], 0);
|
IDirect3DTexture9_UnlockRect(PaletteTex[palIndex], 0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
LeaveCriticalSection(&ddraw->cs);
|
LeaveCriticalSection(&ddraw->cs);
|
||||||
|
|
||||||
D3dDev->lpVtbl->BeginScene(D3dDev);
|
IDirect3DDevice9_BeginScene(D3dDev);
|
||||||
D3dDev->lpVtbl->DrawPrimitive(D3dDev, D3DPT_TRIANGLESTRIP, 0, 2);
|
IDirect3DDevice9_DrawPrimitive(D3dDev, D3DPT_TRIANGLESTRIP, 0, 2);
|
||||||
D3dDev->lpVtbl->EndScene(D3dDev);
|
IDirect3DDevice9_EndScene(D3dDev);
|
||||||
|
|
||||||
if (D3dDev->lpVtbl->Present(D3dDev, NULL, NULL, NULL, NULL) == D3DERR_DEVICELOST)
|
if (IDirect3DDevice9_Present(D3dDev, NULL, NULL, NULL, NULL) == D3DERR_DEVICELOST)
|
||||||
{
|
{
|
||||||
DWORD_PTR dwResult;
|
DWORD_PTR dwResult;
|
||||||
SendMessageTimeout(ddraw->hWnd, WM_D3D9DEVICELOST, 0, 0, 0, 1000, &dwResult);
|
SendMessageTimeout(ddraw->hWnd, WM_D3D9DEVICELOST, 0, 0, 0, 1000, &dwResult);
|
||||||
|
@ -101,7 +101,7 @@ void Settings_Load()
|
|||||||
(IDirect3D9 *(WINAPI *)(UINT))GetProcAddress(Direct3D9_hModule, "Direct3DCreate9");
|
(IDirect3D9 *(WINAPI *)(UINT))GetProcAddress(Direct3D9_hModule, "Direct3DCreate9");
|
||||||
|
|
||||||
if (D3DCreate9 && (d3d = D3DCreate9(D3D_SDK_VERSION)))
|
if (D3DCreate9 && (d3d = D3DCreate9(D3D_SDK_VERSION)))
|
||||||
d3d->lpVtbl->Release(d3d);
|
IDirect3D9_Release(d3d);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (d3d)
|
if (d3d)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user