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.
65 lines
1.8 KiB
65 lines
1.8 KiB
//========= Copyright 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( int nSortGroup ) = 0; |
|
|
|
// Sets the client renderable for an overlay's material proxy to bind to |
|
virtual void SetOverlayBindProxy( int iOverlayID, void *pBindProxy ) = 0; |
|
}; |
|
|
|
|
|
//----------------------------------------------------------------------------- |
|
// Overlay manager singleton |
|
//----------------------------------------------------------------------------- |
|
IOverlayMgr *OverlayMgr(); |
|
|
|
#endif // OVERLAY_H
|
|
|