mirror of https://github.com/PrimeDecomp/prime.git
94 lines
3.0 KiB
C++
94 lines
3.0 KiB
C++
#ifndef _CCUBERENDERER_HPP
|
|
#define _CCUBERENDERER_HPP
|
|
|
|
#include "gx_enum.h"
|
|
#include "types.h"
|
|
|
|
#include "Kyoto/Graphics/CColor.hpp"
|
|
#include "Kyoto/Math/CTransform4f.hpp"
|
|
#include "Kyoto/Math/CVector2f.hpp"
|
|
#include "rstl/pair.hpp"
|
|
|
|
class IRenderer {
|
|
public:
|
|
enum EDrawableSorting {
|
|
kDS_SortedCallback,
|
|
kDS_UnsortedCallback,
|
|
};
|
|
|
|
// TODO vtable
|
|
};
|
|
|
|
class CCubeRenderer {
|
|
public:
|
|
virtual ~CCubeRenderer();
|
|
// TODO types
|
|
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 AddParticleGen1();
|
|
virtual void AddParticleGen2();
|
|
virtual void AddPlaneObject();
|
|
virtual void AddDrawable(const void* obj, const CVector3f& pos, const CAABox& bounds, s32 mode, IRenderer::EDrawableSorting sorting);
|
|
virtual void SetDrawableCallback();
|
|
virtual void SetWorldViewpoint();
|
|
virtual void SetPerspective1();
|
|
virtual void SetPerspective2();
|
|
virtual rstl::pair< CVector2f, CVector2f > SetViewportOrtho(bool centered, f32 znear, f32 zfar);
|
|
virtual void SetClippingPlanes();
|
|
virtual void SetViewport();
|
|
virtual void SetDepthReadWrite(bool read, bool update);
|
|
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_AdditiveDestColor();
|
|
virtual void SetDebugOption();
|
|
virtual void BeginScene();
|
|
virtual void EndScene();
|
|
virtual void BeginPrimitive(GXPrimitive prim, int count);
|
|
virtual void BeginLines(int nverts);
|
|
virtual void BeginLineStrip(int nverts);
|
|
virtual void BeginTriangles(int nverts);
|
|
virtual void BeginTriangleStrip(int nverts);
|
|
virtual void BeginTriangleFan(int nverts);
|
|
virtual void PrimVertex(const CVector3f& vtx);
|
|
virtual void PrimNormal(const CVector3f& nrm);
|
|
virtual void PrimColor(f32 r, f32 g, f32 b, f32 a);
|
|
virtual void PrimColor(const CColor& color);
|
|
virtual void EndPrimitive();
|
|
virtual void SetAmbientColor(const CColor& color);
|
|
virtual void DrawString();
|
|
virtual void GetFPS();
|
|
virtual void CacheReflection();
|
|
virtual void DrawSpaceWarp();
|
|
virtual void DrawThermalModel();
|
|
virtual void DrawModelDisintegrate();
|
|
virtual void DrawModelFlat();
|
|
virtual void SetWireframeFlags();
|
|
virtual void SetWorldFog();
|
|
virtual void RenderFogVolume();
|
|
virtual void SetThermal();
|
|
virtual void SetThermalColdScale();
|
|
virtual void DoThermalBlendCold();
|
|
virtual void DoThermalBlendHot();
|
|
virtual void GetStaticWorldDataSize();
|
|
virtual void SetGXRegister1Color();
|
|
virtual void SetWorldLightFadeLevel();
|
|
virtual void Something();
|
|
virtual void PrepareDynamicLights();
|
|
};
|
|
|
|
extern CCubeRenderer* gpRender;
|
|
|
|
#endif
|