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:
73
main
Normal file
73
main
Normal file
@@ -0,0 +1,73 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"task": "WBV2-P1424-001",
|
||||
"scope": "batch",
|
||||
"pattern": "state-",
|
||||
"selectedUnits": [],
|
||||
"sourcePathCount": 1,
|
||||
"runtimePathCount": 0,
|
||||
"hitCount": 605,
|
||||
"truncated": true,
|
||||
"hits": [
|
||||
"203: if (state == nullptr || state->main == nullptr || state->scene == nullptr) {",
|
||||
"353: if (state == nullptr || state->main == nullptr || object_id.empty()) return false;",
|
||||
"354: for (Object *object : WebListWrapper<Object>(&state->main->objects)) {",
|
||||
"379: if (state == nullptr || state->main == nullptr || state->scene == nullptr) {",
|
||||
"687: if (state == nullptr || state->main == nullptr || state->scene == nullptr) {",
|
||||
"768: if (state == nullptr || state->main == nullptr) return;",
|
||||
"775: state->geometry_node_graph_overrides[payload[\"id\"].get<std::string>()] = payload.dump();",
|
||||
"779: if (graph.is_object()) state->geometry_node_graph_overrides[graph_id] = graph.dump();",
|
||||
"786: if (state->scene != nullptr) merge(read_id_string(state->scene->id, WEB_ENGINE_GEOMETRY_OVERRIDE_PROPERTY));",
|
||||
"789: if (Text *text = find_text(state->main, WEB_ENGINE_GEOMETRY_OVERRIDE_TEXT)) merge(text_contents(*text));",
|
||||
"790: for (Object &object : state->main->objects) {",
|
||||
"802: if (state == nullptr || state->main == nullptr || !state->physics_simulation_override.empty()) return;",
|
||||
"803: if (state->scene != nullptr) {",
|
||||
"804: const std::string persisted = read_id_string(state->scene->id, WEB_ENGINE_PHYSICS_OVERRIDE_PROPERTY);",
|
||||
"806: state->physics_simulation_override = persisted;",
|
||||
"810: Text *text = find_text(state->main, WEB_ENGINE_PHYSICS_OVERRIDE_TEXT);",
|
||||
"813: if (!contents.empty()) state->physics_simulation_override = contents;",
|
||||
"819: for (const auto &[graph_id, graph_text] : state->geometry_node_graph_overrides) {",
|
||||
"827: if (state->scene != nullptr && write_id_string(state->scene->id, WEB_ENGINE_GEOMETRY_OVERRIDE_PROPERTY, serialized)) {",
|
||||
"830: for (Object &object : state->main->objects) {",
|
||||
"833: return write_text(state->main, WEB_ENGINE_GEOMETRY_OVERRIDE_TEXT, serialized);",
|
||||
"938: const auto it = state->retained_media_metadata.find(data_id);",
|
||||
"939: return it == state->retained_media_metadata.end() ? nullptr : &it->second;",
|
||||
"957: if (bSound *sound = find_sound(state->main, data_id)) return sound;",
|
||||
"962: GlobalMainScope global_main_scope(state->main);",
|
||||
"964: bSound *sound = adopt_web_id<bSound>(state->main, name.c_str());",
|
||||
"981: if (Speaker *speaker = find_speaker(state->main, data_id)) return speaker;",
|
||||
"986: GlobalMainScope global_main_scope(state->main);",
|
||||
"988: Speaker *speaker = adopt_web_id<Speaker>(state->main, name.c_str());",
|
||||
"1013: if (ParticleSettings *settings = find_particle_settings(state->main, data_id)) return settings;",
|
||||
"1018: GlobalMainScope global_main_scope(state->main);",
|
||||
"1020: ParticleSettings *settings = adopt_web_id<ParticleSettings>(state->main, name.c_str());",
|
||||
"1541: state->blend = blend;",
|
||||
"1542: state->main = blend->main;",
|
||||
"1543: state->scene = blend->curscene != nullptr ? blend->curscene :",
|
||||
"1544: static_cast<blender::Scene *>(state->main->scenes.first);",
|
||||
"1545: state->view_layer = blend->cur_view_layer != nullptr ? blend->cur_view_layer :",
|
||||
"1546: (state->scene != nullptr ?",
|
||||
"1547: static_cast<blender::ViewLayer *>(state->scene->view_layers.first) :",
|
||||
"1549: if (state->scene == nullptr || state->view_layer == nullptr) {",
|
||||
"1554: for (blender::ViewLayer &candidate : state->scene->view_layers) {",
|
||||
"1555: blender::BKE_view_layer_synced_ensure(*state->main, state->scene, &candidate);",
|
||||
"1559: for (blender::wmWindowManager &wm : state->main->wm) {",
|
||||
"1585: if (state->main != nullptr) {",
|
||||
"1588: GlobalMainScope main_scope(state->main);",
|
||||
"1589: while (auto *wm = static_cast<blender::wmWindowManager *>(state->main->wm.first)) {",
|
||||
"1590: blender::BKE_id_free(state->main, wm);",
|
||||
"1594: if (state->blend != nullptr) blender::BLO_blendfiledata_free(state->blend);",
|
||||
"1819: CTX_data_main_set(context, state->main);",
|
||||
"1824: for (bScreen &screen : state->main->screens) {",
|
||||
"1838: for (Scene &candidate : state->main->scenes) {",
|
||||
"1839: if (&candidate == state->scene) scene = &candidate;",
|
||||
"1841: if (!scene) scene = static_cast<Scene *>(state->main->scenes.first);",
|
||||
"1843: wmWindow *window = web_editor_window(state->main);",
|
||||
"1845: for (wmWindowManager &manager : state->main->wm) {",
|
||||
"1886: state->scene = CTX_data_scene(context);",
|
||||
"1887: state->view_layer = state->scene ? CTX_data_view_layer(context) : nullptr;",
|
||||
"1894: if (!state || !state->main) { error = \"EDITOR_CONTEXT_UNAVAILABLE\"; return false; }",
|
||||
"1899: wmWindow *window = web_editor_window(state->main);",
|
||||
"1902: for (WorkSpace &candidate : state->main->workspaces) {"
|
||||
]
|
||||
}
|
||||
Reference in New Issue
Block a user