Advance Blender 5.2 web parity through M12-03D
Some checks failed
M6 deployable RC / quick (push) Has been cancelled
M6 deployable RC / chromium (push) Has been cancelled
M6 deployable RC / release (push) Has been cancelled

This commit is contained in:
mes123456
2026-08-17 17:30:27 -04:00
parent 0fe8d2bb56
commit 5a11045ca5
148 changed files with 11683 additions and 66 deletions

View File

@@ -0,0 +1,264 @@
{
"schemaVersion": 1,
"task": "M12-01A",
"enablingTask": true,
"parityStateChange": false,
"blenderVersion": "5.2.0",
"sources": [
{
"role": "DNA_ASSET_STORAGE",
"path": "blender-5.2.0/source/blender/makesdna/DNA_asset_types.h",
"sha256": "de97f44c71d46049b0effdf0fed6aba3f0df72d6d4ba89b88f61e7624d3b9a49"
},
{
"role": "RNA_ASSET_API",
"path": "blender-5.2.0/source/blender/makesrna/intern/rna_asset.cc",
"sha256": "92c9cd5ce718d5b250a02eaefbd1c356a962e2f69b235d23fc97447a9a567a22"
},
{
"role": "ASSET_BLEND_IO",
"path": "blender-5.2.0/source/blender/blenkernel/intern/asset.cc",
"sha256": "eb66d1bfb3efb39cd6c6a6be9e6ff23f2be10a1c427e5b998a2dbcd1ec5b9adc"
},
{
"role": "CATALOG_MODEL",
"path": "blender-5.2.0/source/blender/asset_system/AS_asset_catalog.hh",
"sha256": "6fd93dc78d0634b9c4d0ee03a23d3233be591204aea7957d1b9768b7c3508110"
},
{
"role": "CATALOG_PATH",
"path": "blender-5.2.0/source/blender/asset_system/AS_asset_catalog_path.hh",
"sha256": "9579b74fac1cb3208c96c8aa56b51c9e44d96e3416b718d77270d5f8269bc7b9"
},
{
"role": "CATALOG_FILE_API",
"path": "blender-5.2.0/source/blender/asset_system/intern/asset_catalog_definition_file.hh",
"sha256": "880f5ae42fa6c532d46b70d5264f3ac7f8e8abab8c6cf189a4e8aebdd9dd04b6"
},
{
"role": "CATALOG_FILE_FORMAT",
"path": "blender-5.2.0/source/blender/asset_system/intern/asset_catalog_definition_file.cc",
"sha256": "4316b683125df87e07e4f1116b44f58eb725b654ac9941118a148c08ee916a18"
},
{
"role": "CURRENT_WEB_V1_SNAPSHOT",
"path": "web/protocol/asset-library-io.ts",
"sha256": "5c62539db3833a2113007dfbdfd12ca06704d86e0cf0e57ad97f7fbf6acda7f4"
}
],
"assetTag": {
"fields": [
{
"name": "next",
"cType": "AssetTag*",
"sourceToken": "struct AssetTag *next",
"persistence": "LIST_LINKAGE",
"semantic": "NON_USER_LINKAGE",
"rnaProperty": null
},
{
"name": "prev",
"cType": "AssetTag*",
"sourceToken": "*prev = nullptr",
"persistence": "LIST_LINKAGE",
"semantic": "NON_USER_LINKAGE",
"rnaProperty": null
},
{
"name": "name",
"cType": "char[64]",
"sourceToken": "char name[/*MAX_NAME*/ 64]",
"persistence": "BLEND",
"semantic": "USER_VALUE",
"rnaProperty": "name",
"maximumStorageBytesIncludingNull": 64
}
],
"collectionOperations": ["new", "remove"],
"newSupportsSkipIfExists": true,
"orderIsPersistent": true
},
"assetMetaData": {
"dnaFields": [
{
"name": "local_type_info",
"cType": "AssetTypeInfo*",
"sourceToken": "struct AssetTypeInfo *local_type_info",
"persistence": "RUNTIME_ONLY",
"semantic": "CALLBACK_TYPE",
"rnaProperty": null
},
{
"name": "properties",
"cType": "IDProperty*",
"sourceToken": "struct IDProperty *properties",
"persistence": "BLEND_IDPROPERTY",
"semantic": "CUSTOM_METADATA_NO_ID_POINTERS",
"rnaProperty": "CUSTOM_ID_PROPERTIES"
},
{
"name": "catalog_id",
"cType": "bUUID",
"sourceToken": "struct bUUID catalog_id",
"persistence": "BLEND",
"semantic": "AUTHORITATIVE_CATALOG_ID",
"rnaProperty": "catalog_id"
},
{
"name": "catalog_simple_name",
"cType": "char[64]",
"sourceToken": "char catalog_simple_name[/*MAX_NAME*/ 64]",
"persistence": "BLEND",
"semantic": "RECOVERY_ONLY_NOT_AUTHORITY",
"rnaProperty": "catalog_simple_name"
},
{
"name": "author",
"cType": "char*",
"sourceToken": "char *author = nullptr",
"persistence": "BLEND_DYNAMIC_STRING",
"semantic": "OPTIONAL_DISPLAY_TEXT",
"rnaProperty": "author"
},
{
"name": "description",
"cType": "char*",
"sourceToken": "char *description = nullptr",
"persistence": "BLEND_DYNAMIC_STRING",
"semantic": "OPTIONAL_DISPLAY_TEXT",
"rnaProperty": "description"
},
{
"name": "copyright",
"cType": "char*",
"sourceToken": "char *copyright = nullptr",
"persistence": "BLEND_DYNAMIC_STRING",
"semantic": "OPTIONAL_LEGAL_TEXT",
"rnaProperty": "copyright"
},
{
"name": "license",
"cType": "char*",
"sourceToken": "char *license = nullptr",
"persistence": "BLEND_DYNAMIC_STRING",
"semantic": "OPTIONAL_LEGAL_TEXT",
"rnaProperty": "license"
},
{
"name": "tags",
"cType": "ListBaseT<AssetTag>",
"sourceToken": "ListBaseT<AssetTag> tags",
"persistence": "BLEND_ORDERED_COLLECTION",
"semantic": "FILTER_TOKENS",
"rnaProperty": "tags"
},
{
"name": "active_tag",
"cType": "short",
"sourceToken": "short active_tag = 0",
"persistence": "BLEND",
"semantic": "EDITOR_SELECTION_INDEX",
"rnaProperty": "active_tag"
},
{
"name": "tot_tags",
"cType": "short",
"sourceToken": "short tot_tags = 0",
"persistence": "BLEND_DERIVED_COUNT",
"semantic": "MUST_EQUAL_TAG_LIST_COUNT",
"rnaProperty": null
},
{
"name": "flag",
"cType": "AssetMetaDataFlag",
"sourceToken": "AssetMetaDataFlag flag = {}",
"persistence": "BLEND",
"semantic": "USE_OWN_IMPORT_METHOD_BIT",
"rnaProperty": "use_preferred_import_method"
},
{
"name": "preferred_import_method",
"cType": "eAssetImportMethod",
"sourceToken": "eAssetImportMethod preferred_import_method",
"persistence": "BLEND",
"semantic": "CONDITIONAL_IMPORT_POLICY",
"rnaProperty": "preferred_import_method"
},
{
"name": "_pad",
"cType": "char[4]",
"sourceToken": "char _pad[4] = {}",
"persistence": "ABI_PADDING",
"semantic": "NON_USER_PADDING",
"rnaProperty": null
}
],
"rnaProperties": [
{ "identifier": "author", "type": "STRING", "isReadonly": false, "isRuntime": false },
{ "identifier": "description", "type": "STRING", "isReadonly": false, "isRuntime": false },
{ "identifier": "copyright", "type": "STRING", "isReadonly": false, "isRuntime": false },
{ "identifier": "license", "type": "STRING", "isReadonly": false, "isRuntime": false },
{ "identifier": "tags", "type": "COLLECTION", "isReadonly": true, "isRuntime": false },
{ "identifier": "active_tag", "type": "INT", "isReadonly": false, "isRuntime": false },
{ "identifier": "catalog_id", "type": "STRING", "isReadonly": false, "isRuntime": false },
{ "identifier": "catalog_simple_name", "type": "STRING", "isReadonly": true, "isRuntime": false },
{ "identifier": "use_preferred_import_method", "type": "BOOLEAN", "isReadonly": false, "isRuntime": false },
{ "identifier": "preferred_import_method", "type": "ENUM", "isReadonly": false, "isRuntime": false }
],
"preferredImportMethods": ["LINK", "APPEND", "APPEND_REUSE", "PACK"],
"emptyAuthorDescriptionCopyrightLicenseAreValid": true,
"catalogIdFormat": "RFC4122_UUID_OR_NIL",
"customPropertiesMayNotReferenceDataBlocks": true
},
"catalog": {
"semanticFields": [
{ "name": "catalog_id", "cType": "CatalogID", "sourceToken": "const CatalogID catalog_id", "persistence": "CATALOG_DEFINITION_FILE" },
{ "name": "path", "cType": "AssetCatalogPath", "sourceToken": "AssetCatalogPath path", "persistence": "CATALOG_DEFINITION_FILE" },
{ "name": "simple_name", "cType": "std::string", "sourceToken": "std::string simple_name", "persistence": "CATALOG_DEFINITION_FILE_AND_ASSET_RECOVERY_COPY" }
],
"runtimeFlags": [
{ "name": "is_deleted", "sourceToken": "bool is_deleted = false" },
{ "name": "is_first_loaded", "sourceToken": "bool is_first_loaded = false" },
{ "name": "has_unsaved_changes", "sourceToken": "bool has_unsaved_changes = false" }
],
"definitionFile": {
"defaultFilename": "blender_assets.cats.txt",
"supportedVersion": 1,
"versionMarker": "VERSION ",
"recordFields": ["catalog_id", "path", "simple_name"],
"delimiter": ":",
"writeOrder": ["path", "is_first_loaded", "catalog_id"],
"emptyAndCommentLinesIgnored": true,
"firstSemanticLineMustBeVersion": true
},
"path": {
"encoding": "UTF8_BYTES",
"separator": "/",
"hierarchy": "IMPLICIT_PATH_COMPONENTS",
"leadingSlash": false,
"componentColonAllowed": false,
"cleanup": ["TRIM_COMPONENTS", "REMOVE_EMPTY_COMPONENTS", "REPLACE_INVALID_CHARACTERS"]
},
"identityRules": {
"assetReferenceAuthority": "catalog_id",
"simpleNameAuthority": false,
"parentIdStored": false,
"duplicatePathsAllowed": true,
"duplicatePathSelectionOrder": ["is_first_loaded", "catalog_id"]
}
},
"currentWebSnapshot": {
"assetCatalogIRFields": ["id", "name", "parentId"],
"assetEntryIRFields": ["id", "name", "kind", "catalogId", "tags", "author", "license", "sourceSha256", "sourcePath", "preview"],
"directlyRepresentedMetadata": ["catalog_id", "tags", "author", "license"],
"missingMetadata": ["properties", "description", "copyright", "catalog_simple_name", "active_tag", "use_preferred_import_method", "preferred_import_method"],
"semanticDrift": [
"Blender author and license are optional; Web v1 requires both to be non-empty",
"Blender catalog hierarchy is an implicit cleaned path; Web v1 stores an explicit parentId graph",
"Blender catalog simple_name is recovery metadata; Web v1 name is the only catalog label",
"Blender tag storage is 64 bytes including the terminator; Web v1 bounds JavaScript string length to 64 code units",
"Blender custom ID properties are persisted but Web v1 has no preservation field"
]
},
"nextTask": "M12-01B"
}