Initial Grease Pencil 3.0 stage #106848

Merged
Falk David merged 224 commits from filedescriptor/blender:grease-pencil-v3 into main 2023-05-30 11:14:22 +02:00
2 changed files with 16 additions and 13 deletions
Showing only changes of commit 4a71836304 - Show all commits

View File

@ -183,10 +183,11 @@ class Layer : public TreeNode, public ::GreasePencilLayer {
/**
* \returns the index of the drawing at frame \a frame or -1 if there is no drawing.
*/
int drawing_index_at(int frame) const;
int drawing_index_at(const int frame) const;
/**
* Should be called whenever the keys in the frames map have changed.
* Should be called whenever the keys in the frames map have changed. E.g. when new keys were
* added, removed or updated.
*/
void tag_frames_map_keys_changed();
};
filedescriptor marked this conversation as resolved Outdated

Would be good to know why this is commented out, or it should be cleaned up before merge in main.

Would be good to know why this is commented out, or it should be cleaned up before merge in main.
@ -266,7 +267,8 @@ class LayerGroup : public TreeNode {
namespace convert {
void legacy_gpencil_frame_to_grease_pencil_drawing(const bGPDframe &gpf, GreasePencilDrawing &r_drawing);
void legacy_gpencil_frame_to_grease_pencil_drawing(const bGPDframe &gpf,
GreasePencilDrawing &r_drawing);
void legacy_gpencil_to_grease_pencil(Main &main, GreasePencil &grease_pencil, bGPdata &gpd);
} // namespace convert

View File

@ -434,7 +434,7 @@ Span<int> Layer::sorted_keys() const
return this->sorted_keys_cache_.data();

.as_span() shouldn't be necessary here.

`.as_span()` shouldn't be necessary here.
}
int Layer::drawing_index_at(int frame) const
int Layer::drawing_index_at(const int frame) const

int frame -> const int frame

`int frame` -> `const int frame`
{
Span<int> sorted_keys = this->sorted_keys();
/* No keyframes, return no drawing. */
@ -682,7 +682,8 @@ void *BKE_grease_pencil_add(Main *bmain, const char *name)
GreasePencil *BKE_grease_pencil_new_nomain()
{
GreasePencil *grease_pencil = reinterpret_cast<GreasePencil *>(BKE_id_new_nomain(ID_GP, nullptr));
GreasePencil *grease_pencil = reinterpret_cast<GreasePencil *>(
BKE_id_new_nomain(ID_GP, nullptr));
grease_pencil_init_data(&grease_pencil->id);

This should not be needed, BKE_id_new_nomain already calls BKE_libblock_init_empty which calls the relevant initi_data callback.

This should not be needed, `BKE_id_new_nomain` already calls `BKE_libblock_init_empty` which calls the relevant `initi_data` callback.
return grease_pencil;
}
@ -1196,13 +1197,13 @@ static int read_layer_node_recursive(blender::bke::greasepencil::LayerGroup &cur
}
static void save_tree_node_to_storage(const blender::bke::greasepencil::TreeNode &node,

GreasePencilLayerTreeNode *dst -> GreasePencilLayerTreeNode &dst

`GreasePencilLayerTreeNode *dst` -> `GreasePencilLayerTreeNode &dst`
GreasePencilLayerTreeNode *dst)
GreasePencilLayerTreeNode &dst)
{
dst->type = node.type;
copy_v3_v3_uchar(dst->color, node.color);
dst->flag = node.flag;
dst.type = node.type;
copy_v3_v3_uchar(dst.color, node.color);
dst.flag = node.flag;
if (node.name) {
dst->name = BLI_strdup(node.name);
dst.name = BLI_strdup(node.name);
}
}
@ -1212,7 +1213,7 @@ static void save_layer_to_storage(const blender::bke::greasepencil::Layer &node,
using namespace blender;
GreasePencilLayerTreeLeaf *new_leaf = MEM_cnew<GreasePencilLayerTreeLeaf>(__func__);
/* Save properties. */
save_tree_node_to_storage(node, &new_leaf->base);
save_tree_node_to_storage(node, new_leaf->base);
/* Save frames map. */
const int frames_size = node.frames().size();
@ -1266,7 +1267,7 @@ static void save_layer_group_to_storage(const blender::bke::greasepencil::LayerG
{
GreasePencilLayerTreeGroup *new_group = MEM_cnew<GreasePencilLayerTreeGroup>(__func__);
/* Save properties. */
save_tree_node_to_storage(node, &new_group->base);
save_tree_node_to_storage(node, new_group->base);
/* Save number of children. */
new_group->children_num = node.num_direct_children();
@ -1432,7 +1433,7 @@ void GreasePencil::free_layer_tree_storage()
}
MEM_SAFE_FREE(masks_storage->masks);
MEM_freeN(node_leaf);
break;
break;
}
case GP_LAYER_TREE_GROUP: {
GreasePencilLayerTreeGroup *group = reinterpret_cast<GreasePencilLayerTreeGroup *>(node);