diff options
author | rtk0c <[email protected]> | 2022-05-23 22:36:46 -0700 |
---|---|---|
committer | rtk0c <[email protected]> | 2022-05-23 22:36:46 -0700 |
commit | e3e848ac4da1c2ae59d93e62da8ef6f87b3452cd (patch) | |
tree | f70d86d4ae80f1fedc0afb1ba3b923e3651f0475 /source/Renderer.hpp | |
parent | 123f741e3f5374b93ac39887b62bfa0d66762ae2 (diff) |
Changeset: 37 Branch comment: [] Add infrastructure for rendering wireframe (rendering broken) including saving and loading config files
Diffstat (limited to 'source/Renderer.hpp')
-rw-r--r-- | source/Renderer.hpp | 23 |
1 files changed, 23 insertions, 0 deletions
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 <glad/glad.h> +#include <rapidjson/fwd.h> #include <cstddef> #include <glm/glm.hpp> @@ -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<Material> 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); }; |