From 7ebc05327df01b6ffa11c4aa82120d53abca448f Mon Sep 17 00:00:00 2001 From: omigamedev Date: Sat, 9 Nov 2019 15:58:26 +0100 Subject: [PATCH] fix save multiple frames --- src/canvas.cpp | 4 +++- src/canvas_layer.cpp | 2 +- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/src/canvas.cpp b/src/canvas.cpp index 15ff735..ba9315d 100644 --- a/src/canvas.cpp +++ b/src/canvas.cpp @@ -2207,7 +2207,7 @@ bool Canvas::project_save_thread(std::string file_path, bool show_progress) int duration = m_layers[i]->frame_duration(fi); fwrite(&duration, sizeof(int), 1, fp); } - + bool gpu = m_layers[i]->frame(fi).gpu_load(); m_layers[i]->optimize(fi); auto snap = m_layers[i]->snapshot(fi); for (int plane_index = 0; plane_index < 6; plane_index++) @@ -2240,6 +2240,8 @@ bool Canvas::project_save_thread(std::string file_path, bool show_progress) pb->m_progress->SetWidthP(p); LOG("progress: %f", p); } + if (!gpu) + m_layers[i]->frame(fi).gpu_unload(); } } diff --git a/src/canvas_layer.cpp b/src/canvas_layer.cpp index 8a7d54b..2e884fe 100644 --- a/src/canvas_layer.cpp +++ b/src/canvas_layer.cpp @@ -31,7 +31,7 @@ LayerFrame& Layer::frame(int frame /*= -1*/) { if (frame == -1) frame = m_frame_index; - return m_frames[m_frame_index]; + return m_frames[frame]; } TextureCube Layer::gen_cube()