chore: checkpoint web Blender migration source, tools and docs
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

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:
mes123456
2026-11-10 11:18:01 +08:00
parent 122142c26c
commit f3e21c6b98
6887 changed files with 257154 additions and 12294 deletions

55
lightgroups Normal file
View File

@@ -0,0 +1,55 @@
{
"schemaVersion": 1,
"task": "WBV2-P1424-001",
"scope": "batch",
"pattern": "layer-",
"selectedUnits": [],
"sourcePathCount": 1,
"runtimePathCount": 0,
"hitCount": 42,
"truncated": false,
"hits": [
"1309: if (layer != nullptr && layer->name() == name) return layer;",
"10416: for (ViewLayerAOV *aov = static_cast<ViewLayerAOV *>(layer->aovs.first); aov; aov = aov->next) { PointerRNA pointer = RNA_pointer_create_discrete(scene_pointer.owner_id, RNA_AOV, aov); rows.push_back({{\"name\", aov->name}, {\"type\", aov->type}, {\"isValid\", RNA_boolean_get(&pointer, \"is_valid\")}}); }",
"10417: data[\"aovs\"] = {{\"sceneId\", source_data_id(\"scene:\", *scene_pointer.owner_id)}, {\"layerName\", layer->name}, {\"editable\", scene_pointer.owner_id->lib == nullptr}, {\"activeIndex\", layer->active_aov ? BLI_findindex(&layer->aovs, layer->active_aov) : -1}, {\"rows\", std::move(rows)}};",
"11171: for (Base &base : state->view_layer->object_bases) {",
"11174: Object *object = state->view_layer->basact ? state->view_layer->basact->object : nullptr;",
"11202: {\"selection\", std::move(selection)}, {\"viewLayer\", state->view_layer->name}, {\"pinnedData\", pinned_data}};",
"14946: LISTBASE_FOREACH (Base *, base, &view_layer->object_bases) {",
"18244: for (const auto [frame_number, frame] : layer->frames().items()) {",
"18284: std::string(active_layer->name());",
"18296: for (const auto [frame_number, frame] : layer->frames().items()) {",
"18349: const int duration = layer->get_frame_duration_at(frame_number);",
"18354: std::string(layer->name())},",
"18355: {\"name\", layer->name()},",
"18356: {\"visible\", layer->is_visible()},",
"18357: {\"locked\", layer->is_locked()},",
"18358: {\"opacity\", std::clamp(layer->opacity, 0.0f, 1.0f)},",
"18359: {\"onionSkinning\", layer->use_onion_skinning()},",
"19209: if (strcmp(direction, \"UP\") == 0) grease_pencil->move_node_up(layer->as_node());",
"19210: else if (strcmp(direction, \"DOWN\") == 0) grease_pencil->move_node_down(layer->as_node());",
"19211: else if (strcmp(direction, \"TOP\") == 0) grease_pencil->move_node_top(layer->as_node());",
"19212: else if (strcmp(direction, \"BOTTOM\") == 0) grease_pencil->move_node_bottom(layer->as_node());",
"19241: target_frame > 1000000 || frame == target_frame || layer->frames().contains(target_frame))",
"19246: const GreasePencilFrame *source = layer->frames().lookup_ptr(frame);",
"19278: if (frame < -1000000 || frame > 1000000 || duration < 0 || duration > 1000000 || layer->frames().contains(frame)) {",
"19302: if (frame < -1000000 || frame > 1000000 || !layer->frames().contains(frame) || !layer->remove_frame(frame)) {",
"19382: const GreasePencilFrame *frame_data = layer != nullptr ? layer->frames().lookup_ptr(frame) : nullptr;",
"21067: if (properties[key].get<bool>()) layer->flag |= flag;",
"21068: else layer->flag &= ~flag;",
"21082: layer->samples = int(samples);",
"21118: for (LayerCollection &root : layer->layer_collections) if ((match = find_collection(find_collection, &root)) != nullptr) break;",
"21675: layer->passflag = int(value);",
"21681: layer->cryptomatte_flag = eViewLayerCryptomatteFlags(value);",
"21687: layer->cryptomatte_levels = short(value);",
"21693: layer->pass_alpha_threshold = value;",
"21721: if (BLI_listbase_count(&layer->aovs) != aovs.size()) {",
"21722: while (layer->aovs.first != nullptr) BKE_view_layer_remove_aov(layer, static_cast<ViewLayerAOV *>(layer->aovs.first));",
"21724: ViewLayerAOV *entry = static_cast<ViewLayerAOV *>(layer->aovs.first);",
"21727: layer->active_aov = entry;",
"21759: while (layer->lightgroups.first != nullptr) BKE_view_layer_remove_lightgroup(layer, static_cast<ViewLayerLightgroup *>(layer->lightgroups.first));",
"21908: if (!selected && view_layer->basact == base && object->mode != OB_MODE_OBJECT) {",
"21920: else if (!selected && view_layer->basact == base) {",
"22377: ViewLayer *layer = old_layer ? BKE_view_layer_find(new_scene, old_layer->name) : nullptr;"
]
}