Initial commit: ROW Client source code
Game client codebase including: - CharacterActionControl: Character and creature management - GlobalScript: Network, items, skills, quests, utilities - RYLClient: Main client application with GUI and event handlers - Engine: 3D rendering engine (RYLGL) - MemoryManager: Custom memory allocation - Library: Third-party dependencies (DirectX, boost, etc.) - Tools: Development utilities 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
140
Library/dxx8/samples/Multimedia/Common/include/ddutil.h
Normal file
140
Library/dxx8/samples/Multimedia/Common/include/ddutil.h
Normal file
@@ -0,0 +1,140 @@
|
||||
//-----------------------------------------------------------------------------
|
||||
// File: ddutil.cpp
|
||||
//
|
||||
// Desc: Routines for loading bitmap and palettes from resources
|
||||
//
|
||||
// Copyright (C) 1998-2001 Microsoft Corporation. All Rights Reserved.
|
||||
//-----------------------------------------------------------------------------
|
||||
#ifndef DDUTIL_H
|
||||
#define DDUTIL_H
|
||||
|
||||
#include <ddraw.h>
|
||||
#include <d3d.h>
|
||||
|
||||
|
||||
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// Classes defined in this header file
|
||||
//-----------------------------------------------------------------------------
|
||||
class CDisplay;
|
||||
class CSurface;
|
||||
|
||||
|
||||
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// Flags for the CDisplay and CSurface methods
|
||||
//-----------------------------------------------------------------------------
|
||||
#define DSURFACELOCK_READ
|
||||
#define DSURFACELOCK_WRITE
|
||||
|
||||
|
||||
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// Name: class CDisplay
|
||||
// Desc: Class to handle all DDraw aspects of a display, including creation of
|
||||
// front and back buffers, creating offscreen surfaces and palettes,
|
||||
// and blitting surface and displaying bitmaps.
|
||||
//-----------------------------------------------------------------------------
|
||||
class CDisplay
|
||||
{
|
||||
protected:
|
||||
LPDIRECTDRAW7 m_pDD;
|
||||
LPDIRECTDRAWSURFACE7 m_pddsFrontBuffer;
|
||||
LPDIRECTDRAWSURFACE7 m_pddsBackBuffer;
|
||||
LPDIRECTDRAWSURFACE7 m_pddsBackBufferLeft; // For stereo modes
|
||||
|
||||
HWND m_hWnd;
|
||||
RECT m_rcWindow;
|
||||
BOOL m_bWindowed;
|
||||
BOOL m_bStereo;
|
||||
|
||||
public:
|
||||
CDisplay();
|
||||
~CDisplay();
|
||||
|
||||
// Access functions
|
||||
HWND GetHWnd() { return m_hWnd; }
|
||||
LPDIRECTDRAW7 GetDirectDraw() { return m_pDD; }
|
||||
LPDIRECTDRAWSURFACE7 GetFrontBuffer() { return m_pddsFrontBuffer; }
|
||||
LPDIRECTDRAWSURFACE7 GetBackBuffer() { return m_pddsBackBuffer; }
|
||||
LPDIRECTDRAWSURFACE7 GetBackBufferLeft() { return m_pddsBackBufferLeft; }
|
||||
|
||||
// Status functions
|
||||
BOOL IsWindowed() { return m_bWindowed; }
|
||||
BOOL IsStereo() { return m_bStereo; }
|
||||
|
||||
// Creation/destruction methods
|
||||
HRESULT CreateFullScreenDisplay( HWND hWnd, DWORD dwWidth, DWORD dwHeight,
|
||||
DWORD dwBPP );
|
||||
HRESULT CreateWindowedDisplay( HWND hWnd, DWORD dwWidth, DWORD dwHeight );
|
||||
HRESULT InitClipper();
|
||||
HRESULT UpdateBounds();
|
||||
virtual HRESULT DestroyObjects();
|
||||
|
||||
// Methods to create child objects
|
||||
HRESULT CreateSurface( CSurface** ppSurface, DWORD dwWidth,
|
||||
DWORD dwHeight );
|
||||
HRESULT CreateSurfaceFromBitmap( CSurface** ppSurface, TCHAR* strBMP,
|
||||
DWORD dwDesiredWidth,
|
||||
DWORD dwDesiredHeight );
|
||||
HRESULT CreateSurfaceFromText( CSurface** ppSurface, HFONT hFont,
|
||||
TCHAR* strText,
|
||||
COLORREF crBackground,
|
||||
COLORREF crForeground );
|
||||
HRESULT CreatePaletteFromBitmap( LPDIRECTDRAWPALETTE* ppPalette, const TCHAR* strBMP );
|
||||
|
||||
// Display methods
|
||||
HRESULT Clear( DWORD dwColor = 0L );
|
||||
HRESULT ColorKeyBlt( DWORD x, DWORD y, LPDIRECTDRAWSURFACE7 pdds,
|
||||
RECT* prc = NULL );
|
||||
HRESULT Blt( DWORD x, DWORD y, LPDIRECTDRAWSURFACE7 pdds,
|
||||
RECT* prc=NULL, DWORD dwFlags=0 );
|
||||
HRESULT Blt( DWORD x, DWORD y, CSurface* pSurface, RECT* prc = NULL );
|
||||
HRESULT ShowBitmap( HBITMAP hbm, LPDIRECTDRAWPALETTE pPalette=NULL );
|
||||
HRESULT SetPalette( LPDIRECTDRAWPALETTE pPalette );
|
||||
HRESULT Present();
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// Name: class CSurface
|
||||
// Desc: Class to handle aspects of a DirectDrawSurface.
|
||||
//-----------------------------------------------------------------------------
|
||||
class CSurface
|
||||
{
|
||||
LPDIRECTDRAWSURFACE7 m_pdds;
|
||||
DDSURFACEDESC2 m_ddsd;
|
||||
BOOL m_bColorKeyed;
|
||||
|
||||
public:
|
||||
LPDIRECTDRAWSURFACE7 GetDDrawSurface() { return m_pdds; }
|
||||
BOOL IsColorKeyed() { return m_bColorKeyed; }
|
||||
|
||||
HRESULT DrawBitmap( HBITMAP hBMP, DWORD dwBMPOriginX = 0, DWORD dwBMPOriginY = 0,
|
||||
DWORD dwBMPWidth = 0, DWORD dwBMPHeight = 0 );
|
||||
HRESULT DrawBitmap( TCHAR* strBMP, DWORD dwDesiredWidth, DWORD dwDesiredHeight );
|
||||
HRESULT DrawText( HFONT hFont, TCHAR* strText, DWORD dwOriginX, DWORD dwOriginY,
|
||||
COLORREF crBackground, COLORREF crForeground );
|
||||
|
||||
HRESULT SetColorKey( DWORD dwColorKey );
|
||||
DWORD ConvertGDIColor( COLORREF dwGDIColor );
|
||||
static HRESULT GetBitMaskInfo( DWORD dwBitMask, DWORD* pdwShift, DWORD* pdwBits );
|
||||
|
||||
HRESULT Create( LPDIRECTDRAW7 pDD, DDSURFACEDESC2* pddsd );
|
||||
HRESULT Create( LPDIRECTDRAWSURFACE7 pdds );
|
||||
HRESULT Destroy();
|
||||
|
||||
CSurface();
|
||||
~CSurface();
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
#endif // DDUTIL_H
|
||||
|
||||
Reference in New Issue
Block a user