Initial commit of Dink Smallwood HD source. See the "Programmer readme.txt" for information on how to set it up.
git-svn-id: svn://rtsoft.com/rtsvn/projects/RTDink@1469 353e56fe-9613-0410-8469-b96ad8e6f29c
This commit is contained in:
parent
dfbc2348a5
commit
d4f66a5d2e
115 changed files with 37737 additions and 0 deletions
114
source/video_gl.h
Normal file
114
source/video_gl.h
Normal file
|
@ -0,0 +1,114 @@
|
|||
#ifndef video_dx_h__
|
||||
#define video_dx_h__
|
||||
|
||||
#include "PlatformSetup.h"
|
||||
#include "math/rtRect.h"
|
||||
|
||||
class SoftSurface;
|
||||
class Surface;
|
||||
|
||||
typedef struct _DDCOLORKEY
|
||||
{
|
||||
uint32 dwColorSpaceLowValue; // low boundary of color space that is to
|
||||
// be treated as Color Key, inclusive
|
||||
uint32 dwColorSpaceHighValue; // high boundary of color space that is
|
||||
// to be treated as Color Key, inclusive
|
||||
} DDCOLORKEY;
|
||||
|
||||
typedef struct _DDBLTFX
|
||||
{
|
||||
uint32 dwSize; // size of structure
|
||||
uint32 dwDDFX; // FX operations
|
||||
uint32 dwROP; // Win32 raster operations
|
||||
uint32 dwDDROP; // Raster operations new for DirectDraw
|
||||
uint32 dwRotationAngle; // Rotation angle for blt
|
||||
uint32 dwZBufferOpCode; // ZBuffer compares
|
||||
uint32 dwZBufferLow; // Low limit of Z buffer
|
||||
uint32 dwZBufferHigh; // High limit of Z buffer
|
||||
uint32 dwZBufferBaseDest; // Destination base value
|
||||
uint32 dwZDestConstBitDepth; // Bit depth used to specify Z constant for destination
|
||||
|
||||
DDCOLORKEY ddckDestColorkey; // DestColorkey override
|
||||
DDCOLORKEY ddckSrcColorkey; // SrcColorkey override
|
||||
|
||||
uint32 dwFillColor; // color in RGB or Palettized
|
||||
uint32 dwFillDepth; // depth value for z-buffer
|
||||
uint32 dwFillPixel; // pixel value for RGBA or RGBZ
|
||||
|
||||
} DDBLTFX;
|
||||
|
||||
typedef DDBLTFX * LPDDBLTFX;
|
||||
|
||||
enum eTransparencyType
|
||||
{
|
||||
TRANSPARENT_NONE,
|
||||
TRANSPARENT_BLACK,
|
||||
TRANSPARENT_WHITE,
|
||||
TRANSPARENT_MAGENTA
|
||||
|
||||
};
|
||||
|
||||
//blt flags
|
||||
#define DDBLT_KEYSRC 0x00008000l
|
||||
#define DDBLT_COLORFILL 0x00000400l
|
||||
#define DDBLT_WAIT 0x01000000l
|
||||
|
||||
|
||||
#define DD_OK 0L
|
||||
#define DD_FALSE 1L
|
||||
/****************************************************************************
|
||||
*
|
||||
* BLTFAST FLAGS
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
#define DDBLTFAST_NOCOLORKEY 0x00000000
|
||||
#define DDBLTFAST_SRCCOLORKEY 0x00000001
|
||||
#define DDBLTFAST_DESTCOLORKEY 0x00000002
|
||||
#define DDBLTFAST_WAIT 0x00000010
|
||||
#define DDBLTFAST_DONOTWAIT
|
||||
|
||||
|
||||
//my fake DD wrapper that really uses GL under the hood
|
||||
class IDirectDrawSurface
|
||||
{
|
||||
public:
|
||||
|
||||
enum eMode
|
||||
{
|
||||
MODE_NORMAL, //8 bit image only
|
||||
MODE_PRIMARY_GL, //just a dummy surface, blitting to it goes straight to the screen
|
||||
MODE_SHADOW_GL //keep an 8 bit version but cache a HW GL surface as well
|
||||
};
|
||||
|
||||
IDirectDrawSurface();
|
||||
~IDirectDrawSurface();
|
||||
|
||||
int Blt(rtRect32 *pDestRect, IDirectDrawSurface * pSrcSurf, rtRect32 *pSrcRect, uint32 flags, DDBLTFX *pFX);
|
||||
int BltFast(int x, int y, IDirectDrawSurface *pSrcSurf, rtRect32 *pSrcRect, uint32 dwTrans);;
|
||||
void UpdateLastUsedTime();
|
||||
void UpdateShadowSurface();
|
||||
Surface * GetGLSuface(); //update it and send back a valid surface if possible
|
||||
|
||||
Surface *m_pGLSurf;
|
||||
eMode m_mode;
|
||||
SoftSurface *m_pSurf;
|
||||
int m_gameTickOfLastUse;
|
||||
|
||||
|
||||
};
|
||||
|
||||
typedef class IDirectDrawSurface *LPDIRECTDRAWSURFACE;
|
||||
|
||||
IDirectDrawSurface * InitOffscreenSurface(int x, int y, IDirectDrawSurface::eMode mode = IDirectDrawSurface::MODE_NORMAL, bool bHiColor = false, SoftSurface * pSurfaceToCopyFrom = NULL);
|
||||
|
||||
extern LPDIRECTDRAWSURFACE lpDDSBack;
|
||||
|
||||
void dderror(int hErr);
|
||||
bool InitializeVideoSystem();
|
||||
void KillVideoEngine();
|
||||
void GetSizeOfSurface(IDirectDrawSurface *pdds, int *pX, int *pY);
|
||||
|
||||
IDirectDrawSurface * LoadBitmapIntoSurface(const char *pName, eTransparencyType trans= TRANSPARENT_NONE, IDirectDrawSurface::eMode mode = IDirectDrawSurface::MODE_SHADOW_GL, byte *pMem = NULL);
|
||||
|
||||
#endif // video_dx_h__
|
Loading…
Add table
Add a link
Reference in a new issue