/* # _____ ____ ___ # | \/ ____| |___| # | | | \ | | #----------------------------------------------------------------------- # Copyright 2022, tyra - https://github.com/h4570/tyra # Licensed under Apache License 2.0 # Sandro Sobczyński */ #pragma once #include #include namespace Tyra { class RendererSettings { public: RendererSettings() : width(512.0F), height(448.0F), interlacedHeightF(height / 2), near(0.1F), far(51200.0F), projectionScale(4096.0F), aspectRatio(width / height), interlacedHeightUI(static_cast(interlacedHeightF)) {} ~RendererSettings(); const float& getWidth() const { return width; } const float& getHeight() const { return height; } const float& getNear() const { return near; } const float& getFar() const { return far; } const float& getProjectionScale() const { return projectionScale; } const float& getAspectRatio() const { return aspectRatio; } const float& getInterlacedHeightF() const { return interlacedHeightF; } const unsigned int& getInterlacedHeightUI() const { return interlacedHeightUI; } static void copy(RendererSettings* out, const RendererSettings* in); void set(const RendererSettings& v); void print() const; std::string getPrint() const; private: float width, height, interlacedHeightF, near, far, projectionScale, aspectRatio; unsigned int interlacedHeightUI; }; } // namespace Tyra