Files
Client/Library/dxx8/samples/Multimedia/DirectPlay/Maze/MazeClient/D3DGraphics.h
LGram16 e067522598 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>
2025-11-29 16:24:34 +09:00

152 lines
4.6 KiB
C++

//----------------------------------------------------------------------------
// File: d3dgraphics.h
//
// Desc: see main.cpp
//
// Copyright (c) 1999-2001 Microsoft Corp. All rights reserved.
//-----------------------------------------------------------------------------
#ifndef _MAZE_GRAPHICS_H
#define _MAZE_GRAPHICS_H
class CMazeApp;
struct VERTEX_TEXURED
{
D3DXVECTOR3 vPos;
D3DXVECTOR3 vNormal;
FLOAT fU, fV;
};
#define FVF_TEXTURED (D3DFVF_XYZ|D3DFVF_NORMAL|D3DFVF_TEX1)
struct VERTEX_DIFFUSE
{
D3DXVECTOR3 vPos;
DWORD dwDiffuse;
};
#define FVF_DIFFUSE (D3DFVF_XYZ|D3DFVF_DIFFUSE)
struct VERTEX_TL_DIFFUSE
{
D3DXVECTOR3 vPos;
float fRHW;
DWORD dwDiffuse;
};
#define FVF_TL_DIFFUSE (D3DFVF_XYZRHW|D3DFVF_DIFFUSE)
struct VERTEX_TL_TEXTURED
{
D3DXVECTOR3 vPos;
float fRHW;
DWORD dwDiffuse;
DWORD dwSpecular;
FLOAT fU, fV;
};
#define FVF_TL_TEXTURED (D3DFVF_XYZRHW|D3DFVF_DIFFUSE|D3DFVF_SPECULAR|D3DFVF_TEX1)
//-----------------------------------------------------------------------------
// Name:
// Desc:
//-----------------------------------------------------------------------------
class CD3DGraphics : public IMazeGraphics, public CD3DScreensaver
{
public:
CD3DGraphics();
~CD3DGraphics();
// From IMazeGraphics
virtual VOID Init( CMazeApp* pMazeApp, CDPlay8Client* pDP8Client, CMazeClient* pMazeClient );
virtual HRESULT Create( HINSTANCE hInstance );
virtual INT Run();
virtual void HandleOutputMsg( EnumLineType enumLineType, TCHAR* strLine );
virtual BOOL IsPreview() { return m_bIsPreview; };
virtual void Shutdown();
virtual BOOL GetFloatWinInfo() { return FALSE; }
virtual VOID SetDevice( UINT iDevice ) { }
virtual HRESULT ConfirmDevice(D3DCAPS8*,DWORD,D3DFORMAT);
virtual HRESULT OneTimeSceneInit();
virtual HRESULT InitDeviceObjects();
virtual HRESULT RestoreDeviceObjects();
virtual HRESULT FrameMove();
virtual HRESULT Render();
virtual HRESULT InvalidateDeviceObjects();
virtual HRESULT DeleteDeviceObjects();
virtual HRESULT FinalCleanup();
virtual LRESULT SaverProc( HWND hWnd , UINT message , WPARAM wParam , LPARAM lParam );
CMazeApp* m_pMazeApp;
CDPlay8Client* m_pDP8Client;
CMazeClient* m_pMazeClient;
protected:
static INT_PTR CALLBACK StaticSaverConfigDlgProc( HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam );
INT_PTR CALLBACK SaverConfigDlgProc( HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam );
HRESULT PostCreate();
int ScreenSaverDoConfig( BOOL bIsScreenSaverSettings );
void ExtractSaverConfigDlgSettings( HWND hDlg );
void PopulateSaverConfigDlg( HWND hDlg );
HRESULT CreateTextureFromResource( INT nResource, LPDIRECT3DTEXTURE8* ppTexture );
void ComputeCameraMatrix();
void DrawFloor();
void DrawWalls();
void DrawCeiling();
void DrawMiniMap();
void DrawPlayers();
void DrawIndicators();
void LoadQuad( VERTEX_TEXURED* pVerts, WORD* pwIndex, WORD wOffset,
const D3DXVECTOR3& vOrigin, const D3DXVECTOR3& vBasis1,
const D3DXVECTOR3& vBasis2, const D3DXVECTOR3& vNormal );
HINSTANCE m_hInstance;
MazeConfig* m_pConfig;
BOOL m_bIsPreview;
BOOL m_bIsScreenSaverSettings;
DWORD m_dwStartMode;
DWORD m_dwAppFlags;
HWND m_hRefWindow;
CD3DFont* m_pFont;
CD3DFont* m_pStatsFont;
SmartVB<VERTEX_TEXURED,FVF_TEXTURED,1000> m_SmartVB;
LPDIRECT3DVERTEXBUFFER8 m_pMiniMapVB;
LPDIRECT3DVERTEXBUFFER8 m_pMiniMapBackgroundVB;
LPDIRECT3DVERTEXBUFFER8 m_pIndicatorVB;
D3DXMATRIX m_Projection;
D3DXMATRIX m_Camera;
D3DXVECTOR3 m_vCameraPos;
FLOAT m_fCameraYaw;
D3DLIGHT8 m_Light;
LPDIRECT3DTEXTURE8 m_pWallTexture;
LPDIRECT3DTEXTURE8 m_pFloorTexture;
LPDIRECT3DTEXTURE8 m_pCeilingTexture;
LPDIRECT3DTEXTURE8 m_pNetIconTexture;
LPDIRECT3DTEXTURE8 m_pLocalIconTexture;
ID3DXMesh* m_pSphere;
CD3DFile* m_pPlayerMesh;
DWORD m_dwTesselation;
enum { MAX_VISLIST = 300 };
MazeCellRef m_mcrVisList[MAX_VISLIST];
DWORD m_dwNumVisibleCells;
};
#endif