39 lines
1.5 KiB
C++
39 lines
1.5 KiB
C++
//===== Copyright © 1996-2005, Valve Corporation, All rights reserved. ======//
|
|
//
|
|
// Purpose:
|
|
//
|
|
// $NoKeywords: $
|
|
//
|
|
//===========================================================================//
|
|
|
|
#ifndef IMESHSYSTEM_H
|
|
#define IMESHSYSTEM_H
|
|
|
|
#ifdef _WIN32
|
|
#pragma once
|
|
#endif
|
|
|
|
#include "appframework/IAppSystem.h"
|
|
#include "rendersystem/schema/renderbuffer.g.h"
|
|
#include "rendersystem/schema/renderable.g.h"
|
|
#include "rendersystem/irendercontext.h"
|
|
#include "mathlib/camera.h"
|
|
|
|
//-----------------------------------------------------------------------------
|
|
// Methods related to rendering meshes
|
|
//-----------------------------------------------------------------------------
|
|
abstract_class IMeshSystem : public IAppSystem
|
|
{
|
|
public:
|
|
virtual HRenderable FindOrCreateFileRenderable( const char *pFileName, RenderSystemAssetFileLoadMode_t nLoadMode = LOADMODE_ASYNCHRONOUS ) = 0;
|
|
virtual void DrawRenderable( IRenderContext *pRenderContext, HRenderable hRenderable, RenderShaderHandle_t hVS, RenderShaderHandle_t hPS, int nExplicitInstanceCount = 0 ) = 0;
|
|
virtual const Renderable_t *GetRenderableData( HRenderable hRenderable ) = 0;
|
|
virtual const PermRenderableBounds_t *GetPermRenderableData( HRenderable hRenderable ) = 0;
|
|
virtual bool RenderableIntersectsFrustum( HRenderable hRenderable, CFrustum *pFrustum, Vector &vOrigin ) = 0;
|
|
virtual bool IsFullyCached( HRenderable hRenderable ) = 0;
|
|
virtual void CacheRenderable( HRenderable hRenderable ) = 0;
|
|
};
|
|
|
|
|
|
#endif // IMESHSYSTEM_H
|