GPv3: Multi-frame editing #114283

Merged
Falk David merged 14 commits from filedescriptor/blender:gpv3-multi-frame-editing into main 2023-11-02 17:11:07 +01:00
4 changed files with 10 additions and 7 deletions
Showing only changes of commit d7452e2fc8 - Show all commits

View File

@ -825,7 +825,7 @@ class VIEW3D_HT_header(Header):
icon='GP_SELECT_STROKES',
depress=(tool_settings.gpencil_selectmode_edit == 'STROKE'),
).mode = 'STROKE'
row = layout.row(align=True)
row.prop(tool_settings, "use_grease_pencil_multi_frame_editing", text="")

View File

@ -94,7 +94,7 @@ class ObjectModule {
}
}
void begin_sync(Depsgraph */*depsgraph*/, const View &main_view)
void begin_sync(Depsgraph * /*depsgraph*/, const View &main_view)
{
camera_forward_ = main_view.forward();
camera_pos_ = main_view.location();

View File

@ -281,8 +281,10 @@ void DRW_cache_gpencil_sbuffer_clear(struct Object *ob);
/* Grease Pencil */
struct GPUBatch *DRW_cache_grease_pencil_get(struct Object *ob, const struct Scene *scene);
struct GPUBatch *DRW_cache_grease_pencil_edit_points_get(struct Object *ob, const struct Scene *scene);
struct GPUBatch *DRW_cache_grease_pencil_edit_lines_get(struct Object *ob, const struct Scene *scene);
struct GPUBatch *DRW_cache_grease_pencil_edit_points_get(struct Object *ob,
filedescriptor marked this conversation as resolved Outdated

Think the scene can come before the object here, since it's at a higher level / more constant

Think the scene can come before the object here, since it's at a higher level / more constant
const struct Scene *scene);
struct GPUBatch *DRW_cache_grease_pencil_edit_lines_get(struct Object *ob,
const struct Scene *scene);
struct GPUVertBuf *DRW_cache_grease_pencil_position_buffer_get(struct Object *ob,
const struct Scene *scene);
struct GPUVertBuf *DRW_cache_grease_pencil_color_buffer_get(struct Object *ob,

View File

@ -815,9 +815,10 @@ struct EraseOperationExecutor {
/* Erase on all editable drawings. */
const Array<ed::greasepencil::MutableDrawingInfo> drawings =
ed::greasepencil::retrieve_editable_drawings(*scene, grease_pencil);
threading::parallel_for_each(drawings, [&](const ed::greasepencil::MutableDrawingInfo &info) {
execute_eraser_on_drawing(info.layer_index, info.frame_number, info.drawing);
});
threading::parallel_for_each(
drawings, [&](const ed::greasepencil::MutableDrawingInfo &info) {
execute_eraser_on_drawing(info.layer_index, info.frame_number, info.drawing);
});
}
if (changed) {