mirror of
https://github.com/nillerusr/source-engine.git
synced 2024-12-23 14:46:53 +00:00
61 lines
1.9 KiB
C++
61 lines
1.9 KiB
C++
//========= 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_
|