metaforce/Runtime/Graphics/IRenderer.hpp

99 lines
3.8 KiB
C++
Raw Normal View History

2016-02-13 09:02:47 +00:00
#ifndef __PSHAG_IRENDERER_HPP__
#define __PSHAG_IRENDERER_HPP__
2015-08-21 00:06:39 +00:00
#include <vector>
#include "../RetroTypes.hpp"
#include "../CToken.hpp"
2016-03-04 23:04:53 +00:00
#include "zeus/CAABox.hpp"
#include "zeus/CPlane.hpp"
2015-08-21 00:06:39 +00:00
#include "CFrustum.hpp"
2016-03-04 23:04:53 +00:00
#include "zeus/CColor.hpp"
2015-08-21 00:06:39 +00:00
2016-03-04 23:04:53 +00:00
namespace urde
2015-08-21 00:06:39 +00:00
{
class CMetroidModelInstance;
class CLight;
class CAreaOctTree;
2016-02-08 03:31:05 +00:00
class CElementGen;
2015-08-21 00:06:39 +00:00
class CModel;
class CSkinnedModel;
class IRenderer
{
public:
typedef void(*TDrawableCallback)(const void*, const void*, int);
typedef void(*TReflectionCallback)(void*, const CVector3f&);
2015-11-21 01:16:07 +00:00
enum class EDrawableSorting
2015-08-21 00:06:39 +00:00
{
};
2015-11-21 01:16:07 +00:00
enum class EDebugOption
2015-08-21 00:06:39 +00:00
{
};
2015-11-21 01:16:07 +00:00
enum class EPrimitiveType
2015-08-21 00:06:39 +00:00
{
};
2015-11-21 01:16:07 +00:00
enum class ERglFogMode
2015-08-21 00:06:39 +00:00
{
};
virtual void AddStaticGeometry(const std::vector<CMetroidModelInstance>&, const CAreaOctTree*, int);
virtual void RemoveStaticGeometry(const std::vector<CMetroidModelInstance>&);
virtual void DrawUnsortedGeometry(const std::vector<CLight>&, int, unsigned int, unsigned int);
virtual void DrawSortedGeometry(const std::vector<CLight>&, int, unsigned int, unsigned int);
virtual void DrawStaticGeometry(const std::vector<CLight>&, int, unsigned int, unsigned int);
virtual void PostRenderFogs();
2016-02-08 03:31:05 +00:00
virtual void AddParticleGen(const CElementGen&);
2015-08-21 00:06:39 +00:00
virtual void AddPlaneObject(const void*, const CAABox&, const CPlane&, int);
virtual void AddDrawable(void const *, const CVector3f&, const CAABox&, int, EDrawableSorting);
virtual void SetDrawableCallback(TDrawableCallback, const void*);
virtual void SetWorldViewpoint(const CTransform&);
virtual void SetPerspectiveFovScalar(float);
2015-08-22 01:58:41 +00:00
virtual void SetPerspective(float, float, float, float, float);
virtual void SetPerspective(float, float, float, float);
virtual void SetViewportOrtho(bool, float, float);
2015-08-21 00:06:39 +00:00
virtual void SetClippingPlanes(const CFrustum&);
2015-08-22 01:58:41 +00:00
virtual void SetViewport(int, int, int, int);
virtual void SetDepthReadWrite(bool, bool);
2015-08-21 00:06:39 +00:00
virtual void SetBlendMode_AdditiveAlpha();
virtual void SetBlendMode_AlphaBlended();
virtual void SetBlendMode_NoColorWrite();
virtual void SetBlendMode_ColorMultiply();
virtual void SetBlendMode_InvertDst();
virtual void SetBlendMode_InvertSrc();
virtual void SetBlendMode_Replace();
virtual void SetBlendMode_AdditiveDestColor();
2015-08-22 01:58:41 +00:00
virtual void SetDebugOption(EDebugOption, int);
2015-08-21 00:06:39 +00:00
virtual void BeginScene();
virtual void EndScene();
2015-08-22 01:58:41 +00:00
virtual void BeginPrimitive(EPrimitiveType, int);
2015-08-21 00:06:39 +00:00
virtual void BeginLines(int);
virtual void BeginLineStrip(int);
virtual void BeginTriangles(int);
virtual void BeginTriangleStrip(int);
virtual void BeginTriangleFan(int);
virtual void PrimVertex(const CVector3f&);
virtual void PrimNormal(const CVector3f&);
2015-08-22 01:58:41 +00:00
virtual void PrimColor(float, float, float, float);
2015-08-21 00:06:39 +00:00
virtual void PrimColor(const CColor&);
virtual void EndPrimitive();
virtual void SetAmbientColor(const CColor&);
virtual void SetStaticWorldAmbientColor(const CColor&);
virtual void DrawString(const char*, int, int);
virtual u32 GetFPS();
virtual void CacheReflection(TReflectionCallback, void*, bool);
virtual void DrawSpaceWarp(const CVector3f&, float);
virtual void DrawThermalModel(const CModel&, const CColor&, const CColor&, const float*, const float*);
virtual void DrawXRayOutline(const CModel&, const float*, const float*);
virtual void SetWireframeFlags(int);
virtual void SetWorldFog(ERglFogMode, float, float, const CColor&);
virtual void RenderFogVolume(const CColor&, const CAABox&, const TLockedToken<CModel>*, const CSkinnedModel*);
virtual void SetThermal(bool, float, const CColor&);
virtual void DoThermalBlendCold();
virtual void DoThermalBlendHot();
virtual u32 GetStaticWorldDataSize();
};
}
2016-02-13 09:02:47 +00:00
#endif // __PSHAG_IRENDERER_HPP__