{ "schemaVersion": 1, "task": "M12-02A", "parentTask": "M12-02", "parityId": "N-023-ASSET-PREVIEW", "enablingTask": true, "parityStateChange": false, "blenderVersion": "5.2.0", "sources": [ { "role": "PREVIEW_DNA", "path": "blender-5.2.0/source/blender/makesdna/DNA_ID.h", "sha256": "27d0eac02df737f2d2298eeef45e66eae0d76da66542ccdf32400b3e9bd904a9" }, { "role": "PREVIEW_SLOT_ENUM", "path": "blender-5.2.0/source/blender/makesdna/DNA_ID_enums.h", "sha256": "9b97042ca408924c2efa92b49bc44a4f2f949b11768fb89b2c1b71c9c796cd61" }, { "role": "PREVIEW_API", "path": "blender-5.2.0/source/blender/blenkernel/BKE_preview_image.hh", "sha256": "25656ad3ef44bb6d00b6e6f9748d26fd04a358d7bb9f876da4194c05d1e5a9a1" }, { "role": "PREVIEW_IMPLEMENTATION", "path": "blender-5.2.0/source/blender/blenkernel/intern/preview_image.cc", "sha256": "886ae47b7f4950b7b3dc558ac1973c0b114a265d837aa130e4479dd8b438db86" }, { "role": "PREVIEW_RNA", "path": "blender-5.2.0/source/blender/makesrna/intern/rna_ID.cc", "sha256": "d97b3346a3d36e5198989087cbb6a24f43d9d6d535a6f795392a47f77ccdfc2c" }, { "role": "ASSET_PREVIEW_GENERATOR", "path": "blender-5.2.0/source/blender/editors/asset/intern/asset_ops.cc", "sha256": "94ae9ce907d1060b3f4dc7536ddd66590efb8e1680bf7d3dc72ce1ce53523732" }, { "role": "PREVIEW_BLEND_READER", "path": "blender-5.2.0/source/blender/blenloader/intern/readblenentry.cc", "sha256": "dd10bdbdd5f42a09722411e8b99ce34749186d256e91413b7cb5bdef422b8cde" }, { "role": "PREVIEW_SIZE_CONSTANTS", "path": "blender-5.2.0/source/blender/imbuf/IMB_thumbs.hh", "sha256": "c7d5ddf7c3fbbdd731eac7f0761cada3e8e0df024d8d2c7b48d777e517761be1" }, { "role": "ICON_SIZE_CONSTANTS", "path": "blender-5.2.0/source/blender/blenkernel/BKE_icons.hh", "sha256": "c16c52503a2fe2e5df9c2925b04d6ce64468cf2c5d98fd85e0e47423cfc9d2aa" }, { "role": "CURRENT_WEB_V1", "path": "web/protocol/asset-library-io.ts", "sha256": "5c62539db3833a2113007dfbdfd12ca06704d86e0cf0e57ad97f7fbf6acda7f4" }, { "role": "CURRENT_WEB_V2", "path": "web/protocol/asset-catalog-v2.ts", "sha256": "0949838efb2f69466368185b80bb1d2e851672d78311fcd5270eb0814576e5d7" } ], "fixtures": [ { "role": "LOADED_RGBA8_PNG", "path": "tests/files/web/media/sequencer-frame.png", "sha256": "295b083db2299ab904947eb39c17173de70c211882b0d855537d8f3cc27698ed" }, { "role": "ASSET_NO_PREVIEW_BLEND", "path": "tests/files/web/m12_asset_catalog_v1/m12_asset_catalog_v1.blend", "sha256": "8facfe82e3ca0a0605c139ef5bdcbb82d27a6953a6add4e008b68af90bc1211f" } ], "storage": { "slotCount": 2, "slots": [ { "index": 0, "name": "ICON", "defaultRenderMaxHeight": 32 }, { "index": 1, "name": "PREVIEW", "defaultRenderMaxHeight": 128, "customAssetMaxHeight": 256 } ], "fields": [ { "name": "w", "cType": "unsigned int[2]", "persistence": "BLEND", "semantic": "PIXEL_WIDTH" }, { "name": "h", "cType": "unsigned int[2]", "persistence": "BLEND", "semantic": "PIXEL_HEIGHT" }, { "name": "flag", "cType": "short[2]", "persistence": "BLEND_WITH_RUNTIME_BITS_CLEARED", "semantic": "CHANGED_USER_EDITED_RENDERING" }, { "name": "changed_timestamp", "cType": "short[2]", "persistence": "BLEND", "semantic": "CHANGE_COUNTER" }, { "name": "rect", "cType": "unsigned int*[2]", "persistence": "BLEND_ARRAY", "semantic": "ONE_PACKED_RGBA32_VALUE_PER_PIXEL" }, { "name": "runtime", "cType": "PreviewImageRuntime*", "persistence": "RUNTIME_ONLY", "semantic": "GPU_DEFERRED_LOADING_AND_USER_COUNT" } ], "pixelFormat": "RGBA8_PACKED_UINT32", "byteComponents": 4, "alphaMode": "PREMULTIPLIED", "colorSpace": null, "colorSpaceFinding": "NO_COLOR_SPACE_FIELD_OR_RNA_PROPERTY; BYTE_BUFFER_INTERPRETATION_DEPENDS_ON_PRODUCER_PIPELINE" }, "rna": { "idProperty": { "identifier": "preview", "type": "POINTER", "readOnly": true, "nullWhenAbsent": true }, "imagePreviewProperties": [ { "identifier": "is_image_custom", "type": "BOOLEAN", "readOnly": false, "arrayLength": 0 }, { "identifier": "image_size", "type": "INT", "readOnly": false, "arrayLength": 2 }, { "identifier": "image_pixels", "type": "INT", "readOnly": false, "arrayLength": 0 }, { "identifier": "image_pixels_float", "type": "FLOAT", "readOnly": false, "arrayLength": 0 }, { "identifier": "is_icon_custom", "type": "BOOLEAN", "readOnly": false, "arrayLength": 0 }, { "identifier": "icon_size", "type": "INT", "readOnly": false, "arrayLength": 2 }, { "identifier": "icon_pixels", "type": "INT", "readOnly": false, "arrayLength": 0 }, { "identifier": "icon_pixels_float", "type": "FLOAT", "readOnly": false, "arrayLength": 0 }, { "identifier": "icon_id", "type": "INT", "readOnly": true, "arrayLength": 0 } ], "lengthRules": { "packedPixels": "width*height", "floatComponents": "width*height*4", "floatConversion": "BYTE_COMPONENT_DIVIDED_BY_255_WITHOUT_COLOR_TRANSFORM" } }, "runtimeStates": { "noPreview": { "state": "ABSENT_POINTER", "assetCount": 3, "assetTypes": ["Object", "Material", "World"], "previewValues": [null, null, null] }, "loadedPreview": { "sourceSize": [8, 8], "imageSize": [8, 8], "iconSize": [32, 32], "imagePackedPixelCount": 64, "imageFloatComponentCount": 256, "iconPackedPixelCount": 1024, "imageCustom": false, "iconCustom": false }, "emptyBufferRule": "NULL_RECT_OR_ZERO_WIDTH_OR_ZERO_HEIGHT_IS_NO_IMAGE_FOR_THAT_SLOT", "invalidDeferredRule": "RUNTIME_TAG_ONLY_NOT_A_PERSISTED_COLOR_OR_CONTENT_IDENTITY" }, "currentWeb": { "v1Fields": ["assetId", "sha256", "mimeType", "width", "height", "byteLength"], "v2Fields": ["sha256", "mimeType", "width", "height", "byteLength"], "noPreviewRepresentation": { "v1": "OPTIONAL_PROPERTY_ABSENT", "v2": "NULL" }, "missingSemantics": ["slot", "colorSpace", "alphaMode", "sourceSha256", "generatorIdentity", "deferredOrInvalidState"] }, "nonGoals": [ "Preview content identity schema", "Decode budgets", "OPFS commit ordering", "Browser display parity" ], "nextTask": "M12-02B" }