Files
tyra-linux/engine/inc/renderer/renderer_settings.hpp
T
2022-07-26 19:32:20 +02:00

55 lines
1.6 KiB
C++

/*
# ______ ____ ___
# | \/ ____| |___|
# | | | \ | |
#-----------------------------------------------------------------------
# Copyright 2022, tyra - https://github.com/h4570/tyra
# Licenced under Apache License 2.0
# Sandro Sobczyński <sandro.sobczynski@gmail.com>
*/
#pragma once
#include <sstream>
#include <string>
namespace Tyra {
class RendererSettings {
public:
RendererSettings()
: width(640.0F),
height(448.0F),
interlacedHeightF(height / 2),
near(0.1F),
far(4096.0F),
projectionScale(4096.0F),
aspectRatio(width / height),
interlacedHeightUI(static_cast<unsigned int>(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