From e3e848ac4da1c2ae59d93e62da8ef6f87b3452cd Mon Sep 17 00:00:00 2001 From: rtk0c Date: Mon, 23 May 2022 22:36:46 -0700 Subject: Changeset: 37 Branch comment: [] Add infrastructure for rendering wireframe (rendering broken) including saving and loading config files --- source/Renderer.hpp | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) (limited to 'source/Renderer.hpp') diff --git a/source/Renderer.hpp b/source/Renderer.hpp index 98a9f28..7d96ce2 100644 --- a/source/Renderer.hpp +++ b/source/Renderer.hpp @@ -6,6 +6,7 @@ #include "VertexIndex.hpp" #include +#include #include #include @@ -56,13 +57,35 @@ struct RendererFrameInfo { }; class Renderer { +public: + // NOTE: see Renderer constructor for default values + enum RenderOption { + /// Render everything directly using objects' provided material and vertex/index data. + RO_Shading, + /// Render everything as wireframes using provided position data. + RO_Wireframe, + RO_COUNT, + }; + +public: + RcPtr binding_WireframeMaterial; + private: RendererFrameInfo mFrame; bool mInsideFrame = false; + bool mRenderOptions[RO_COUNT] = {}; public: + Renderer(); + + void LoadBindings(const rapidjson::Value& bindings); + void SaveBindings(rapidjson::Value& into, rapidjson::Document& root)const; + void BeginFrame(Camera& camera, float currentTime, float deltaTime); const RendererFrameInfo& GetLastFrameInfo() const { return mFrame; } void Draw(const RenderObject* objects, const GameObject* gameObject, size_t count); void EndFrame(); + + bool GetRenderOption(RenderOption option) const; + void SetRenderOption(RenderOption option, bool flag); }; -- cgit v1.2.3-70-g09d2