Team Fortress 2 Source Code as on 22/4/2020
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.
|
|
//========= Copyright Valve Corporation, All rights reserved. ============//
//
// Purpose: L4D mod render targets are specified by and accessable through this singleton
//
// $NoKeywords: $
//===========================================================================//
#include "cbase.h"
#include "tf_rendertargets.h"
#include "materialsystem/imaterialsystem.h"
#include "rendertexture.h"
#if defined( REPLAY_ENABLED )
#include "replay/replay_screenshot.h"
#endif
//-----------------------------------------------------------------------------
// Purpose:
//-----------------------------------------------------------------------------
ITexture *CTFRenderTargets::CreateItemModelPanelTexture( const char *pszName, IMaterialSystem* pMaterialSystem, int iSize ) { return pMaterialSystem->CreateNamedRenderTargetTextureEx2( pszName, iSize, iSize, RT_SIZE_DEFAULT, pMaterialSystem->GetBackBufferFormat(), MATERIAL_RT_DEPTH_SHARED, TEXTUREFLAGS_CLAMPS | TEXTUREFLAGS_CLAMPT, 0 ); }
//-----------------------------------------------------------------------------
// Purpose: InitClientRenderTargets, interface called by the engine at material system init in the engine
// Input : pMaterialSystem - the interface to the material system from the engine (our singleton hasn't been set up yet)
// pHardwareConfig - the user's hardware config, useful for conditional render targets setup
//-----------------------------------------------------------------------------
extern const char *g_ItemModelPanelRenderTargetNames[]; extern const char *g_pszModelImagePanelRTName; void CTFRenderTargets::InitClientRenderTargets( IMaterialSystem* pMaterialSystem, IMaterialSystemHardwareConfig* pHardwareConfig ) { BaseClass::InitClientRenderTargets( pMaterialSystem, pHardwareConfig );
// rt for item model panels
for ( int i = 0; i < ITEM_MODEL_IMAGE_CACHE_SIZE; i++ ) { int index = m_tfRenderTargets.AddToTail(); m_tfRenderTargets[index].Init( CreateItemModelPanelTexture( g_ItemModelPanelRenderTargetNames[i], pMaterialSystem, 256 ) ); }
// rt for CModelImagePanel
int index = m_tfRenderTargets.AddToTail(); m_tfRenderTargets[index].Init( CreateItemModelPanelTexture( g_pszModelImagePanelRTName, pMaterialSystem, 256 ) );
CReplayScreenshotTaker::CreateRenderTarget( pMaterialSystem ); }
//-----------------------------------------------------------------------------
// Purpose: Shutdown client render targets. This gets called during shutdown in the engine
// Input : -
//-----------------------------------------------------------------------------
void CTFRenderTargets::ShutdownClientRenderTargets() { BaseClass::ShutdownClientRenderTargets();
for ( int i = 0; i < m_tfRenderTargets.Count(); i++ ) { m_tfRenderTargets[i].Shutdown(); } m_tfRenderTargets.Purge(); }
static CTFRenderTargets g_TFRenderTargets; EXPOSE_SINGLE_INTERFACE_GLOBALVAR( CTFRenderTargets, IClientRenderTargets, CLIENTRENDERTARGETS_INTERFACE_VERSION, g_TFRenderTargets ); CTFRenderTargets* g_pTFRenderTargets = &g_TFRenderTargets;
|