save and restore layers image when context is lost in Android
This commit is contained in:
@@ -298,6 +298,7 @@ void App::initLayout()
|
||||
sidebar = layout[main_id]->find<NodeBorder>("sidebar");
|
||||
panels = layout[main_id]->find<Node>("panels");
|
||||
canvas = layout[main_id]->find<NodeCanvas>("paint-canvas");
|
||||
canvas->data_path = data_path;
|
||||
|
||||
//brushes = layout[main_id]->find<NodePanelBrush>("panel-brush");
|
||||
//layers = layout[main_id]->find<NodePanelLayer>("panel-layer");
|
||||
@@ -413,6 +414,7 @@ void App::initLayout()
|
||||
//exit(0);
|
||||
if (canvas)
|
||||
{
|
||||
canvas->m_canvas->snapshot_save(data_path);
|
||||
canvas->m_canvas->m_use_instanced = !canvas->m_canvas->m_use_instanced;
|
||||
//button->color_normal = canvas->m_canvas->m_use_instanced ? glm::vec4(1, 0, 0, 1) : glm::vec4(0, 1, 0, 1);
|
||||
button->m_text->set_text(canvas->m_canvas->m_use_instanced ? "INST" : "NORM");
|
||||
@@ -500,7 +502,14 @@ void App::initLayout()
|
||||
};
|
||||
LOG("initializing layout xml");
|
||||
if (layout.m_loaded)
|
||||
layout[main_id]->restore_context();
|
||||
{
|
||||
LOG("restore layout");
|
||||
layout.restore_context();
|
||||
if (panels->get_child_index(brushes.get()) == -1) brushes->restore_context();
|
||||
if (panels->get_child_index(layers.get()) == -1) layers->restore_context();
|
||||
if (panels->get_child_index(color.get()) == -1) color->restore_context();
|
||||
if (panels->get_child_index(stroke.get()) == -1) stroke->restore_context();
|
||||
}
|
||||
else
|
||||
layout.load("data/layout.xml");
|
||||
LOG("initializing layout completed");
|
||||
@@ -722,5 +731,12 @@ bool App::key_char(char key)
|
||||
|
||||
void App::terminate()
|
||||
{
|
||||
LOG("App::terminate");
|
||||
TextureManager::invalidate();
|
||||
ShaderManager::invalidate();
|
||||
layout.clear_context();
|
||||
brushes->clear_context();
|
||||
layers->clear_context();
|
||||
color->clear_context();
|
||||
stroke->clear_context();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user