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>
76 lines
2.5 KiB
C++
76 lines
2.5 KiB
C++
// ShadowMap.cpp: implementation of the CShadowMap class.
|
|
//
|
|
//////////////////////////////////////////////////////////////////////
|
|
|
|
#include "ShadowMap.h"
|
|
#include "BaseGraphicsLayer.h"
|
|
|
|
//////////////////////////////////////////////////////////////////////
|
|
// Construction/Destruction
|
|
//////////////////////////////////////////////////////////////////////
|
|
|
|
//LPDIRECT3DSURFACE8 CShadowMap::m_pShadowMapColorSurface=NULL;
|
|
//LPDIRECT3DSURFACE8 CShadowMap::m_pShadowMapZSurface=NULL;
|
|
//LPDIRECT3DTEXTURE8 CShadowMap::m_pShadowMapColorTexture=NULL;
|
|
//LPDIRECT3DTEXTURE8 CShadowMap::m_pShadowMapZTexture=NULL;
|
|
|
|
LPDIRECT3DSURFACE8 CShadowMap::m_pTempRenderSurface;
|
|
LPDIRECT3DSURFACE8 CShadowMap::m_pTempRenderZBuffer;
|
|
D3DVIEWPORT8 CShadowMap::m_pTempViewPort;
|
|
//D3DVIEWPORT8 CShadowMap::m_Viewport;
|
|
|
|
|
|
CShadowMap::CShadowMap()
|
|
{
|
|
|
|
}
|
|
|
|
CShadowMap::~CShadowMap()
|
|
{
|
|
|
|
}
|
|
|
|
void CShadowMap::Create(long SizeX, long SizeY)
|
|
{
|
|
if( BaseGraphicsLayer::m_d3dpp.BackBufferFormat==D3DFMT_A8R8G8B8 ||
|
|
BaseGraphicsLayer::m_d3dpp.BackBufferFormat==D3DFMT_X8R8G8B8 )
|
|
{
|
|
BaseGraphicsLayer::GetDevice()->CreateTexture(SizeX,SizeY,1,D3DUSAGE_RENDERTARGET,D3DFMT_A8R8G8B8,D3DPOOL_DEFAULT,&m_pShadowMapColorTexture);
|
|
BaseGraphicsLayer::GetDevice()->CreateTexture(SizeX,SizeY,1,D3DUSAGE_DEPTHSTENCIL,D3DFMT_D24S8,D3DPOOL_DEFAULT,&m_pShadowMapZTexture);
|
|
}
|
|
if( BaseGraphicsLayer::m_d3dpp.BackBufferFormat==D3DFMT_R5G6B5)
|
|
{
|
|
BaseGraphicsLayer::GetDevice()->CreateTexture(SizeX,SizeY,1,D3DUSAGE_RENDERTARGET,D3DFMT_R5G6B5,D3DPOOL_DEFAULT,&m_pShadowMapColorTexture);
|
|
BaseGraphicsLayer::GetDevice()->CreateTexture(SizeX,SizeY,1,D3DUSAGE_DEPTHSTENCIL,D3DFMT_D16,D3DPOOL_DEFAULT,&m_pShadowMapZTexture);
|
|
}
|
|
|
|
m_pShadowMapColorTexture->GetSurfaceLevel(0,&m_pShadowMapColorSurface);
|
|
m_pShadowMapZTexture->GetSurfaceLevel(0,&m_pShadowMapZSurface);
|
|
|
|
m_Viewport.X=0;
|
|
m_Viewport.Y=0;
|
|
m_Viewport.Width=SizeX;
|
|
m_Viewport.Height=SizeY;
|
|
m_Viewport.MinZ=0.0f;
|
|
m_Viewport.MaxZ=1.0f;
|
|
|
|
}
|
|
|
|
void CShadowMap::Begin(LPDIRECT3DDEVICE8 pd3dDevice)
|
|
{
|
|
pd3dDevice->GetViewport(&m_pTempViewPort);
|
|
pd3dDevice->GetRenderTarget(&m_pTempRenderSurface);
|
|
pd3dDevice->GetDepthStencilSurface(&m_pTempRenderZBuffer);
|
|
pd3dDevice->SetRenderTarget(m_pShadowMapColorSurface,m_pShadowMapZSurface);
|
|
|
|
pd3dDevice->SetViewport(&m_Viewport);
|
|
}
|
|
|
|
void CShadowMap::End(LPDIRECT3DDEVICE8 pd3dDevice)
|
|
{
|
|
pd3dDevice->SetRenderTarget(m_pTempRenderSurface,m_pTempRenderZBuffer);
|
|
pd3dDevice->SetViewport(&m_pTempViewPort);
|
|
m_pTempRenderSurface->Release();
|
|
m_pTempRenderZBuffer->Release();
|
|
}
|