fix action history with frames
This commit is contained in:
@@ -583,7 +583,7 @@ void CanvasModeGrid::commit()
|
||||
m_line.update_vertices(AB);
|
||||
m_line.draw_stroke();
|
||||
};
|
||||
Canvas::I->draw_objects(std::bind(drawer, std::placeholders::_1, std::placeholders::_2));
|
||||
Canvas::I->draw_objects(std::bind(drawer, std::placeholders::_1, std::placeholders::_2), Canvas::I->layer().m_frame_index, true);
|
||||
}
|
||||
|
||||
void CanvasModeGrid::clear()
|
||||
@@ -714,7 +714,7 @@ void CanvasModeMaskFree::on_MouseEvent(MouseEvent* me, glm::vec2& loc)
|
||||
auto v = triangulate(poly_remove_duplicate(m_points2d));
|
||||
Canvas::I->project2Dpoints(v);
|
||||
m_shape.update_vertices(v.data(), (int)v.size());
|
||||
Canvas::I->draw_objects_direct(std::bind(drawer, std::placeholders::_1, std::placeholders::_2), Canvas::I->m_smask);
|
||||
Canvas::I->draw_objects_direct(std::bind(drawer, std::placeholders::_1, std::placeholders::_2), Canvas::I->m_smask, 0);
|
||||
|
||||
// close the path and reset m_shape to contour rendering
|
||||
m_points.push_back(m_points.back());
|
||||
@@ -844,7 +844,7 @@ void CanvasModeMaskLine::leave(kCanvasMode next)
|
||||
ShaderManager::u_vec4(kShaderUniform::Col, {1, 1, 1, 1});
|
||||
m_shape.draw_fill();
|
||||
};
|
||||
Canvas::I->draw_objects_direct(std::bind(drawer, std::placeholders::_1, std::placeholders::_2), Canvas::I->m_smask);
|
||||
Canvas::I->draw_objects_direct(std::bind(drawer, std::placeholders::_1, std::placeholders::_2), Canvas::I->m_smask, 0);
|
||||
|
||||
//m_points.clear();
|
||||
// close the path
|
||||
@@ -977,7 +977,7 @@ void CanvasModeFill::leave(kCanvasMode next)
|
||||
ShaderManager::u_vec4(kShaderUniform::Col, {1, 1, 1, 1});
|
||||
m_shape.draw_fill();
|
||||
};
|
||||
Canvas::I->draw_objects_direct(std::bind(drawer, std::placeholders::_1, std::placeholders::_2), Canvas::I->m_smask);
|
||||
Canvas::I->draw_objects_direct(std::bind(drawer, std::placeholders::_1, std::placeholders::_2), Canvas::I->m_smask, 0);
|
||||
m_points.clear();
|
||||
Canvas::I->m_smask_active = true;
|
||||
}
|
||||
@@ -1321,6 +1321,7 @@ void CanvasModeTransform::enter(kCanvasMode prev)
|
||||
}
|
||||
|
||||
action->m_layer_idx = Canvas::I->m_current_layer_idx;
|
||||
action->m_frame_idx = Canvas::I->layer().m_frame_index;
|
||||
action->m_canvas = Canvas::I;
|
||||
//action->m_stroke = std::move(m_current_stroke);
|
||||
ActionManager::add(action);
|
||||
@@ -1443,6 +1444,7 @@ void CanvasModeTransform::leave(kCanvasMode next)
|
||||
|
||||
action->m_layer_idx = Canvas::I->m_current_layer_idx;
|
||||
action->m_canvas = Canvas::I;
|
||||
action->m_frame_idx = Canvas::I->layer().m_frame_index;
|
||||
//action->m_stroke = std::move(m_current_stroke);
|
||||
ActionManager::add(action);
|
||||
layer->optimize();
|
||||
|
||||
Reference in New Issue
Block a user