update file format to 0.2 for blending mode, visibility and alpha lock attributes
This commit is contained in:
@@ -1803,6 +1803,13 @@ bool Canvas::project_save_thread(std::string file_path)
|
||||
int name_len = (int)m_layers[i].m_name.size();
|
||||
fwrite(&name_len, sizeof(int), 1, fp);
|
||||
fwrite(m_layers[i].m_name.data(), name_len, 1, fp);
|
||||
|
||||
if (ppi_header.doc_version.minor > 1)
|
||||
{
|
||||
fwrite(&m_layers[i].m_blend_mode, sizeof(int), 1, fp);
|
||||
fwrite(&m_layers[i].m_alpha_locked, sizeof(bool), 1, fp);
|
||||
fwrite(&m_layers[i].m_visible, sizeof(bool), 1, fp);
|
||||
}
|
||||
|
||||
App::I.async_start();
|
||||
auto snap = m_layers[i].snapshot();
|
||||
@@ -1971,13 +1978,23 @@ bool Canvas::project_open_thread(std::string file_path)
|
||||
int n_order;
|
||||
fread(&n_order, sizeof(int), 1, fp);
|
||||
|
||||
float layer_opacity;
|
||||
fread(&layer_opacity, sizeof(float), 1, fp);
|
||||
tmp_layers.emplace_back();
|
||||
auto& layer = tmp_layers.back();
|
||||
|
||||
fread(&layer.m_opacity, sizeof(float), 1, fp);
|
||||
|
||||
int name_len;
|
||||
fread(&name_len, sizeof(int), 1, fp);
|
||||
std::string name(name_len, '\0');
|
||||
fread((char*)name.data(), name_len, 1, fp);
|
||||
|
||||
if (ppi_header.doc_version.minor > 1)
|
||||
{
|
||||
fread(&layer.m_blend_mode, sizeof(int), 1, fp);
|
||||
fread(&layer.m_alpha_locked, sizeof(bool), 1, fp);
|
||||
fread(&layer.m_visible, sizeof(bool), 1, fp);
|
||||
}
|
||||
|
||||
snap.clear();
|
||||
for (int plane_index = 0; plane_index < 6; plane_index++)
|
||||
{
|
||||
@@ -2021,8 +2038,6 @@ bool Canvas::project_open_thread(std::string file_path)
|
||||
}
|
||||
|
||||
App::I.async_start();
|
||||
tmp_layers.emplace_back();
|
||||
tmp_layers.back().m_opacity = layer_opacity;
|
||||
tmp_layers.back().create(m_width, m_height, name.c_str());
|
||||
tmp_layers.back().clear({0, 0, 0, 0});
|
||||
tmp_layers.back().restore(snap);
|
||||
|
||||
Reference in New Issue
Block a user