Counter Strike : Global Offensive Source Code
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.

38 lines
1.5 KiB

  1. //===== Copyright � 1996-2005, Valve Corporation, All rights reserved. ======//
  2. //
  3. // Purpose:
  4. //
  5. // $NoKeywords: $
  6. //
  7. //===========================================================================//
  8. #ifndef IMESHSYSTEM_H
  9. #define IMESHSYSTEM_H
  10. #ifdef _WIN32
  11. #pragma once
  12. #endif
  13. #include "appframework/IAppSystem.h"
  14. #include "rendersystem/schema/renderbuffer.g.h"
  15. #include "rendersystem/schema/renderable.g.h"
  16. #include "rendersystem/irendercontext.h"
  17. #include "mathlib/camera.h"
  18. //-----------------------------------------------------------------------------
  19. // Methods related to rendering meshes
  20. //-----------------------------------------------------------------------------
  21. abstract_class IMeshSystem : public IAppSystem
  22. {
  23. public:
  24. virtual HRenderable FindOrCreateFileRenderable( const char *pFileName, RenderSystemAssetFileLoadMode_t nLoadMode = LOADMODE_ASYNCHRONOUS ) = 0;
  25. virtual void DrawRenderable( IRenderContext *pRenderContext, HRenderable hRenderable, RenderShaderHandle_t hVS, RenderShaderHandle_t hPS, int nExplicitInstanceCount = 0 ) = 0;
  26. virtual const Renderable_t *GetRenderableData( HRenderable hRenderable ) = 0;
  27. virtual const PermRenderableBounds_t *GetPermRenderableData( HRenderable hRenderable ) = 0;
  28. virtual bool RenderableIntersectsFrustum( HRenderable hRenderable, CFrustum *pFrustum, Vector &vOrigin ) = 0;
  29. virtual bool IsFullyCached( HRenderable hRenderable ) = 0;
  30. virtual void CacheRenderable( HRenderable hRenderable ) = 0;
  31. };
  32. #endif // IMESHSYSTEM_H