2022-10-09 05:13:17 +00:00
|
|
|
#ifndef _IRENDERER
|
|
|
|
#define _IRENDERER
|
2022-09-13 04:26:54 +00:00
|
|
|
|
|
|
|
#include "types.h"
|
|
|
|
|
|
|
|
class IRenderer {
|
|
|
|
public:
|
|
|
|
enum EDrawableSorting {
|
|
|
|
kDS_SortedCallback,
|
|
|
|
kDS_UnsortedCallback,
|
|
|
|
};
|
|
|
|
|
|
|
|
virtual ~IRenderer();
|
|
|
|
// TODO vtable
|
2022-10-17 15:02:11 +00:00
|
|
|
|
|
|
|
virtual void AddStaticGeometry();
|
|
|
|
virtual void EnablePVS();
|
|
|
|
virtual void DisablePVS();
|
|
|
|
virtual void RemoveStaticGeometry();
|
|
|
|
virtual void DrawUnsortedGeometry();
|
|
|
|
virtual void DrawSortedGeometry();
|
|
|
|
virtual void DrawStaticGeometry();
|
|
|
|
virtual void DrawAreaGeometry();
|
|
|
|
virtual void PostRenderFogs();
|
|
|
|
virtual void SetModelMatrix(const CTransform4f& xf);
|
|
|
|
virtual void AddParticleGen(const CParticleGen& gen);
|
2022-09-13 04:26:54 +00:00
|
|
|
};
|
|
|
|
|
2022-10-05 23:34:32 +00:00
|
|
|
class IObjectStore;
|
2022-09-13 04:26:54 +00:00
|
|
|
class COsContext;
|
|
|
|
class CMemorySys;
|
|
|
|
class CResFactory;
|
|
|
|
|
|
|
|
namespace Renderer {
|
|
|
|
IRenderer* AllocateRenderer(IObjectStore&, COsContext&, CMemorySys&, CResFactory&);
|
2022-10-09 05:13:17 +00:00
|
|
|
}; // namespace Renderer
|
2022-09-13 04:26:54 +00:00
|
|
|
|
2022-10-09 05:13:17 +00:00
|
|
|
#endif // _IRENDERER
|