chore: checkpoint web Blender migration source, tools and docs
Accumulated uncommitted work: GHOST Web backend, WebGL/GPU web layer, web workflow engine and protocol, tooling, docs and task records. Large generated evidence, user-testing archives, build snapshots and imported test assets remain untracked. Co-Authored-By: Claude Code <noreply@anthropic.com>
This commit is contained in:
@@ -1484,6 +1484,15 @@ static bool image_memorypack_imbuf(
|
||||
ibuf->ftype = ibuf->float_data() ? IMB_FTYPE_OPENEXR : IMB_FTYPE_PNG;
|
||||
|
||||
Vector<uint8_t> encoded = IMB_save_image_to_buffer(ibuf, ImBufFlags::ByteData);
|
||||
if (encoded.is_empty() && ibuf->metadata) {
|
||||
/* One rejected text field aborts the whole encode, but packing the pixels
|
||||
* matters more than the tags, so retry once without metadata. */
|
||||
CLOG_STR_ERROR(&LOG, "memory pack: retry without metadata");
|
||||
IDProperty *metadata = ibuf->metadata;
|
||||
ibuf->metadata = nullptr;
|
||||
encoded = IMB_save_image_to_buffer(ibuf, ImBufFlags::ByteData);
|
||||
ibuf->metadata = metadata;
|
||||
}
|
||||
if (encoded.is_empty()) {
|
||||
CLOG_STR_ERROR(&LOG, "memory save for pack error");
|
||||
image_free_packedfiles(ima);
|
||||
@@ -1581,6 +1590,19 @@ static bool image_memorypack_imbuf_for_autosave(
|
||||
ibuf->ftype = ibuf->float_data() ? IMB_FTYPE_OPENEXR : IMB_FTYPE_PNG;
|
||||
|
||||
Vector<uint8_t> encoded = IMB_save_image_to_buffer(ibuf, ImBufFlags::ByteData);
|
||||
if (encoded.is_empty() && ibuf->metadata) {
|
||||
/* One rejected metadata field can abort the whole encode (for example a PNG
|
||||
* text keyword libpng refuses). Session recovery needs the pixels far more
|
||||
* than the tags, so retry once without metadata instead of dropping them. */
|
||||
CLOG_STR_ERROR(&LOG, "autosave pack: retry without metadata");
|
||||
IDProperty *metadata = ibuf->metadata;
|
||||
ibuf->metadata = nullptr;
|
||||
encoded = IMB_save_image_to_buffer(ibuf, ImBufFlags::ByteData);
|
||||
ibuf->metadata = metadata;
|
||||
if (encoded.is_empty()) {
|
||||
CLOG_STR_ERROR(&LOG, "autosave pack: retry failed");
|
||||
}
|
||||
}
|
||||
if (encoded.is_empty()) {
|
||||
CLOG_STR_ERROR(&LOG, "memory save for pack error");
|
||||
image_free_autosave_packedfiles(ima);
|
||||
|
||||
Reference in New Issue
Block a user