Fix #127087: GPv3: Initialize/copy attributes when adding/duplicating layers
- set default values for attributes on new GP layer - copy attributes when duplicating GP layer Pull Request: https://projects.blender.org/blender/blender/pulls/128344
This commit is contained in:
committed by
Falk David
parent
5be60642ad
commit
5f84f934a8
@@ -3243,7 +3243,7 @@ blender::bke::greasepencil::Layer &GreasePencil::add_layer(const blender::String
|
||||
using namespace blender;
|
||||
std::string unique_name = check_name_is_unique ? unique_layer_name(*this, name) : name.c_str();
|
||||
const int numLayers = layers().size();
|
||||
CustomData_realloc(&layers_data, numLayers, numLayers + 1);
|
||||
CustomData_realloc(&layers_data, numLayers, numLayers + 1, CD_SET_DEFAULT);
|
||||
bke::greasepencil::Layer *new_layer = MEM_new<bke::greasepencil::Layer>(__func__, unique_name);
|
||||
/* Hide masks by default. */
|
||||
new_layer->base.flag |= GP_LAYER_TREE_NODE_HIDE_MASKS;
|
||||
@@ -3288,8 +3288,15 @@ blender::bke::greasepencil::Layer &GreasePencil::duplicate_layer(
|
||||
{
|
||||
using namespace blender;
|
||||
std::string unique_name = unique_layer_name(*this, duplicate_layer.name());
|
||||
std::optional<int> duplicate_layer_idx = get_layer_index(duplicate_layer);
|
||||
const int numLayers = layers().size();
|
||||
CustomData_realloc(&layers_data, numLayers, numLayers + 1);
|
||||
if (duplicate_layer_idx.has_value()) {
|
||||
for (const int layer_index : IndexRange(layers_data.totlayer)) {
|
||||
CustomData_copy_data_layer(
|
||||
&layers_data, &layers_data, layer_index, layer_index, *duplicate_layer_idx, numLayers, 1);
|
||||
}
|
||||
}
|
||||
bke::greasepencil::Layer *new_layer = MEM_new<bke::greasepencil::Layer>(__func__,
|
||||
duplicate_layer);
|
||||
root_group().add_node(new_layer->as_node());
|
||||
|
||||
Reference in New Issue
Block a user