55 lines
1.7 KiB
C
55 lines
1.7 KiB
C
//========= Copyright © 1996-2005, Valve Corporation, All rights reserved. ============//
|
|
//
|
|
// Purpose:
|
|
//
|
|
// $Revision: $
|
|
// $NoKeywords: $
|
|
//
|
|
// This file contains code to allow us to associate client data with bsp leaves.
|
|
//
|
|
//=============================================================================//
|
|
|
|
#if !defined( ICLIENTLEAFSYSTEM_H )
|
|
#define ICLIENTLEAFSYSTEM_H
|
|
#ifdef _WIN32
|
|
#pragma once
|
|
#endif
|
|
|
|
|
|
#include "tier0/platform.h"
|
|
#include "client_render_handle.h"
|
|
#include "engine/ivmodelinfo.h"
|
|
|
|
|
|
#define CLIENTLEAFSYSTEM_INTERFACE_VERSION "ClientLeafSystem002"
|
|
|
|
|
|
enum RenderableModelType_t
|
|
{
|
|
RENDERABLE_MODEL_UNKNOWN_TYPE = -1,
|
|
RENDERABLE_MODEL_ENTITY = 0,
|
|
RENDERABLE_MODEL_STUDIOMDL,
|
|
RENDERABLE_MODEL_STATIC_PROP,
|
|
RENDERABLE_MODEL_BRUSH,
|
|
};
|
|
|
|
|
|
//-----------------------------------------------------------------------------
|
|
// The client leaf system
|
|
//-----------------------------------------------------------------------------
|
|
abstract_class IClientLeafSystemEngine
|
|
{
|
|
public:
|
|
// Adds and removes renderables from the leaf lists
|
|
// CreateRenderableHandle stores the handle inside pRenderable.
|
|
virtual void CreateRenderableHandle( IClientRenderable* pRenderable, bool bRenderWithViewModels, RenderableTranslucencyType_t nType, RenderableModelType_t nModelType, uint32 nSplitscreenEnabled = 0xFFFFFFFF ) = 0; // = RENDERABLE_MODEL_UNKNOWN_TYPE ) = 0;
|
|
virtual void RemoveRenderable( ClientRenderHandle_t handle ) = 0;
|
|
virtual void AddRenderableToLeaves( ClientRenderHandle_t renderable, int nLeafCount, unsigned short *pLeaves ) = 0;
|
|
virtual void SetTranslucencyType( ClientRenderHandle_t handle, RenderableTranslucencyType_t nType ) = 0;
|
|
};
|
|
|
|
|
|
#endif // ICLIENTLEAFSYSTEM_H
|
|
|
|
|