[Scummvm-cvs-logs] CVS: scummvm/bs2/driver _console.cpp,1.3,1.4 d_draw.cpp,1.5,1.6 d_draw.h,1.3,1.4 driver96.h,1.20,1.21 rdwin.cpp,1.8,1.9 render.cpp,1.9,1.10 sprite.cpp,1.4,1.5 ddutil.h,1.1,NONE
James Brown
ender at users.sourceforge.net
Tue Aug 19 13:34:03 CEST 2003
- Previous message: [Scummvm-cvs-logs] CVS: residual costume.cpp,1.2,1.3
- Next message: [Scummvm-cvs-logs] CVS: scummvm/bs2 anims.cpp,1.7,1.8 build_display.cpp,1.9,1.10 console.cpp,1.5,1.6 controls.cpp,1.6,1.7 debug.cpp,1.5,1.6 function.cpp,1.5,1.6 logic.cpp,1.4,1.5 mem_view.cpp,1.3,1.4 mouse.cpp,1.7,1.8 resman.cpp,1.11,1.12 router.cpp,1.6,1.7 startup.cpp,1.7,1.8 sword2.cpp,1.13,1.14
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
Update of /cvsroot/scummvm/scummvm/bs2/driver
In directory sc8-pr-cvs1:/tmp/cvs-serv13217/driver
Modified Files:
_console.cpp d_draw.cpp d_draw.h driver96.h rdwin.cpp
render.cpp sprite.cpp
Removed Files:
ddutil.h
Log Message:
Remove a bunch of unneeded cruft - but barely the surface of it. This code is depressing and duplicated all over the place... I don't think I can bear to touch this code until it's undergone some MAJOR cleanup :)
Index: _console.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/bs2/driver/_console.cpp,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -d -r1.3 -r1.4
--- _console.cpp 28 Jul 2003 03:12:49 -0000 1.3
+++ _console.cpp 19 Aug 2003 14:57:26 -0000 1.4
@@ -94,7 +94,6 @@
hr = IDirectDrawSurface_Lock(lpBackBuffer, NULL, &ddDescription, DDLOCK_SURFACEMEMORYPTR | DDLOCK_WAIT, NULL);
if (hr != DD_OK)
{
- RestoreSurfaces();
hr = IDirectDrawSurface_Lock(lpBackBuffer, NULL, &ddDescription, DDLOCK_SURFACEMEMORYPTR | DDLOCK_WAIT, NULL);
}
Index: d_draw.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/bs2/driver/d_draw.cpp,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -d -r1.5 -r1.6
--- d_draw.cpp 17 Aug 2003 14:07:16 -0000 1.5
+++ d_draw.cpp 19 Aug 2003 14:57:26 -0000 1.6
@@ -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 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 @@
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 @@
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 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 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 GrabScreenShot(void)
-
-{
+int32 GrabScreenShot(void) {
warning("stub GrabScreenShot");
/*
uint8 *screenGrabBuffer;
@@ -1085,8 +383,7 @@
-int32 NextSmackerFrame(void)
-{
+int32 NextSmackerFrame(void) {
warning("stub NextSmackerFrame");
return(RD_OK);
}
@@ -1094,19 +391,16 @@
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,14 +517,11 @@
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)
{
Index: d_draw.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/bs2/driver/d_draw.h,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -d -r1.3 -r1.4
--- d_draw.h 17 Aug 2003 14:07:16 -0000 1.3
+++ d_draw.h 19 Aug 2003 14:57:26 -0000 1.4
@@ -88,7 +88,6 @@
extern int32 dxHelCaps; // Emulation capabilities.
extern void FatalDirectDrawError(char *str, int32 dderr, char *file, int32 line);
-extern void RestoreSurfaces(void); // Restores direct draw surfaces.
#ifdef __cplusplus
}
Index: driver96.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/bs2/driver/driver96.h,v
retrieving revision 1.20
retrieving revision 1.21
diff -u -d -r1.20 -r1.21
--- driver96.h 19 Aug 2003 08:47:09 -0000 1.20
+++ driver96.h 19 Aug 2003 14:57:26 -0000 1.21
@@ -303,14 +303,6 @@
//
// ---------------------------------------------------------------------------
//
-// int32 FlipScreens(void)
-//
-// Waits for the vertical retrace and then flips the front and back buffers.
-// If a vertical retrace flag is unavailable, it flips immediately. Returns
-// an RD code.
-//
-// ---------------------------------------------------------------------------
-//
// int32 EraseBackBuffer(void)
//
// Fills the back buffer with palette colour zero. Returns an RD code.
@@ -1478,16 +1470,12 @@
// Display functions - from d_draw.c
//-----------------------------------------------------------------------------
extern int32 InitialiseDisplay(int16 width, int16 height, int16 colourDepth, int32 windowType);
-extern int32 RestoreDisplay(void);
-extern int32 FlipScreens(void);
extern int32 WaitForVbl(void);
extern int32 EraseBackBuffer(void);
extern int32 SetBltFx(void);
extern int32 ClearBltFx(void);
extern int32 ClearShadowFx(void);
extern int32 SetShadowFx(void);
-extern int32 RenderHard(void);
-extern int32 RenderSoft(void);
extern int32 GetRenderType(void);
extern int32 PlaySmacker(char *filename, _movieTextObject *textObjects[], uint8 *musicOut);
extern void GetDrawStatus(_drvDrawStatus *s);
Index: rdwin.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/bs2/driver/rdwin.cpp,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -d -r1.8 -r1.9
--- rdwin.cpp 2 Aug 2003 00:36:37 -0000 1.8
+++ rdwin.cpp 19 Aug 2003 14:57:26 -0000 1.9
@@ -183,7 +183,6 @@
break;
case OSystem::EVENT_QUIT:
Close_game();
- RestoreDisplay();
CloseAppWindow();
break;
default:
Index: render.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/bs2/driver/render.cpp,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -d -r1.9 -r1.10
--- render.cpp 19 Aug 2003 08:47:09 -0000 1.9
+++ render.cpp 19 Aug 2003 14:57:26 -0000 1.10
@@ -366,7 +366,6 @@
free(blockSurfaces[l]);
blockSurfaces[l] = NULL;
}
- RestoreSurfaces();
InitialiseBackgroundLayer(p);
layer = oldLayer;
@@ -383,7 +382,6 @@
free(blockSurfaces[l]);
blockSurfaces[l] = NULL;
}
- RestoreSurfaces();
InitialiseBackgroundLayer(p);
layer = oldLayer;
*/
@@ -419,7 +417,6 @@
hr = IDirectDrawSurface2_Lock(lpBackBuffer, NULL, &ddsd, DDLOCK_SURFACEMEMORYPTR | DDLOCK_WAIT, NULL);
if (hr != DD_OK)
{
- RestoreSurfaces();
hr = IDirectDrawSurface2_Lock(lpBackBuffer, NULL, &ddsd, DDLOCK_SURFACEMEMORYPTR | DDLOCK_WAIT, NULL);
}
@@ -467,7 +464,6 @@
hr = IDirectDrawSurface2_Lock(lpBackBuffer, NULL, &ddsd, DDLOCK_SURFACEMEMORYPTR | DDLOCK_WAIT, NULL);
if (hr != DD_OK)
{
- RestoreSurfaces();
hr = IDirectDrawSurface2_Lock(lpBackBuffer, NULL, &ddsd, DDLOCK_SURFACEMEMORYPTR | DDLOCK_WAIT, NULL);
}
if (hr != DD_OK)
@@ -697,7 +693,7 @@
int16 i, j;
ScummVM::Rect r;
- debug(0, "RenderParallax %d", l);
+ debug(9, "RenderParallax %d", l);
if (locationWide == screenWide)
x = 0;
@@ -733,251 +729,7 @@
parallaxScrollx = scrollx - x;
parallaxScrolly = scrolly - y;
-/*
-
-#if PROFILING == 1
-
- long int startTime, endTime;
-
- QueryPerformanceCounter(&startTime);
-
-#endif
-
- if ((renderCaps & RDBLTFX_ALLHARDWARE) || ((renderCaps & RDBLTFX_FGPARALLAX) && (l > 2)))
- {
-
- int16 x, y;
- int16 i, j;
- int16 restoreSurfaces = 0;
- HRESULT hr = 0;
- RECT r, rd;
-
- if (restoreLayer[l])
- {
- RestoreBackgroundLayer(p, l);
- restoreLayer[l] = 0;
- }
-
- if (locationWide == screenWide)
- x = 0;
- else
- x = ((int32) ((p->w - screenWide) * scrollx) / (int32) (locationWide - screenWide));
-
- if (locationDeep == (screenDeep - MENUDEEP*2))
- y = 0;
- else
- y = ((int32) ((p->h - (screenDeep - MENUDEEP*2)) * scrolly) / (int32) (locationDeep - (screenDeep - MENUDEEP*2)));
-
-
- while (TRUE)
- {
- j = 0;
- while (j < yblocks[l])
- {
- i = 0;
- while (i < xblocks[l])
- {
- if (*(blockSurfaces[l] + i + j * xblocks[l]))
- {
- r.left = i * BLOCKWIDTH - x;
- r.right = r.left + BLOCKWIDTH;
- r.top = j * BLOCKHEIGHT - y + 40;
- r.bottom = r.top + BLOCKHEIGHT;
- rd.left = 0;
- rd.right = BLOCKWIDTH;
- rd.top = 0;
- rd.bottom = BLOCKHEIGHT;
-
- if ((r.left < 0) && (r.left > 0 - BLOCKWIDTH))
- {
- rd.left = 0 - r.left;
- r.left = 0;
- }
- if ((r.top < 40) && (r.top > 40 - BLOCKHEIGHT))
- {
- rd.top = 40 - r.top;
- r.top = 40;
- }
- if ((r.right > 640) && (r.right < 640 + BLOCKWIDTH))
- {
- rd.right = BLOCKWIDTH - (r.right - 640);
- r.right = 640;
- }
- if ((r.bottom > 440) && (r.bottom < 440 + BLOCKHEIGHT))
- {
- rd.bottom = BLOCKHEIGHT - (r.bottom - 440);
- r.bottom = 440;
- }
- hr = IDirectDrawSurface2_Blt(lpBackBuffer, &r, *(blockSurfaces[l] + i + j * xblocks[l]), &rd, DDBLT_WAIT | DDBLT_KEYSRC, NULL);
- if (hr == DDERR_INVALIDRECT)
- hr = 0;
- if (hr)
- break;
- }
- i++;
- if (hr)
- break;
- }
- j++;
- if (hr)
- break;
- }
- if (hr)
- {
- if (hr == DDERR_SURFACELOST)
- {
- if (gotTheFocus)
- {
- if (++restoreSurfaces == 4)
- return(RDERR_RESTORELAYERS);
- else
- RestoreBackgroundLayer(p, l);
- }
- else
- return(RD_OK);
- }
- else
- return(hr);
-
- }
- else
- break;
- }
-
- parallaxScrollx = scrollx - x;
- parallaxScrolly = scrolly - y;
- }
- else
- {
- uint8 zeros;
- uint16 count;
- uint16 skip;
- uint16 i, j;
- uint16 x;
- int32 px, py;
- uint8 *data;
- uint8 *dst;
- _parallaxLine *line;
-
- if (locationWide == screenWide)
- px = 0;
- else
- px = ( (int32) ((p->w - screenWide) * scrollx) / (int32) (locationWide - screenWide));
-
- if (locationDeep == (screenDeep - MENUDEEP*2))
- py = 0;
- else
- py = ( (int32) ((p->h - (screenDeep - MENUDEEP*2)) * scrolly) / (int32) (locationDeep - (screenDeep - MENUDEEP*2)));
-
-
- for (i = py; i < py + (screenDeep - MENUDEEP * 2); i++)
- {
- if (p->offset[i] == 0)
- continue;
-
- line = (_parallaxLine *) ((uint8 *) p + p->offset[i]);
- data = (uint8 *) line + sizeof(_parallaxLine);
- x = line->offset;
- if (x > px)
- skip = x - px;
- else
- skip = 0;
-
- dst = myScreenBuffer + (i - py) * RENDERWIDE + skip;
-
-
- zeros = 0;
- if (line->packets == 0)
- {
- data += px;
- memcpy(dst, data, screenWide);
- continue;
- }
-
- for (j=0; j<line->packets; j++)
- {
- if (zeros)
- {
- if (x >= px)
- {
- dst += *data;
- x += *data;
- }
- else
- {
- x += *data;
- if (x > px)
- {
- dst += (x - px);
- }
- }
- data += 1;
- zeros = 0;
- }
- else
- {
- if (*data == 0)
- {
- data ++;
- }
- else if (x >= px)
- {
- if (x + *data <= px + screenWide)
- {
- count = *data++;
- memcpy(dst, data, count);
- data += count;
- dst += count;
- x += count;
- }
- else if (x < px + screenWide)
- {
- data++;
- count = screenWide - (x - px);
- memcpy(dst, data, count);
- j = line->packets;
- }
- }
- else
- {
- count = *data++;
-
- if (x + count > px)
- {
- skip = px - x;
- data += skip;
- count -= skip;
- memcpy(dst, data, count);
- data += count;
- dst += count;
- x += count + skip;
- }
- else
- {
- data += count;
- x += count;
- if (x > px)
- {
- dst += (x - px);
- }
- }
- }
- zeros = 1;
- }
- }
- }
-
- parallaxScrollx = scrollx - px;
- parallaxScrolly = scrolly - py;
- }
-
-#if PROFILING == 1
- QueryPerformanceCounter(&endTime);
- profileRenderLayers += (endTime.LowPart - startTime.LowPart);
-#endif
-*/
return(RD_OK);
-
}
@@ -1120,7 +872,7 @@
int32 CopyScreenBuffer(void)
{
- debug(0, "CopyScreenBuffer");
+ debug(9, "CopyScreenBuffer");
// FIXME: The backend should keep track of dirty rects, but I have a
// feeling each one may be drawn several times, so we may have do add
@@ -1154,7 +906,6 @@
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);
}
if (hr == DD_OK)
@@ -1340,7 +1091,6 @@
if (layer == MAXLAYERS)
{
CloseBackgroundLayer();
- // RestoreSurfaces(); // for the primary and back buffer.
}
Index: sprite.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/bs2/driver/sprite.cpp,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -d -r1.4 -r1.5
--- sprite.cpp 19 Aug 2003 08:47:09 -0000 1.4
+++ sprite.cpp 19 Aug 2003 14:57:26 -0000 1.5
@@ -258,15 +258,7 @@
-#define WIN32_LEAN_AND_MEAN
-
-//#include <windows.h>
-//#include <windowsx.h>
#include <stdio.h>
-//#include <mmsystem.h>
-
-//#include "ddraw.h"
-
#include "stdafx.h"
#include "driver96.h"
#include "d_draw.h"
@@ -1812,7 +1804,6 @@
hr = IDirectDrawSurface2_Lock(lpBackBuffer, NULL, &ddsd, DDLOCK_SURFACEMEMORYPTR | DDLOCK_WAIT, NULL);
if (hr != DD_OK)
{
- RestoreSurfaces();
hr = IDirectDrawSurface2_Lock(lpBackBuffer, NULL, &ddsd, DDLOCK_SURFACEMEMORYPTR | DDLOCK_WAIT, NULL);
}
if (hr == DD_OK)
--- ddutil.h DELETED ---
- Previous message: [Scummvm-cvs-logs] CVS: residual costume.cpp,1.2,1.3
- Next message: [Scummvm-cvs-logs] CVS: scummvm/bs2 anims.cpp,1.7,1.8 build_display.cpp,1.9,1.10 console.cpp,1.5,1.6 controls.cpp,1.6,1.7 debug.cpp,1.5,1.6 function.cpp,1.5,1.6 logic.cpp,1.4,1.5 mem_view.cpp,1.3,1.4 mouse.cpp,1.7,1.8 resman.cpp,1.11,1.12 router.cpp,1.6,1.7 startup.cpp,1.7,1.8 sword2.cpp,1.13,1.14
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
More information about the Scummvm-git-logs
mailing list