Files
Client/GameTools/ZALLA3D BASECLASS/ShadowMap.cpp
LGram16 dd97ddec92 Restructure repository to include all source folders
Move git root from Client/ to src/ to track all source code:
- Client: Game client source (moved to Client/Client/)
- Server: Game server source
- GameTools: Development tools
- CryptoSource: Encryption utilities
- database: Database scripts
- Script: Game scripts
- rylCoder_16.02.2008_src: Legacy coder tools
- GMFont, Game: Additional resources

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-29 20:17:20 +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();
}