fix glsl float interpolation, fix layers on ui reload, add vr thread for Quest

This commit is contained in:
2019-07-30 22:10:48 +02:00
parent f2d2ef1067
commit 945028f171
12 changed files with 95 additions and 40 deletions

View File

@@ -1202,12 +1202,14 @@ void App::initLayout()
NodeIcon::static_init();
NodeStrokePreview::static_init();
static std::vector<std::shared_ptr<Layer>> saved_layers;
layout.on_reloading = [&] {
saved_layers = std::move(Canvas::I->m_layers);
ui_save();
NodeStrokePreview::empty_queue();
};
layout.on_loaded = [&] {
layout.on_loaded = [&] (bool reloaded) {
LOG("initializing layout updating after load");
layout[main_id]->update(width, height, zoom);
@@ -1215,8 +1217,16 @@ void App::initLayout()
init_sidebar();
layers->add_layer("Default", false, true);
Canvas::I->m_unsaved = false;
if (reloaded)
{
for (const auto& l : saved_layers)
layers->add_layer(l->m_name.c_str(), false, true, l);
}
else
{
layers->add_layer("Default", false, true);
Canvas::I->m_unsaved = false;
}
init_toolbar_draw();
init_toolbar_main();
@@ -1239,12 +1249,16 @@ void App::initLayout()
if (auto x = layout[main_id]->find<NodeBorder>("ext-flt"))
{
if (ShaderManager::ext_texture_float || ShaderManager::ext_half_float_pixel)
if (ShaderManager::ext_float32 || ShaderManager::ext_float16)
{
if (auto t = x->find<NodeText>("ext-flt-text"))
{
int bits = ShaderManager::ext_texture_float ? 32 : 16;
t->set_text_format("F%d", bits);
if (ShaderManager::ext_float32_linear)
t->set_text("F32L");
else if (ShaderManager::ext_float32)
t->set_text("F32");
else if (ShaderManager::ext_float16)
t->set_text("F16");
}
x->m_color = glm::vec4(0, 1, 0, 1);
}