aboutsummaryrefslogtreecommitdiff
path: root/sword2/driver/d_draw.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'sword2/driver/d_draw.cpp')
-rw-r--r--sword2/driver/d_draw.cpp739
1 files changed, 15 insertions, 724 deletions
diff --git a/sword2/driver/d_draw.cpp b/sword2/driver/d_draw.cpp
index 0c4891e427..d62697ce62 100644
--- a/sword2/driver/d_draw.cpp
+++ b/sword2/driver/d_draw.cpp
@@ -17,15 +17,7 @@
* $Header$
*/
-#define WIN32_LEAN_AND_MEAN
-
-//#include <windows.h>
-//#include <windowsx.h>
-//#include <mmsystem.h>
#include <stdio.h>
-
-//#include "ddraw.h"
-
#include "stdafx.h"
#include "driver96.h"
#include "rdwin.h"
@@ -33,32 +25,16 @@
#include "d_draw.h"
#include "palette.h"
-//#include "ddutil.h"
-//CDisplay *g_pDisplay = NULL;
-
-
-
-
-
#define SCREENYOFFSET 40
-
#define MILLISECSPERCYCLE 83
-
-// Surface *lpPrimarySurface;
Surface *lpBackBuffer;
/*
-LPDIRECTDRAW7 m_pDD;
-
-
static LPDIRECTDRAW lpDraw; // DirectDraw object
LPDIRECTDRAW2 lpDD2; // DirectDraw2 object
-LPDIRECTDRAWSURFACE lpPrimarySurface; // DirectDraw primary surface
LPDIRECTDRAWSURFACE lpBackBuffer; // DirectDraw back surface
LPDIRECTDRAWPALETTE lpPalette = NULL; // DirectDraw palette
-
-static PALETTEENTRY AppPalette[256]; // Application wide logical palette
*/
@@ -91,37 +67,14 @@ int32 dxHalCaps = 0;
int32 dxHelCaps = 0;
//DDCOLORKEY blackColorKey;
-
-//static int32 platformIsNT = 0;
-
-
-//----------------------------------------------------------------------------------------------------------------
-//----------------------------------------------------------------------------------------------------------------
-
-
-void FatalDirectDrawError(char *str, int32 code, char *filename, int32 line)
-{
-
+void FatalDirectDrawError(char *str, int32 code, char *filename, int32 line) {
char string[256];
- RestoreDisplay();
-
sprintf(string, "FATAL: %s - code 0x%.8x - file %s - line %d", str, code, filename, line);
- //MessageBox(hwnd, string, "DDraw error", MB_OK);
warning("%s", string);
-
}
-
-
-
-//----------------------------------------------------------------------------------------------------------------
-
-
-
-int32 PlotDots(int16 x, int16 y, int16 count)
-
-{
+int32 PlotDots(int16 x, int16 y, int16 count) {
warning("stub PlotDots( %d, %d, %d )", x, y, count);
/*
@@ -136,7 +89,6 @@ int32 PlotDots(int16 x, int16 y, int16 count)
hr = IDirectDrawSurface2_Lock(lpBackBuffer, NULL, &ddDescription, DDLOCK_SURFACEMEMORYPTR | DDLOCK_WAIT, NULL);
if (hr != DD_OK)
{
- RestoreSurfaces();
hr = IDirectDrawSurface2_Lock(lpBackBuffer, NULL, &ddDescription, DDLOCK_SURFACEMEMORYPTR | DDLOCK_WAIT, NULL);
}
@@ -162,540 +114,31 @@ int32 PlotDots(int16 x, int16 y, int16 count)
return(RD_OK);
}
-//----------------------------------------------------------------------------------------------------------------
-
-
-
-void RestoreSurfaces(void)
-
-{
- warning("stub RestoreSurfaces");
-/*
- IDirectDrawSurface2_Restore(lpPrimarySurface);
- IDirectDrawSurface2_Restore(lpBackBuffer);
-*/
-}
-
-//----------------------------------------------------------------------------------------------------------------
-
-/*
-static PALETTEENTRY *CreateAppPalette(PALETTEENTRY *pe)
-{
-
- HDC screen_dc;
-
-// Fill the palette with system colours
- screen_dc = GetDC(NULL);
- GetSystemPaletteEntries(screen_dc, 0, 256, pe);
- ReleaseDC(NULL, screen_dc);
-
- return pe;
-
-}
-*/
-
-
-//----------------------------------------------------------------------------------------------------------------
-
-int32 RestoreDisplay(void)
-
-{
- warning("stub RestoreDisplay");
-/*
- if( lpDraw != NULL )
- {
- if( lpPrimarySurface != NULL )
- {
- IDirectDrawSurface2_Release(lpPrimarySurface);
- lpPrimarySurface = NULL;
- }
- if( lpPalette != NULL )
- {
- IDirectDrawPalette_Release(lpPalette);
- lpPalette = NULL;
- }
- if (lpDD2 != NULL)
- {
- IDirectDraw2_Release(lpDD2);
- lpDD2 = NULL;
- }
-
- IDirectDraw_Release(lpDraw);
- lpDraw = NULL;
- }
-*/
- return(RD_OK);
-
-}
-
-//----------------------------------------------------------------------------------------------------------------
-//----------------------------------------------------------------------------------------------------------------
-//----------------------------------------------------------------------------------------------------------------
-//----------------------------------------------------------------------------------------------------------------
-
-int32 InitialiseDisplay(int16 width, int16 height, int16 colourDepth, int32 windowType)
-{
+int32 InitialiseDisplay(int16 width, int16 height, int16 colourDepth, int32 windowType) {
screenWide = width;
screenDeep = height;
-// lpPrimarySurface = new Surface(width, height);
lpBackBuffer = new Surface(width, height);
-
-/*
- DDSURFACEDESC ddsd;
- DDSCAPS ddscaps;
- HRESULT hr;
- DDCAPS helCaps;
- long int timerFrequency;
- int32 capsError = 0;
-
-
- OSVERSIONINFO VersionInfo;
- VersionInfo.dwOSVersionInfoSize = sizeof(OSVERSIONINFO);
-
- if (GetVersionEx(&VersionInfo))
- {
-
- switch (VersionInfo.dwPlatformId)
- {
- case VER_PLATFORM_WIN32s :
- case VER_PLATFORM_WIN32_WINDOWS :
- break;
- case VER_PLATFORM_WIN32_NT :
- platformIsNT = 1;
- break;
- }
- }
-
-
- if (windowType == RD_FULLSCREEN)
- bFullScreen = TRUE;
- else
- bFullScreen = FALSE;
-
- // Colour depths of 8 bits only are currently supported
- if (colourDepth != 8)
- {
- return(RDERR_COLOURDEPTH);
- }
-
- screenWide = width;
- screenDeep = height;
-
- // Create the directDraw object
- hr = DirectDrawCreate(NULL, &lpDraw, NULL);
-// hr=DirectDrawCreateEx( NULL, (VOID**)&m_pDD, IID_IDirectDraw7, NULL );
-
-
- if ( hr != DD_OK )
- {
-// Zdebug(" DirectDrawCreate failed!");
-
- DirectDrawError("DirectDraw unavailable", hr);
- return(hr);
- }
-
-
- // Get exclusive mode
- if (bFullScreen)
- {
-
-// hr = m_pDD->SetCooperativeLevel( hWnd, DDSCL_EXCLUSIVE|DDSCL_FULLSCREEN );
- hr = IDirectDraw2_SetCooperativeLevel(lpDraw, hwnd, DDSCL_EXCLUSIVE | DDSCL_FULLSCREEN);
- if (hr != DD_OK)
- {
- DirectDrawError("Exclusive mode unavailable", hr);
- return(hr);
- }
-
- // TONY TEMP
-
-
- hr = IDirectDraw2_QueryInterface(lpDraw, &IID_IDirectDraw2, (LPVOID *) &lpDD2);
- if (hr != DD_OK)
- {
- DirectDrawError("DirectDraw2 unavailable", hr);
- return(hr);
- }
-
- // Set up the display mode which has been requested
-// hr = lpDD2->lpVtbl->SetDisplayMode(lpDD2, width, height, colourDepth, 0, 0);
- hr = IDirectDraw2_SetDisplayMode(lpDD2, width, height, colourDepth, 0, 0);
- if (hr != DD_OK)
- {
- DirectDrawError("Unable to set display mode", hr);
- return(hr);
- }
-
- // Set up the primary surface descriptor
- ddsd.dwSize = sizeof(ddsd);
- ddsd.dwFlags = DDSD_CAPS | DDSD_BACKBUFFERCOUNT;
- ddsd.ddsCaps.dwCaps = DDSCAPS_PRIMARYSURFACE | DDSCAPS_FLIP | DDSCAPS_COMPLEX;
- ddsd.dwBackBufferCount = 1;
-
- // Create the primary surface
- hr = IDirectDraw2_CreateSurface(lpDD2, &ddsd, &lpPrimarySurface, NULL);
- if (hr != DD_OK)
- {
- DirectDrawError("Cannot create primary surface", hr);
- return(hr);
- }
-
- // Create the back buffer as a page flipping surface
- ddscaps.dwCaps = DDSCAPS_BACKBUFFER;
- hr = IDirectDrawSurface2_GetAttachedSurface(lpPrimarySurface, &ddscaps, &lpBackBuffer);
- if (hr != DD_OK)
- {
- DirectDrawError("Unable to attach back buffer", hr);
- return(hr);
- }
-
- EraseBackBuffer();
- FlipScreens();
- EraseBackBuffer();
- FlipScreens();
-
- // Create a palette object
- hr = IDirectDraw2_CreatePalette(lpDD2, DDPCAPS_8BIT | DDPCAPS_ALLOW256 | DDPCAPS_INITIALIZE,
- CreateAppPalette(AppPalette), &lpPalette, NULL);
- if (hr != DD_OK )
- {
- DirectDrawError("Cannot create 8-bit palette", hr);
- return(hr);
- }
-
- // Set our palette object active
- hr = IDirectDrawSurface2_SetPalette(lpPrimarySurface, lpPalette);
- if (hr != DD_OK )
- {
- DirectDrawError("Unable to set palette", hr);
- return(hr);
- }
-
- }
- else
- {
- RECT rcWork;
- RECT rc;
- HDC hdc;
- DWORD dwStyle;
- uint32 GameBPP;
-
-
-
- hr = IDirectDraw_SetCooperativeLevel(lpDraw, hwnd, DDSCL_NORMAL);
- if (hr != DD_OK)
- {
- DirectDrawError("Cannot set normal cooperative level", hr);
- return(hr);
- }
-
-
-
- hr = IDirectDraw_QueryInterface(lpDraw, &IID_IDirectDraw2, (LPVOID *) &lpDD2);
- if (hr != DD_OK)
- {
- DirectDrawError("DirectDraw2 unavailable", hr);
- return(hr);
- }
-
- //
- // when in windows we should use the current mode
- //
- hdc = GetDC(NULL);
- GameBPP = GetDeviceCaps(hdc, PLANES) * GetDeviceCaps(hdc, BITSPIXEL);
- ReleaseDC(NULL, hdc);
-
- if ((GameBPP != 8) && (GameBPP != 16))
- {
- MessageBox(hwnd, "Cannot execute in high colour mode - going to full screen", "Broken Sword II", MB_OK);
- return(RDERR_GOFULLSCREEN);
- }
- else if (GameBPP != 8)
- {
- if (MessageBox(hwnd, "Your display is not in 256 colour mode. Would you like to go to full screen mode (better performance)", "Broken Sword II", MB_YESNO) == IDYES)
- {
- return(RDERR_GOFULLSCREEN);
- }
- }
-
- //
- // if we are still a WS_POPUP window we should convert to a
- // normal app window so we look like a windows app.
- //
- dwStyle = GetWindowStyle(hwnd);
- dwStyle &= ~WS_POPUP;
- dwStyle |= WS_OVERLAPPED | WS_CAPTION | WS_THICKFRAME | WS_MINIMIZEBOX;
- SetWindowLong(hwnd, GWL_STYLE, dwStyle);
-
-// if (bStretch)
-// SetRect(&rc, 0, 0, GameMode.cx*2, GameMode.cy*2);
-// else
-// SetRect(&rc, 0, 0, GameMode.cx, GameMode.cy);
- SetRect(&rc, 0, 0, 640, 480);
-
- AdjustWindowRectEx(&rc,
- GetWindowStyle(hwnd),
- GetMenu(hwnd) != NULL,
- GetWindowExStyle(hwnd));
-
- SetWindowPos(hwnd, NULL, 0, 0, rc.right-rc.left, rc.bottom-rc.top,
- SWP_NOMOVE | SWP_NOZORDER | SWP_NOACTIVATE);
-
- SetWindowPos(hwnd, HWND_NOTOPMOST, 0, 0, 0, 0,
- SWP_NOSIZE | SWP_NOMOVE | SWP_NOACTIVATE);
-
- //
- // make sure our window does not hang outside of the work area
- // this will make people who have the tray on the top or left
- // happy.
- //
- SystemParametersInfo(SPI_GETWORKAREA, 0, &rcWork, 0);
- GetWindowRect(hwnd, &rc);
- if (rc.left < rcWork.left) rc.left = rcWork.left;
- if (rc.top < rcWork.top) rc.top = rcWork.top;
- SetWindowPos(hwnd, NULL, rc.left, rc.top, 0, 0,
- SWP_NOSIZE | SWP_NOZORDER | SWP_NOACTIVATE);
-
-
-
-
- // Set up the primary surface descriptor
- ddsd.dwSize = sizeof(ddsd);
- ddsd.dwFlags = DDSD_CAPS;
- ddsd.ddsCaps.dwCaps = DDSCAPS_PRIMARYSURFACE;
-
- // Create the primary surface
- hr = IDirectDraw2_CreateSurface(lpDD2, &ddsd, &lpPrimarySurface, NULL);
- if (hr != DD_OK)
- {
- DirectDrawError("Cannot create primary surface", hr);
- return(hr);
- }
-
- // Create the back buffer as a page flipping surface
- memset( &ddsd, 0, sizeof( ddsd ) );
- ddsd.dwSize = sizeof( ddsd );
- ddsd.dwFlags = DDSD_CAPS | DDSD_HEIGHT |DDSD_WIDTH;
-
- ddsd.ddsCaps.dwCaps = DDSCAPS_OFFSCREENPLAIN;
- ddsd.dwHeight = 480;
- ddsd.dwWidth = 640;
-
- hr = IDirectDraw2_CreateSurface(lpDD2, &ddsd, &lpBackBuffer, NULL );
- if (hr != DD_OK)
- {
- DirectDrawError("Cannot attach back buffer", hr);
- return(hr);
- }
-
- // DDClear();
-
- if (IDirectDrawSurface2_GetDC(lpPrimarySurface, &hdc) == DD_OK)
- {
- char *szMsg = "Broken Sword II is loading.......please wait.";
- SetTextColor(hdc, RGB(255,255,255));
- SetBkMode(hdc, TRANSPARENT);
- TextOut(hdc, rcWindow.left, rcWindow.top, szMsg, lstrlen(szMsg));
- IDirectDrawSurface2_ReleaseDC(lpPrimarySurface, hdc);
- }
-
- // Create a palette object - only if we have a palette!
- if (GameBPP == 8)
- {
- hr = IDirectDraw2_CreatePalette(lpDD2, DDPCAPS_8BIT, CreateAppPalette(AppPalette), &lpPalette, NULL);
- if (hr != DD_OK )
- {
- DirectDrawError("Cannot create 8-bit palette", hr);
- return(hr);
- }
-
- hr = IDirectDrawSurface2_SetPalette(lpPrimarySurface, lpPalette);
- if (hr != DD_OK )
- {
- DirectDrawError("Cannot set palette", hr);
- return(hr);
- }
- }
- }
-
- // Set my capability bits.
- memset(&driverCaps, 0, sizeof(DDCAPS));
- memset(&helCaps, 0, sizeof(DDCAPS));
- driverCaps.dwSize = sizeof(DDCAPS);
- helCaps.dwSize = sizeof(DDCAPS);
- hr = IDirectDraw2_GetCaps(lpDD2, &driverCaps, &helCaps);
- if (hr != DD_OK)
- {
- driverCaps.dwSize = sizeof(DDCAPS_DX3);
- helCaps.dwSize = sizeof(DDCAPS_DX3);
- hr = IDirectDraw2_GetCaps(lpDD2, &driverCaps, &helCaps);
- if (hr != DD_OK)
- {
- MessageBox(hwnd, "Cannot get hardware capabilities. Software emulation only. Re-install DirectX!", "DDraw error", MB_OK);
- capsError = 1;
- }
- }
-
- blackColorKey.dwColorSpaceLowValue = 0;
- blackColorKey.dwColorSpaceHighValue = 0;
-
- if (capsError)
- {
- helCaps.dwCaps = DDCAPS_BLT + DDCAPS_BLTSTRETCH + DDCAPS_COLORKEY;
- helCaps.dwCKeyCaps = DDCKEYCAPS_SRCBLT;
- dxHelCaps += RDCAPS_BLTSTRETCH;
- dxHelCaps += RDCAPS_SRCBLTCKEY;
- renderCaps = RDBLTFX_MOUSEBLT | RDBLTFX_ARITHMETICSTRETCH | RDBLTFX_EDGEBLEND |
- RDBLTFX_SHADOWBLEND | RDBLTFX_FLATALPHA | RDBLTFX_GRADEDALPHA;
- }
- else
- {
- if ((helCaps.dwCaps & DDCAPS_BLT == 0) ||
- (helCaps.dwCaps & DDCAPS_BLTSTRETCH == 0) ||
- (helCaps.dwCaps & DDCAPS_COLORKEY == 0) ||
- (helCaps.dwCKeyCaps & DDCKEYCAPS_SRCBLT == 0))
- {
- RestoreDisplay();
- return(RDERR_NOEMULATION);
- }
-
-// if (driverCaps.dwCaps & DDCAPS_BLTSTRETCH)
-// {
-// if (driverCaps.dwFXCaps & (DDFXCAPS_BLTSHRINKX + DDFXCAPS_BLTSHRINKY + DDFXCAPS_BLTSTRETCHX + DDFXCAPS_BLTSTRETCHY) ==
-// DDFXCAPS_BLTSHRINKX + DDFXCAPS_BLTSHRINKY + DDFXCAPS_BLTSTRETCHX + DDFXCAPS_BLTSTRETCHY)
-// dxHalCaps += RDCAPS_BLTSTRETCH;
-// else if (helCaps.dwCaps & DDCAPS_BLTSTRETCH)
-// dxHelCaps += RDCAPS_BLTSTRETCH;
-// else
-// return RDERR_DDRAWNOEMULATION;
-// }
-// else if (helCaps.dwCaps & DDCAPS_BLTSTRETCH)
-// dxHelCaps += RDCAPS_BLTSTRETCH;
-// else
-// return(RDERR_DDRAWNOEMULATION);
-
- if (helCaps.dwCaps & DDCAPS_BLTSTRETCH)
- dxHelCaps += RDCAPS_BLTSTRETCH;
- else
- return(RDERR_DDRAWNOEMULATION);
-
- if ((driverCaps.dwCaps & DDCAPS_BLT) && (driverCaps.dwCaps & DDCAPS_COLORKEY) && (driverCaps.dwCKeyCaps & DDCKEYCAPS_SRCBLT))
- dxHalCaps += RDCAPS_SRCBLTCKEY;
- else if ((helCaps.dwCaps & DDCAPS_BLT) && (helCaps.dwCaps & DDCAPS_COLORKEY) && (helCaps.dwCKeyCaps & DDCKEYCAPS_SRCBLT))
- dxHelCaps += RDCAPS_SRCBLTCKEY;
- else
- return(RDERR_DDRAWNOEMULATION);
-
-
-
- // Do computer speed testing here to set bits. - this is the path we go through:
- //
- // if (Can everything be done in hardware?)
- // renderCaps = RDBLTFX_ALLHARDWARE;
- // else
- // if (Everything fast enough in software)
- // turn everything on in software
- // else
- // Turn blending off
- // if (can everything but blending be done in hardware?)
- // renderCaps = RDBLTFX_ALLHARDWARE
- // else
- // if (everything but blending fast enough in software)
- // Do everything but blending in software
- // else
- // Turn off sprite effects
- // endif
- // endif
- // endif
- // endif
-
-
-
-
- if ((driverCaps.dwCaps & DDCAPS_BLT) && (driverCaps.dwCaps & DDCAPS_COLORKEY) && (driverCaps.dwCKeyCaps & DDCKEYCAPS_SRCBLT)
- && (driverCaps.dwCaps & DDSCAPS_ALPHA) && (driverCaps.dwAlphaBltConstBitDepths))
- renderCaps = RDBLTFX_ALLHARDWARE | RDBLTFX_GRADEDALPHA | RDBLTFX_FLATALPHA;
- else if ((driverCaps.dwCaps & DDCAPS_BLT) && (driverCaps.dwCaps & DDCAPS_COLORKEY) && (driverCaps.dwCKeyCaps & DDCKEYCAPS_SRCBLT))
- renderCaps = RDBLTFX_ALLHARDWARE;
- else
- renderCaps = RDBLTFX_MOUSEBLT | RDBLTFX_ARITHMETICSTRETCH | RDBLTFX_EDGEBLEND |
- RDBLTFX_SHADOWBLEND | RDBLTFX_FLATALPHA | RDBLTFX_GRADEDALPHA;
-
- if (QueryPerformanceFrequency(&timerFrequency) == TRUE)
- if (timerFrequency.QuadPart > 700000)
- renderCaps = RDBLTFX_MOUSEBLT | RDBLTFX_ARITHMETICSTRETCH | RDBLTFX_EDGEBLEND |
- RDBLTFX_SHADOWBLEND | RDBLTFX_FLATALPHA | RDBLTFX_GRADEDALPHA;
-
- // if ((driverCaps.dwCaps & DDCAPS_BLT) && (driverCaps.dwCaps & DDCAPS_COLORKEY) && (driverCaps.dwCKeyCaps & DDCKEYCAPS_SRCBLT))
- // renderCaps = RDBLTFX_MOUSEBLT | RDBLTFX_ARITHMETICSTRETCH | RDBLTFX_EDGEBLEND |
- // RDBLTFX_SHADOWBLEND | RDBLTFX_FLATALPHA | RDBLTFX_GRADEDALPHA | RDBLTFX_FGPARALLAX;
- // else
- // renderCaps = RDBLTFX_MOUSEBLT | RDBLTFX_ARITHMETICSTRETCH | RDBLTFX_EDGEBLEND |
- // RDBLTFX_SHADOWBLEND | RDBLTFX_FLATALPHA | RDBLTFX_GRADEDALPHA;
-
- // renderCaps = RDBLTFX_MOUSEBLT | RDBLTFX_SHADOWBLEND | RDBLTFX_FLATALPHA | RDBLTFX_ALLHARDWARE;
- }
-*/
- return(RD_OK);
-
-}
-//----------------------------------------------------------------------------------------------------------------
-//----------------------------------------------------------------------------------------------------------------
-//----------------------------------------------------------------------------------------------------------------
-//----------------------------------------------------------------------------------------------------------------
-//----------------------------------------------------------------------------------------------------------------
-
-
-
-int32 RenderHard(void)
-{
- warning("stub RenderHard");
-/*
- if (renderCaps & RDBLTFX_ALLHARDWARE)
- return(RDERR_ALREADYON);
- if ((driverCaps.dwCaps & DDCAPS_BLT) && (driverCaps.dwCaps & DDCAPS_COLORKEY) && (driverCaps.dwCKeyCaps & DDCKEYCAPS_SRCBLT))
- renderCaps = RDBLTFX_ALLHARDWARE;
- else
- return(RDERR_NOHARDWARE);
-
-*/
- return(RD_OK);
-}
-
-int32 RenderSoft(void)
-{
- warning("stub RenderSoft");
-/*
- if (!(renderCaps & RDBLTFX_ALLHARDWARE))
- return(RDERR_ALREADYON);
- renderCaps = RDBLTFX_MOUSEBLT | RDBLTFX_ARITHMETICSTRETCH | RDBLTFX_EDGEBLEND |
- RDBLTFX_SHADOWBLEND | RDBLTFX_FLATALPHA | RDBLTFX_GRADEDALPHA;
-*/
return(RD_OK);
}
-int32 SetBltFx(void)
-{
+int32 SetBltFx(void) {
renderCaps |= RDBLTFX_EDGEBLEND + RDBLTFX_ARITHMETICSTRETCH;
return(RD_OK);
}
-int32 ClearBltFx(void)
-{
+int32 ClearBltFx(void) {
renderCaps &= (0xffffffff - RDBLTFX_EDGEBLEND - RDBLTFX_ARITHMETICSTRETCH);
return(RD_OK);
}
-int32 ClearShadowFx(void)
-{
+int32 ClearShadowFx(void) {
renderCaps &= (0xffffffff - RDBLTFX_SHADOWBLEND);
return(RD_OK);
}
-int32 SetShadowFx(void)
-{
+int32 SetShadowFx(void) {
renderCaps |= RDBLTFX_SHADOWBLEND;
return RD_OK;
}
@@ -720,88 +163,6 @@ int32 GetRenderType(void)
}
}
-int32 FlipScreens(void)
-
-{
- // I think this function can be removed. We render to lpBackBuffer,
- // and the backend acts as the primary buffer.
-
- debug(0, "FlipScreens");
-
-/*
- HRESULT hr;
- BOOL vbl;
- int32 startTime;
-
- DrawMouse();
-
- if (bFullScreen)
- {
- startTime = timeGetTime();
-
- while(TRUE)
- {
- if (!noVbl)
- {
- hr = IDirectDraw2_GetVerticalBlankStatus(lpDD2, &vbl);
- if (hr != DD_OK)
- {
- DirectDrawError("Vertical blank status unavailable", hr);
- }
- }
-
- if (vbl || noVbl)
- {
- hr = IDirectDrawSurface2_Flip(lpPrimarySurface, NULL, 0);
- if (hr == DD_OK)
- {
- break;
- }
-
- if (hr == DDERR_SURFACELOST)
- {
- if (gotTheFocus)
- {
- hr = IDirectDrawSurface2_Restore(lpPrimarySurface);
-
- if(hr != DD_OK)
- {
- if (++failCount == 32)
- return(RDERR_CANNOTFLIP);
- }
- }
-
- }
- else
- failCount = 0;
-
- if(hr != DDERR_WASSTILLDRAWING)
- {
- break;
- }
- }
- if (timeGetTime() - startTime > 20)
- {
- noVbl = 1;
- }
- }
- }
- else
- {
-
- hr = IDirectDrawSurface2_Blt(lpPrimarySurface, &rcWindow, lpBackBuffer, NULL, DDBLT_WAIT, NULL);
- if (hr != DD_OK)
- {
- return(RDERR_UNKNOWN);
- }
- }
-*/
- return(RD_OK);
-
-}
-
-
-
int32 WaitForVbl(void)
{
warning("stub WaitForVbl");
@@ -832,66 +193,10 @@ int32 WaitForVbl(void)
}
-
-
-
-int32 EraseBackBuffer( void )
-{
- debug(0, "EraseBackBuffer");
+int32 EraseBackBuffer( void ) {
+ debug(9, "EraseBackBuffer");
lpBackBuffer->clear();
-
-/*
- DDBLTFX ddbltfx;
- HRESULT hr;
- RECT r = {0, 0, screenWide, screenDeep};
-
-
- // Erase the background
- ddbltfx.dwSize = sizeof(ddbltfx);
- ddbltfx.dwFillColor = 0;
-
- while( 1 )
- {
-
- hr = IDirectDrawSurface2_Blt(lpBackBuffer, &r, NULL, NULL, DDBLT_COLORFILL, &ddbltfx );
-
- if (hr == DDERR_SURFACELOST)
- {
-
- RestoreSurfaces();
-
- hr = IDirectDrawSurface2_Blt(lpBackBuffer, &r, NULL, NULL, DDBLT_COLORFILL, &ddbltfx );
-
- if (hr != DD_OK)
- {
- if (++failCount == 32)
- {
- DirectDrawError("Cannot render back buffer", hr);
- return(hr);
- }
- else
- {
- failCount = 0;
- return(RD_OK);
- }
- }
-
- }
-
- if (hr == DD_OK)
- {
- break;
- }
-
- if (hr != DDERR_WASSTILLDRAWING)
- {
- DirectDrawError("Cannot render back buffer", hr);
- return(hr);
- }
- }
-*/
return(RD_OK);
-
}
@@ -1024,14 +329,7 @@ int32 SaveScreenShot(uint8 *buffer, uint8 *palette)
}
-
-
-
-
-
-int32 GrabScreenShot(void)
-
-{
+int32 GrabScreenShot(void) {
warning("stub GrabScreenShot");
/*
uint8 *screenGrabBuffer;
@@ -1085,8 +383,7 @@ int32 GrabScreenShot(void)
-int32 NextSmackerFrame(void)
-{
+int32 NextSmackerFrame(void) {
warning("stub NextSmackerFrame");
return(RD_OK);
}
@@ -1094,19 +391,16 @@ int32 NextSmackerFrame(void)
uint32 textSurface = 0;
-void OpenTextObject(_movieTextObject *obj)
-{
+void OpenTextObject(_movieTextObject *obj) {
CreateSurface(obj->textSprite, &textSurface);
}
-void CloseTextObject(_movieTextObject *obj)
-{
+void CloseTextObject(_movieTextObject *obj) {
DeleteSurface(textSurface);
textSurface = 0;
}
-void DrawTextObject(_movieTextObject *obj)
-{
+void DrawTextObject(_movieTextObject *obj) {
warning("stub DrawTextObject");
/*
HRESULT hr;
@@ -1223,15 +517,12 @@ void DrawTextObject(_movieTextObject *obj)
extern uint8 musicMuted;
-int32 PlaySmacker(char *filename, _movieTextObject *text[], uint8 *musicOut)
-{
+int32 PlaySmacker(char *filename, _movieTextObject *text[], uint8 *musicOut) {
warning("stub PlaySmacker %s", filename);
return(RD_OK);
}
-
-
void GetDrawStatus(_drvDrawStatus *s)
{
// s->hwnd = hwnd;