#ifndef _CCUBERENDERER_HPP #define _CCUBERENDERER_HPP #include "types.h" #include #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