diff options
| author | FluorescentCIAAfricanAmerican <[email protected]> | 2020-04-22 12:56:21 -0400 |
|---|---|---|
| committer | FluorescentCIAAfricanAmerican <[email protected]> | 2020-04-22 12:56:21 -0400 |
| commit | 3bf9df6b2785fa6d951086978a3e66f49427166a (patch) | |
| tree | 2c0f1f0c63c4832882bc93814ebd2c2b1c6224e5 /game/client/detailobjectsystem.h | |
| download | archived-source-engine-2018-hl2-src-master.tar.xz archived-source-engine-2018-hl2-src-master.zip | |
Diffstat (limited to 'game/client/detailobjectsystem.h')
| -rw-r--r-- | game/client/detailobjectsystem.h | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/game/client/detailobjectsystem.h b/game/client/detailobjectsystem.h new file mode 100644 index 0000000..11bb696 --- /dev/null +++ b/game/client/detailobjectsystem.h @@ -0,0 +1,57 @@ +//========= Copyright Valve Corporation, All rights reserved. ============// +// +// Purpose: Deals with singleton +// +// $Revision: $ +// $NoKeywords: $ +//=============================================================================// + +#if !defined( DETAILOBJECTSYSTEM_H ) +#define DETAILOBJECTSYSTEM_H +#ifdef _WIN32 +#pragma once +#endif + +#include "igamesystem.h" +#include "icliententityinternal.h" +#include "engine/ivmodelrender.h" +#include "mathlib/vector.h" +#include "ivrenderview.h" + +struct model_t; + + +//----------------------------------------------------------------------------- +// Responsible for managing detail objects +//----------------------------------------------------------------------------- +abstract_class IDetailObjectSystem : public IGameSystem +{ +public: + // Gets a particular detail object + virtual IClientRenderable* GetDetailModel( int idx ) = 0; + + // Gets called each view + virtual void BuildDetailObjectRenderLists( const Vector &vViewOrigin ) = 0; + + // Renders all opaque detail objects in a particular set of leaves + virtual void RenderOpaqueDetailObjects( int nLeafCount, LeafIndex_t *pLeafList ) = 0; + + // Call this before rendering translucent detail objects + virtual void BeginTranslucentDetailRendering( ) = 0; + + // Renders all translucent detail objects in a particular set of leaves + virtual void RenderTranslucentDetailObjects( const Vector &viewOrigin, const Vector &viewForward, const Vector &viewRight, const Vector &viewUp, int nLeafCount, LeafIndex_t *pLeafList ) =0; + + // Renders all translucent detail objects in a particular leaf up to a particular point + virtual void RenderTranslucentDetailObjectsInLeaf( const Vector &viewOrigin, const Vector &viewForward, const Vector &viewRight, const Vector &viewUp, int nLeaf, const Vector *pVecClosestPoint ) = 0; +}; + + +//----------------------------------------------------------------------------- +// System for dealing with detail objects +//----------------------------------------------------------------------------- +IDetailObjectSystem* DetailObjectSystem(); + + +#endif // DETAILOBJECTSYSTEM_H + |