add history to layer create, delete, move, rename, and merge

This commit is contained in:
2019-06-18 17:39:35 +02:00
parent c48a6da8a6
commit 9ee4bc42b9
12 changed files with 259 additions and 137 deletions

View File

@@ -133,7 +133,7 @@ void NodeCanvas::draw()
for (int plane_index = 0; plane_index < 6; plane_index++)
{
auto plane_mvp = proj * camera *
glm::scale(glm::vec3(m_canvas->m_order.size() + 500)) *
glm::scale(glm::vec3(m_canvas->m_layers.size() + 500)) *
m_canvas->m_plane_transform[plane_index] *
glm::translate(glm::vec3(0, 0, -1));
@@ -175,10 +175,9 @@ void NodeCanvas::draw()
{
// check if any layer use blend, otherwise draw directly on main framebuffer
bool use_blend = false;
for (size_t i = 0; i < m_canvas->m_order.size(); i++)
for (size_t i = 0; i < m_canvas->m_layers.size(); i++)
{
auto layer_index = m_canvas->m_order[i];
use_blend |= m_canvas->m_layers[layer_index]->m_blend_mode != 0;
use_blend |= m_canvas->m_layers[i]->m_blend_mode != 0;
}
if (use_blend)
@@ -192,7 +191,7 @@ void NodeCanvas::draw()
for (int plane_index = 0; plane_index < 6; plane_index++)
{
auto plane_mvp = proj * camera *
glm::scale(glm::vec3(m_canvas->m_order.size() + 500)) *
glm::scale(glm::vec3(m_canvas->m_layers.size() + 500)) *
m_canvas->m_plane_transform[plane_index] *
glm::translate(glm::vec3(0, 0, -1));
@@ -209,9 +208,9 @@ void NodeCanvas::draw()
const auto& b = m_canvas->m_current_stroke->m_brush;
for (size_t i = 0; i < m_canvas->m_order.size(); i++)
for (size_t i = 0; i < m_canvas->m_layers.size(); i++)
{
auto layer_index = m_canvas->m_order[i];
auto layer_index = i;
for (int plane_index = 0; plane_index < 6; plane_index++)
{
if (!(m_canvas->m_show_tmp && m_canvas->m_current_layer_idx == layer_index) &&
@@ -226,7 +225,7 @@ void NodeCanvas::draw()
m_blender_rtt.clear();
}
int z = (int)(m_canvas->m_order.size() - i);
int z = (int)(m_canvas->m_layers.size() - i);
auto plane_mvp_z = proj * camera *
glm::scale(glm::vec3(z + 1)) *
glm::eulerAngleYXZ(yaw, pitch, roll) *
@@ -418,7 +417,7 @@ void NodeCanvas::draw()
for (int plane_index = 0; plane_index < 6; plane_index++)
{
auto plane_mvp = proj * camera *
glm::scale(glm::vec3(m_canvas->m_order.size() + 500.f)) *
glm::scale(glm::vec3(m_canvas->m_layers.size() + 500.f)) *
m_canvas->m_plane_transform[plane_index] *
glm::translate(glm::vec3(0, 0, -1.f));
@@ -462,7 +461,7 @@ void NodeCanvas::draw()
for (int plane_index = 0; plane_index < 6; plane_index++)
{
auto plane_mvp = proj * camera *
glm::scale(glm::vec3(m_canvas->m_order.size() + 500.f)) *
glm::scale(glm::vec3(m_canvas->m_layers.size() + 500.f)) *
m_canvas->m_plane_transform[plane_index] *
glm::translate(glm::vec3(0, 0, -1.f));