You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
61 lines
1.9 KiB
61 lines
1.9 KiB
//========= Copyright Valve Corporation, All rights reserved. ============// |
|
// |
|
// Purpose: Portal mod render targets are specified by and accessable through this singleton |
|
// |
|
// |
|
// $Workfile: $ |
|
// $Date: $ |
|
// $NoKeywords: $ |
|
//=============================================================================// |
|
#ifndef PORTALRENDERTARGETS_H_ |
|
#define PORTALRENDERTARGETS_H_ |
|
#ifdef _WIN32 |
|
#pragma once |
|
#endif |
|
|
|
#include "baseclientrendertargets.h" // Base class, with interfaces called by engine and inherited members to init common render targets |
|
|
|
#ifndef PORTAL |
|
#pragma message ( "This file should only be built with portal builds" ) |
|
#endif |
|
|
|
// externs |
|
class IMaterialSystem; |
|
class IMaterialSystemHardwareConfig; |
|
|
|
class CPortalRenderTargets : public CBaseClientRenderTargets |
|
{ |
|
// no networked vars |
|
DECLARE_CLASS_GAMEROOT( CPortalRenderTargets, CBaseClientRenderTargets ); |
|
public: |
|
virtual void InitClientRenderTargets( IMaterialSystem* pMaterialSystem, IMaterialSystemHardwareConfig* pHardwareConfig ); |
|
virtual void ShutdownClientRenderTargets(); |
|
|
|
ITexture* GetPortal1Texture( void ); |
|
ITexture* GetPortal2Texture( void ); |
|
ITexture* GetDepthDoublerTexture( void ); |
|
|
|
//recursive views require different water textures |
|
ITexture* GetWaterReflectionTextureForStencilDepth( int iStencilDepth ); |
|
ITexture* GetWaterRefractionTextureForStencilDepth( int iStencilDepth ); |
|
|
|
private: |
|
CTextureReference m_Portal1Texture; |
|
CTextureReference m_Portal2Texture; |
|
CTextureReference m_DepthDoublerTexture; |
|
|
|
CTextureReference m_WaterRefractionTextures[2]; |
|
CTextureReference m_WaterReflectionTextures[2]; |
|
|
|
ITexture* InitPortal1Texture ( IMaterialSystem* pMaterialSystem ); |
|
ITexture* InitPortal2Texture ( IMaterialSystem* pMaterialSystem ); |
|
ITexture* InitDepthDoublerTexture ( IMaterialSystem* pMaterialSystem ); |
|
|
|
void InitPortalWaterTextures ( IMaterialSystem* pMaterialSystem ); |
|
|
|
}; |
|
|
|
extern CPortalRenderTargets* portalrendertargets; |
|
|
|
|
|
#endif //PORTALRENDERTARGETS_H_
|