Advance Blender 5.2 web parity through M12-03D
This commit is contained in:
264
tests/golden/M12-01A/asset-catalog-field-inventory.json
Normal file
264
tests/golden/M12-01A/asset-catalog-field-inventory.json
Normal 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"
|
||||
}
|
||||
Reference in New Issue
Block a user