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.
68 lines
2.0 KiB
68 lines
2.0 KiB
//========= Copyright © 1996-2005, Valve Corporation, All rights reserved. ============//
|
|
//
|
|
// Purpose: Model loading / unloading interface
|
|
//
|
|
// $NoKeywords: $
|
|
//=============================================================================//
|
|
|
|
#ifndef OVERLAY_H
|
|
#define OVERLAY_H
|
|
|
|
#ifdef _WIN32
|
|
#pragma once
|
|
#endif
|
|
|
|
|
|
// This is a workaround for the fact that we get massive decal flicker
|
|
// when looking at a decal at a glancing angle while standing right next to it.
|
|
#define OVERLAY_AVOID_FLICKER_NORMAL_OFFSET 0.1f
|
|
|
|
|
|
//-----------------------------------------------------------------------------
|
|
// Overlay fragments
|
|
//-----------------------------------------------------------------------------
|
|
typedef unsigned short OverlayFragmentHandle_t;
|
|
|
|
enum
|
|
{
|
|
OVERLAY_FRAGMENT_INVALID = (OverlayFragmentHandle_t)~0
|
|
};
|
|
|
|
|
|
//=============================================================================
|
|
//
|
|
// Overlay Manager Interface
|
|
//
|
|
class IOverlayMgr
|
|
{
|
|
public:
|
|
// Memory allocation/de-allocation.
|
|
virtual bool LoadOverlays( ) = 0;
|
|
virtual void UnloadOverlays( ) = 0;
|
|
|
|
virtual void CreateFragments( void ) = 0;
|
|
|
|
virtual void ReSortMaterials( void ) = 0;
|
|
|
|
// Drawing
|
|
// clears all
|
|
virtual void ClearRenderLists() = 0;
|
|
// clears a particular sort group
|
|
virtual void ClearRenderLists( int nSortGroup ) = 0;
|
|
virtual void AddFragmentListToRenderList( int nSortGroup, OverlayFragmentHandle_t iFragment, bool bDisp ) = 0;
|
|
virtual void RenderOverlays( IMatRenderContext *pRenderContext, int nSortGroup ) = 0;
|
|
|
|
// Sets the client renderable for an overlay's material proxy to bind to
|
|
virtual void SetOverlayBindProxy( int iOverlayID, void *pBindProxy ) = 0;
|
|
|
|
virtual void UpdateOverlayRenderLevels( int nCPULevel, int nGPULevel ) = 0;
|
|
virtual void RenderAllUnlitOverlays( IMatRenderContext *pRenderContext, int nSortGroup ) = 0;
|
|
};
|
|
|
|
|
|
//-----------------------------------------------------------------------------
|
|
// Overlay manager singleton
|
|
//-----------------------------------------------------------------------------
|
|
IOverlayMgr *OverlayMgr();
|
|
|
|
#endif // OVERLAY_H
|