This commit is contained in:
nephacks
2025-06-04 03:22:50 +02:00
parent f234f23848
commit f12416cffd
14243 changed files with 6446499 additions and 26 deletions

View File

@@ -0,0 +1,38 @@
//===== 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