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>
This commit is contained in:
116
GameTools/ZALLA3D BASECLASS/RenderTexture.cpp
Normal file
116
GameTools/ZALLA3D BASECLASS/RenderTexture.cpp
Normal file
@@ -0,0 +1,116 @@
|
||||
// RenderTexture.cpp: implementation of the CRenderTexture class.
|
||||
//
|
||||
//////////////////////////////////////////////////////////////////////
|
||||
|
||||
#include "RenderTexture.h"
|
||||
|
||||
#include "BaseGraphicsLayer.h"
|
||||
|
||||
//////////////////////////////////////////////////////////////////////
|
||||
// Construction/Destruction
|
||||
//////////////////////////////////////////////////////////////////////
|
||||
LPDIRECT3DSURFACE8 CRenderTexture::m_pRenderZBuffer;
|
||||
LPDIRECT3DTEXTURE8 CRenderTexture::m_pCopyLockTexture;
|
||||
LPDIRECT3DSURFACE8 CRenderTexture::m_pCopyLockSurface;
|
||||
|
||||
CRenderTexture::CRenderTexture()
|
||||
{
|
||||
m_pRenderTexture=NULL;
|
||||
m_pRenderSurface=NULL;
|
||||
}
|
||||
|
||||
CRenderTexture::~CRenderTexture()
|
||||
{
|
||||
if(m_pRenderTexture)
|
||||
m_pRenderTexture->Release();
|
||||
if(m_pRenderSurface)
|
||||
m_pRenderSurface->Release();
|
||||
if(m_pRenderZBuffer)
|
||||
{
|
||||
m_pRenderZBuffer->Release();
|
||||
m_pRenderZBuffer=NULL;
|
||||
}
|
||||
}
|
||||
|
||||
void CRenderTexture::Create(long SizeX,long SizeY)
|
||||
{
|
||||
|
||||
if(SizeX==0 || SizeY==0)
|
||||
return;
|
||||
D3DDISPLAYMODE mode;
|
||||
//BaseGraphicsLayer::GetDevice()->GetDisplayMode(&mode);
|
||||
BaseGraphicsLayer::GetDevice()->CreateTexture(SizeX,SizeY,1,D3DUSAGE_RENDERTARGET,BaseGraphicsLayer::m_d3dpp.BackBufferFormat,D3DPOOL_DEFAULT,&m_pRenderTexture);
|
||||
if(m_pRenderTexture==NULL)
|
||||
{
|
||||
SizeX=0;
|
||||
SizeY=0;
|
||||
return;
|
||||
}
|
||||
|
||||
m_pRenderTexture->GetSurfaceLevel(0, &m_pRenderSurface);
|
||||
m_SizeX = SizeX;
|
||||
m_Sizey = SizeY;
|
||||
|
||||
if(m_pRenderZBuffer==NULL)
|
||||
{
|
||||
BaseGraphicsLayer::GetDevice()->CreateDepthStencilSurface(SizeX,SizeY,BaseGraphicsLayer::m_d3dpp.AutoDepthStencilFormat,D3DMULTISAMPLE_NONE,&m_pRenderZBuffer);
|
||||
BaseGraphicsLayer::GetDevice()->CreateTexture(SizeX,SizeY,1,0,BaseGraphicsLayer::m_d3dpp.BackBufferFormat,D3DPOOL_MANAGED,&m_pCopyLockTexture);
|
||||
m_pCopyLockTexture->GetSurfaceLevel(0,&m_pCopyLockSurface);
|
||||
}
|
||||
}
|
||||
|
||||
void CRenderTexture::Begin(LPDIRECT3DDEVICE8 pd3dDevice)
|
||||
{
|
||||
pd3dDevice->GetRenderTarget(&m_pTempRenderSurface);
|
||||
pd3dDevice->GetDepthStencilSurface(&m_pTempRenderZBuffer);
|
||||
pd3dDevice->GetViewport(&m_pTempViewPort);
|
||||
|
||||
pd3dDevice->SetRenderTarget(m_pRenderSurface,m_pRenderZBuffer);
|
||||
//pd3dDevice->SetRenderTarget(m_pRenderSurface,m_pTempRenderZBuffer);
|
||||
|
||||
}
|
||||
|
||||
void CRenderTexture::End(LPDIRECT3DDEVICE8 pd3dDevice)
|
||||
{
|
||||
pd3dDevice->SetRenderTarget(m_pTempRenderSurface,m_pTempRenderZBuffer);
|
||||
m_pTempRenderSurface->Release();
|
||||
m_pTempRenderZBuffer->Release();
|
||||
pd3dDevice->SetViewport(&m_pTempViewPort);
|
||||
//pd3dDevice->GetViewport(&m_pTempViewPort);
|
||||
}
|
||||
|
||||
void* CRenderTexture::Lock()
|
||||
{
|
||||
D3DLOCKED_RECT pRect;
|
||||
//m_pRenderTexture->LockRect(0,&pRect,NULL,D3DLOCK_READONLY);
|
||||
|
||||
D3DDISPLAYMODE mode;
|
||||
BaseGraphicsLayer::GetDevice()->GetDisplayMode(&mode);
|
||||
RECT rect;
|
||||
rect.left=0;
|
||||
rect.right=m_SizeX;
|
||||
rect.top=0;
|
||||
rect.bottom=m_Sizey;
|
||||
POINT pt;
|
||||
pt.x=0;
|
||||
pt.y=0;
|
||||
BaseGraphicsLayer::GetDevice()->CopyRects(m_pRenderSurface,&rect,1,m_pCopyLockSurface,&pt);
|
||||
m_pCopyLockSurface->LockRect(&pRect,NULL,NULL);//D3DLOCK_READONLY);
|
||||
return pRect.pBits;
|
||||
//return (void*)
|
||||
}
|
||||
|
||||
void CRenderTexture::Unlock()
|
||||
{
|
||||
m_pCopyLockSurface->UnlockRect();
|
||||
RECT rect;
|
||||
rect.left=0;
|
||||
rect.right=m_SizeX;
|
||||
rect.top=0;
|
||||
rect.bottom=m_Sizey;
|
||||
POINT pt;
|
||||
pt.x=0;
|
||||
pt.y=0;
|
||||
BaseGraphicsLayer::GetDevice()->CopyRects(m_pCopyLockSurface,&rect,1,m_pRenderSurface,&pt);
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user