Initial Grease Pencil 3.0 stage #106848
|
@ -291,7 +291,7 @@ class LayerGroup : public ::GreasePencilLayerTreeGroup {
|
|||
Span<TreeNode *> nodes_for_write();
|
||||
|
||||
/**
|
||||
* Returns a `Span` of pointers to all the `Layers`s in this group.
|
||||
* Returns a `Span` of pointers to all the `Layer`s in this group.
|
||||
*/
|
||||
Span<const Layer *> layers() const;
|
||||
|
||||
Span<Layer *> layers_for_write();
|
||||
Falk David
commented
Put out of line. Put out of line.
|
||||
|
|
|
@ -48,6 +48,7 @@ static void grease_pencil_init_data(ID *id)
|
|||
grease_pencil->runtime = MEM_new<GreasePencilRuntime>(__func__);
|
||||
|
||||
new (&grease_pencil->root_group) greasepencil::LayerGroup();
|
||||
grease_pencil->active_layer = nullptr;
|
||||
}
|
||||
|
||||
static void grease_pencil_copy_data(Main * /*bmain*/,
|
||||
|
@ -158,6 +159,8 @@ static void grease_pencil_blend_write(BlendWriter *writer, ID *id, const void *i
|
|||
grease_pencil->write_drawing_array(writer);
|
||||
/* Write layer tree. */
|
||||
grease_pencil->write_layer_tree(writer);
|
||||
/* Write active layer pointer. */
|
||||
BLO_write_raw(writer, sizeof(void *), grease_pencil->active_layer);
|
||||
|
||||
/* Write materials. */
|
||||
BLO_write_pointer_array(
|
||||
|
@ -177,6 +180,9 @@ static void grease_pencil_blend_read_data(BlendDataReader *reader, ID *id)
|
|||
grease_pencil->read_drawing_array(reader);
|
||||
/* Read layer tree. */
|
||||
grease_pencil->read_layer_tree(reader);
|
||||
/* Read active layer. */
|
||||
BLO_read_data_address(reader, reinterpret_cast<void **>(&grease_pencil->active_layer));
|
||||
|
||||
/* Read materials. */
|
||||
BLO_read_pointer_array(reader, reinterpret_cast<void **>(&grease_pencil->material_array));
|
||||
|
||||
|
|
|
@ -52,7 +52,7 @@ struct PaintOperationExecutor {
|
|||
* original object.
|
||||
*/
|
||||
GreasePencil &grease_pencil = *static_cast<GreasePencil *>(ob_eval->data);
|
||||
if (grease_pencil.active_layer != NULL) {
|
||||
if (!grease_pencil.has_active_layer()) {
|
||||
/* TODO: create a new layer. */
|
||||
BLI_assert_unreachable();
|
||||
// grease_pencil.runtime->set_active_layer_index(0);
|
||||
|
@ -93,7 +93,7 @@ void PaintOperation::on_stroke_done(const bContext &C)
|
|||
|
||||
GreasePencil &grease_pencil_orig = *static_cast<GreasePencil *>(obact->data);
|
||||
GreasePencil &grease_pencil_eval = *static_cast<GreasePencil *>(ob_eval->data);
|
||||
BLI_assert(grease_pencil_orig.active_layer != NULL && grease_pencil_eval.active_layer != NULL);
|
||||
BLI_assert(grease_pencil_orig.has_active_layer() && grease_pencil_eval.has_active_layer());
|
||||
const bke::greasepencil::Layer &active_layer_orig = grease_pencil_orig.active_layer->wrap();
|
||||
const bke::greasepencil::Layer &active_layer_eval = grease_pencil_eval.active_layer->wrap();
|
||||
int index_orig = active_layer_orig.drawing_index_at(scene->r.cfra);
|
||||
|
|
|
@ -436,6 +436,7 @@ typedef struct GreasePencil {
|
|||
blender::Span<const blender::bke::greasepencil::Layer *> layers() const;
|
||||
blender::Span<blender::bke::greasepencil::Layer *> layers_for_write();
|
||||
|
||||
bool has_active_layer() const;
|
||||
void add_empty_drawings(int add_size);
|
||||
void remove_drawing(int index);
|
||||
|
||||
|
|
Loading…
Reference in New Issue
= {}
doesn't change anything here sinceVector
has a default constructor. It can be removed I think. Same with below