configurable viewport draw range

This commit is contained in:
milek7
2019-03-18 23:07:28 +01:00
parent 8685b0ec47
commit 4b3bea9ea3
5 changed files with 11 additions and 1 deletions

View File

@@ -854,6 +854,7 @@ global_settings::ConfigParse(cParser &Parser) {
extraviewport_config conf;
Parser >> conf.monitor >> conf.width >> conf.height;
Parser >> conf.draw_range;
for (size_t i = 0; i < 16; i++)
Parser >> conf.transform[i / 4][i % 4];

View File

@@ -208,6 +208,7 @@ struct global_settings {
std::string monitor;
int width, height;
glm::mat4 transform;
float draw_range;
};
std::vector<extraviewport_config> extra_viewports;

View File

@@ -2260,7 +2260,8 @@ void TMoverParameters::SecuritySystemCheck(double dt)
if (Battery) {
SecuritySystem.update(dt, Vel);
}
else
if (!Battery || !Radio)
{ // wyłączenie baterii deaktywuje sprzęt
RadiostopSwitch(false);
}

View File

@@ -166,6 +166,7 @@ bool opengl_renderer::Init(GLFWwindow *Window)
default_viewport.height = Global.gfx_framebuffer_height;
default_viewport.main = true;
default_viewport.window = m_window;
default_viewport.draw_range = 1.0f;
if (!init_viewport(default_viewport))
return false;
@@ -297,6 +298,7 @@ bool opengl_renderer::AddViewport(const global_settings::extraviewport_config &c
vp.height = conf.height;
vp.window = Application.window(-1, true, vp.width, vp.height, Application.find_monitor(conf.monitor));
vp.camera_transform = conf.transform;
vp.draw_range = conf.draw_range;
bool ret = init_viewport(vp);
glfwMakeContextCurrent(m_window);
@@ -1051,6 +1053,9 @@ void opengl_renderer::setup_pass(viewport_config &Viewport, renderpass_config &C
break;
}
}
Config.draw_range *= Viewport.draw_range;
// setup camera
auto &camera = Config.pass_camera;

View File

@@ -241,6 +241,8 @@ class opengl_renderer
int width;
int height;
float draw_range;
bool main = false;
GLFWwindow *window = nullptr;