complete open/save project including layer names, in layout bring canvas to background and use translucent UI on top, save computation on Android with lazy rendering on events only

This commit is contained in:
2017-05-01 19:35:58 +01:00
parent c691595767
commit 3ea3fadc46
7 changed files with 61 additions and 38 deletions

View File

@@ -651,9 +651,10 @@ public:
on_click(this);
break;
default:
return kEventResult::Available;
break;
}
return m_mouse_inside ? kEventResult::Consumed : kEventResult::Available;
return kEventResult::Consumed;
}
};
@@ -1345,14 +1346,14 @@ public:
LOG("template initted");
m_layers_container = find<NodeBorder>("layers-container");
LOG("template container found");
for (int i = 0; i < 1; i++)
{
LOG("add layer");
add_layer();
}
// for (int i = 0; i < 1; i++)
// {
// LOG("add layer");
// add_layer();
// }
LOG("find components");
m_current_layer = m_layers[0];
m_layers[0]->m_selected = true;
// m_current_layer = m_layers[0];
// m_layers[0]->m_selected = true;
btn_add = find<NodeButtonCustom>("btn-add");
btn_remove = find<NodeButtonCustom>("btn-remove");
btn_up = find<NodeButtonCustom>("btn-up");
@@ -1360,6 +1361,8 @@ public:
LOG("attach events");
btn_add->on_click = [this](Node*) {
add_layer();
if (on_layer_add)
on_layer_add(this);
};
btn_remove->on_click = [this](Node*) {
if (m_layers.size() == 1)
@@ -1403,8 +1406,6 @@ public:
l->on_selected = std::bind(&NodePanelLayer::handle_layer_selected, this, std::placeholders::_1);
l->on_opacity_changed = std::bind(&NodePanelLayer::handle_layer_opacity, this, std::placeholders::_1, std::placeholders::_2);
m_layers.push_back(l);
if (on_layer_add)
on_layer_add(this);
}
void remove_layer(NodeLayer* layer)
{
@@ -1886,16 +1887,16 @@ public:
{
m_mouse_ignore = false;
m_canvas = std::make_unique<ui::Canvas>();
m_canvas->create(512, 512);
m_canvas->layer_add("asd");
m_canvas->clear();
m_canvas->create(1024, 1024);
//m_canvas->layer_add("asd");
//m_canvas->clear();
m_sampler.create();
m_face_plane.create<1>(2, 2);
}
virtual void restore_context() override
{
Node::restore_context();
m_canvas->create(512, 512);
m_canvas->create(1024, 1024);
m_sampler.create();
//m_canvas->clear();
m_face_plane.create<1>(2, 2);
@@ -1922,7 +1923,7 @@ public:
glm::ivec4 c = (glm::ivec4)glm::vec4(box.x, (int)(vp[3] - box.y - box.w), box.z, box.w);
glViewport(c.x, c.y, c.z, c.w);
m_canvas->m_cam_rot = m_pan * 0.001f;
m_canvas->m_cam_rot = m_pan * 0.003f;
//glm::mat4 proj = glm::ortho(0.f, box.z, 0.f, box.w, -1000.f, 1000.f);
glm::mat4 proj = glm::perspective(glm::radians(m_canvas->m_cam_fov), box.z / box.w, 0.1f, 1000.f);
@@ -2064,8 +2065,8 @@ public:
m_camera_fov = m_canvas->m_cam_fov;
break;
case kEventType::GestureMove:
m_pan = m_pan_start + ge->m_pos_delta * glm::vec2(-1, -1);
m_canvas->m_cam_fov = m_camera_fov - ge->m_distance_delta * .1f;
m_pan = m_pan_start + ge->m_pos_delta * glm::vec2(-1, -1) * 0.3f;
m_canvas->m_cam_fov = m_camera_fov - ge->m_distance_delta * .05f;
//m_zoom_canvas = m_zoom_start + ge->m_distance_delta * .001f;
break;
default: