Files
Client/Engine/Zalla3D Base Class/ShadowMap.cpp
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

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();
}