From d834cfad67cd81d8c4998b90c16791361ca8c0f8 Mon Sep 17 00:00:00 2001 From: Emil <65846814+emil28092005@users.noreply.github.com> Date: Fri, 18 Sep 2026 04:29:41 +0300 Subject: [PATCH] Checkpoint 3: deliver playable samples and complete native authoring workflows --- .gitattributes | 3 + .github/workflows/windows-graphics.yml | 19 +- .gitignore | 5 + CMakeLists.txt | 12 +- README.md | 9 +- apps/editor_gui.cpp | 5 + apps/editor_main.cpp | 147 ++- apps/player_main.cpp | 210 ++- apps/project_launcher.cpp | 435 +++++++ assets/ui/project-launcher-layout.json | 40 + cmake/Assets.cmake | 4 + cmake/EditorUI.cmake | 27 + cmake/Renderer.cmake | 30 +- cmake/Tutorials.cmake | 15 + .../references/project-launcher-prototype.md | 23 + .../references/project-launcher-prototype.png | Bin 0 -> 1048730 bytes docs/IMPLEMENTATION.md | 56 + docs/TOOLCHAINS.md | 71 ++ docs/manual/editor/assets.md | 120 ++ docs/manual/editor/export.md | 99 ++ docs/manual/editor/profiling.md | 76 ++ docs/manual/editor/templates.md | 128 ++ docs/manual/editor/workspace.md | 174 +++ docs/manual/getting-started/build.md | 6 + docs/manual/index.md | 3 +- docs/manual/scripting/api.md | 22 +- docs/manual/scripting/examples.md | 8 + examples/projects/collect-2d/.gitignore | 2 + examples/projects/collect-2d/README.md | 55 + .../collect-2d/Scenes/main.scene.json | 659 ++++++++++ .../projects/collect-2d/Scripts/Gameplay.cpp | 157 +++ .../projects/collect-2d/Scripts/Gameplay.hpp | 7 + .../projects/collect-2d/project.faset.json | 8 + examples/projects/collect-3d/.gitignore | 2 + .../collect-3d/Assets/exit-arch/create.py | 50 + .../collect-3d/Assets/exit-arch/manifest.json | 69 + .../exit-arch/manifest.json.faset-import.json | 5 + ...c033e94b80be643624f4f240ad5353761205b3.glb | Bin 0 -> 5556 bytes .../collect-3d/Assets/exit-arch/source.blend | Bin 0 -> 465057 bytes examples/projects/collect-3d/README.md | 80 ++ .../collect-3d/Scenes/main.scene.json | 845 ++++++++++++ .../collect-3d/Scripts/Extensions/Beacon.hpp | 28 + .../projects/collect-3d/Scripts/Gameplay.cpp | 157 +++ .../projects/collect-3d/Scripts/Gameplay.hpp | 7 + .../projects/collect-3d/project.faset.json | 8 + include/faset/authoring/service.hpp | 1 + include/faset/editor/editor_ui.hpp | 2 + include/faset/editor/mcp.hpp | 2 + include/faset/editor/project_launcher.hpp | 34 + include/faset/editor/session.hpp | 6 + include/faset/player/SceneView.hpp | 5 + include/faset/render/renderer.hpp | 11 +- include/faset/ui/ui.hpp | 2 + mkdocs.yml | 7 +- src/assets/asset_data.cpp | 4 + src/assets/asset_pipeline.cpp | 30 +- src/authoring/service.cpp | 141 +- src/authoring/templates.cpp | 70 +- src/editor/build_service.cpp | 8 +- src/editor/commands.cpp | 39 +- src/editor/editor_ui.cpp | 1134 +++++++++++++++-- src/editor/mcp.cpp | 53 +- src/editor/plugins.cpp | 30 +- src/editor/session.cpp | 223 +++- src/player/SceneView.cpp | 104 +- src/render/renderer.cpp | 108 +- src/render/shader_contract.cpp | 140 ++ src/render/shader_contract.hpp | 14 + src/ui/ui.cpp | 62 +- tests/assets_image_fixtures.hpp | 34 + tests/assets_pipeline.cpp | 113 +- tests/authoring_tests.cpp | 164 +++ tests/editor_gui_mcp_test.py | 110 ++ tests/editor_session_tests.cpp | 75 ++ tests/editor_ui_gizmos.cpp | 167 +++ tests/editor_ui_launcher.cpp | 138 ++ tests/editor_ui_project_settings.cpp | 135 ++ tests/editor_ui_reload.cpp | 127 ++ tests/editor_ui_templates.cpp | 227 ++++ tests/editor_ui_tests.cpp | 72 ++ tests/mcp_stdio_test.py | 34 +- tests/render_reload_tests.cpp | 153 +++ tests/render_tests.cpp | 23 + tests/render_window_tests.cpp | 180 +++ tests/runtime_player_tests.cpp | 102 ++ tests/runtime_tutorials_projects.cpp | 110 ++ tests/ui_tests.cpp | 28 + tools/blender_addon/README.md | 2 +- tools/compile_shader.py | 157 +++ tools/measure_workflows.py | 121 ++ tools/verify_offline_build.py | 79 ++ tools/verify_playable_exports.py | 221 ++++ 92 files changed, 8335 insertions(+), 353 deletions(-) create mode 100644 apps/project_launcher.cpp create mode 100644 assets/ui/project-launcher-layout.json create mode 100644 design/references/project-launcher-prototype.md create mode 100644 design/references/project-launcher-prototype.png create mode 100644 docs/TOOLCHAINS.md create mode 100644 docs/manual/editor/assets.md create mode 100644 docs/manual/editor/export.md create mode 100644 docs/manual/editor/profiling.md create mode 100644 docs/manual/editor/templates.md create mode 100644 docs/manual/editor/workspace.md create mode 100644 examples/projects/collect-2d/.gitignore create mode 100644 examples/projects/collect-2d/README.md create mode 100644 examples/projects/collect-2d/Scenes/main.scene.json create mode 100644 examples/projects/collect-2d/Scripts/Gameplay.cpp create mode 100644 examples/projects/collect-2d/Scripts/Gameplay.hpp create mode 100644 examples/projects/collect-2d/project.faset.json create mode 100644 examples/projects/collect-3d/.gitignore create mode 100644 examples/projects/collect-3d/Assets/exit-arch/create.py create mode 100644 examples/projects/collect-3d/Assets/exit-arch/manifest.json create mode 100644 examples/projects/collect-3d/Assets/exit-arch/manifest.json.faset-import.json create mode 100644 examples/projects/collect-3d/Assets/exit-arch/payload/ee6c748a212905fc9c465cbe95c033e94b80be643624f4f240ad5353761205b3.glb create mode 100644 examples/projects/collect-3d/Assets/exit-arch/source.blend create mode 100644 examples/projects/collect-3d/README.md create mode 100644 examples/projects/collect-3d/Scenes/main.scene.json create mode 100644 examples/projects/collect-3d/Scripts/Extensions/Beacon.hpp create mode 100644 examples/projects/collect-3d/Scripts/Gameplay.cpp create mode 100644 examples/projects/collect-3d/Scripts/Gameplay.hpp create mode 100644 examples/projects/collect-3d/project.faset.json create mode 100644 include/faset/editor/project_launcher.hpp create mode 100644 src/render/shader_contract.cpp create mode 100644 src/render/shader_contract.hpp create mode 100644 tests/assets_image_fixtures.hpp create mode 100644 tests/editor_gui_mcp_test.py create mode 100644 tests/editor_session_tests.cpp create mode 100644 tests/editor_ui_gizmos.cpp create mode 100644 tests/editor_ui_launcher.cpp create mode 100644 tests/editor_ui_project_settings.cpp create mode 100644 tests/editor_ui_reload.cpp create mode 100644 tests/editor_ui_templates.cpp create mode 100644 tests/render_reload_tests.cpp create mode 100644 tests/render_window_tests.cpp create mode 100644 tests/runtime_tutorials_projects.cpp create mode 100644 tools/compile_shader.py create mode 100644 tools/measure_workflows.py create mode 100644 tools/verify_offline_build.py create mode 100644 tools/verify_playable_exports.py diff --git a/.gitattributes b/.gitattributes index bce4344..663c17c 100644 --- a/.gitattributes +++ b/.gitattributes @@ -5,3 +5,6 @@ licenses/*.txt -whitespace *.ttf binary assets/fonts/OFL.txt -whitespace + +*.blend binary +*.glb binary diff --git a/.github/workflows/windows-graphics.yml b/.github/workflows/windows-graphics.yml index 3b318a2..83a3c5f 100644 --- a/.github/workflows/windows-graphics.yml +++ b/.github/workflows/windows-graphics.yml @@ -7,7 +7,7 @@ permissions: contents: read concurrency: group: windows-graphics-${{ github.workflow }}-${{ github.ref }} - cancel-in-progress: true + cancel-in-progress: false jobs: windows-graphics: runs-on: windows-2025 @@ -21,8 +21,9 @@ jobs: uses: ilammy/msvc-dev-cmd@0b201ec74fa43914dc39ae48a89fd1d8cb592756 with: arch: x64 - - name: Cache pinned Vulkan test tools - uses: actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830 + - name: Restore pinned Vulkan test tools + id: vulkan-cache + uses: actions/cache/restore@0057852bfaa89a56745cba8c7296529d2fc39830 with: key: windows-2025-vulkan-${{ hashFiles('tools/ci/prepare_windows_vulkan.py') }} path: | @@ -30,6 +31,14 @@ jobs: .cache/windows-graphics/driver - name: Build official Vulkan loader and SwiftShader from pinned sources run: python tools/ci/prepare_windows_vulkan.py + - name: Save successfully built Vulkan test tools + if: steps.vulkan-cache.outputs.cache-hit != 'true' + uses: actions/cache/save@0057852bfaa89a56745cba8c7296529d2fc39830 + with: + key: ${{ steps.vulkan-cache.outputs.cache-primary-key }} + path: | + .cache/windows-graphics/sdk + .cache/windows-graphics/driver - name: Fetch checksum-verified Slang compiler run: python tools/fetch_slang.py - name: Configure full editor and Player @@ -40,6 +49,8 @@ jobs: run: ctest --preset windows-debug --timeout 180 - name: Real Release exports, 2D and 3D execution, incremental Debug rebuild run: build/windows-debug/faset_build_service_tests.exe --integration .cache/windows-export-e2e + - name: Export and relocate both checked-in playable games + run: python tools/verify_playable_exports.py --editor build/windows-debug/faset_editor.exe --output .cache/windows-playable-exports - name: Preserve graphics and export evidence if: always() uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 @@ -55,3 +66,5 @@ jobs: .cache/windows-export-e2e/result-*.json .cache/windows-export-e2e/export-*/generations/*/manifest.json .cache/windows-export-e2e/export-*/generations/*/verification.ppm + .cache/windows-playable-exports/report.json + .cache/windows-playable-exports/evidence/* diff --git a/.gitignore b/.gitignore index 6fa0d62..07f4ebc 100644 --- a/.gitignore +++ b/.gitignore @@ -19,3 +19,8 @@ CMakeUserPresets.json .env .env.* !.env.example + +# Per-project authoring journals, caches, native builds and exports +**/.faset/ +**/Exports/ +*.blend1 diff --git a/CMakeLists.txt b/CMakeLists.txt index 7fca85d..d164c34 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -63,6 +63,12 @@ if(TARGET faset_editor_commands AND TARGET faset_build_service) include(cmake/Plugins.cmake) add_library(faset_editor_session STATIC src/editor/session.cpp) target_link_libraries(faset_editor_session PUBLIC faset_editor_commands faset_build_service faset_assets faset_editor_plugins) + if(BUILD_TESTING) + add_executable(faset_editor_session_tests tests/editor_session_tests.cpp) + target_link_libraries(faset_editor_session_tests PRIVATE faset_editor_session) + target_compile_definitions(faset_editor_session_tests PRIVATE FASET_TEST_ENGINE="${PROJECT_SOURCE_DIR}") + add_test(NAME editor_session_settings COMMAND faset_editor_session_tests) + endif() endif() foreach(module UI EditorUI Editor Applications) if(NOT FASET_BUILD_EDITOR) @@ -83,10 +89,14 @@ if(TARGET faset_editor_session) set_tests_properties(editor_mcp_stdio PROPERTIES TIMEOUT 60) endif() if(TARGET faset_editor_ui) - target_link_libraries(faset_editor PRIVATE faset_editor_ui) + target_link_libraries(faset_editor PRIVATE faset_editor_ui faset_project_launcher) target_link_libraries(faset_editor PRIVATE faset_stb) target_compile_definitions(faset_editor PRIVATE FASET_HAS_EDITOR_UI=1) target_sources(faset_editor PRIVATE apps/editor_gui.cpp) + if(BUILD_TESTING) + add_test(NAME editor_gui_mcp COMMAND ${Python3_EXECUTABLE} ${PROJECT_SOURCE_DIR}/tests/editor_gui_mcp_test.py $) + set_tests_properties(editor_gui_mcp PROPERTIES LABELS "gpu;window" TIMEOUT 180) + endif() endif() endif() diff --git a/README.md b/README.md index 5f99c7a..dd8812d 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ Faset is an independent engine project for desktop **2D and 3D games on Linux and Windows**. Its priorities are a custom editor that is comfortable to use by hand and through MCP, integration with Blender, and a path toward advanced graphics. -**Current status: MVP implementation is in progress.** The native Editor, shared GUI/MCP authoring, C++ gameplay builds, Vulkan Player, and standalone export are integrated and under acceptance testing. Linux GPU workflows work; complete cross-platform acceptance and the two finished example games remain in progress. See the [implementation checkpoints](docs/IMPLEMENTATION.md) for observed results; a technology appearing in the plan does not mean it is complete or benchmarked. +**Current status: MVP acceptance is in progress.** The native Editor, shared GUI/MCP authoring, C++ gameplay builds, Vulkan Player, standalone export and two playable sample games are integrated. Linux GPU workflows are tested; complete Windows graphics/export acceptance and final validation remain in progress. See the [implementation checkpoints](docs/IMPLEMENTATION.md) for observed results; a technology appearing in the plan does not mean it is complete or benchmarked. ## Start here @@ -12,6 +12,13 @@ Faset is an independent engine project for desktop **2D and 3D games on Linux an - [Documentation](docs/README.md) — navigation and maintenance rules. - [Source studies](docs/studies/README.md) — Unreal Engine, Godot, Unity, Blender, ECS, graphics, asset import, and builds. - [Dependencies and independence](docs/DEPENDENCIES.md) — libraries, tools, and source provenance. +- [Toolchain profiles](docs/TOOLCHAINS.md) — recorded compilers, SDKs, graphics devices and offline preparation. + +After following the manual's build setup, run `build/linux-debug/faset_editor` +(or `build/windows-debug/faset_editor.exe`) to open the project launcher. The +[`collect-2d`](examples/projects/collect-2d) and +[`collect-3d`](examples/projects/collect-3d) projects include playable C++ examples; +the 3D example includes an original Blender asset and import instructions. ## Language diff --git a/apps/editor_gui.cpp b/apps/editor_gui.cpp index 05705a1..e7ed465 100644 --- a/apps/editor_gui.cpp +++ b/apps/editor_gui.cpp @@ -54,6 +54,7 @@ int run_editor_ui(Session& session, bool enable_mcp, std::uint64_t max_frames, const auto font = session.config().engine_root / "assets/fonts/NotoSans.ttf"; const auto theme = session.config().engine_root / "assets/ui/dark.json"; EditorUI ui(session, renderer, font, theme); + ui.set_project_switch_enabled(!enable_mcp); McpServer server(session.commands()); StdioTransport transport; session.commands().add( @@ -75,6 +76,8 @@ int run_editor_ui(Session& session, bool enable_mcp, std::uint64_t max_frames, auto encoded = png(renderer, region); const auto relative = arguments.value("path", std::string(".faset/screenshots/editor.png")); + require(std::filesystem::path(relative).extension() == ".png", "capture.path", + "Editor screenshots must use a .png path"); atomic_write( project_path(session.config().project_root, relative), std::string_view(reinterpret_cast(encoded.data()), encoded.size())); @@ -100,6 +103,8 @@ int run_editor_ui(Session& session, bool enable_mcp, std::uint64_t max_frames, session.poll(); ui.frame(renderer.poll_events()); renderer.render(ui.snapshot()); + if (ui.project_switch_requested()) + return 3; // Application-level request: destroy this Session before opening another. ++frame; std::this_thread::sleep_for(std::chrono::milliseconds(1)); } diff --git a/apps/editor_main.cpp b/apps/editor_main.cpp index 547a437..2a91a31 100644 --- a/apps/editor_main.cpp +++ b/apps/editor_main.cpp @@ -7,6 +7,7 @@ #include #ifdef FASET_HAS_EDITOR_UI #include +#include namespace faset::editor { int run_editor_ui(Session&, bool, std::uint64_t, const std::filesystem::path&); } @@ -38,6 +39,7 @@ std::filesystem::path executable_directory(const char* argument) { void help() { std::cout << "Faset Editor\n" + " faset_editor Open the project launcher\n" " faset_editor --project PATH [--new NAME --dimension 2|3] [--scene RELATIVE_PATH]\n" " faset_editor --project PATH --mcp [--gui]\n" " faset_editor --project PATH --command JSON [--wait]\n" @@ -97,71 +99,102 @@ int main(int argc, char** argv) { else throw Error("cli.option", "Unknown option: " + arg); } - require(!project.empty(), "cli.project", "Use --project PATH to select a project"); require(!(mcp && !command.empty()), "cli.mode", "Choose MCP or a single command"); if (mcp && !explicit_gui) gui = false; - Session session({std::filesystem::absolute(project), std::filesystem::absolute(engine), - executable_directory(argv[0])}); - if (!new_name.empty()) - session.scaffold(new_name, dimension); - const auto settings = session.project(); - if (scene.empty()) - scene = settings.value("start_scene", std::string()); - if (!scene.empty() && - std::filesystem::exists(project_path(session.config().project_root, scene))) - session.authoring().open(scene); - if (!command.empty()) { - const auto request = Json::parse(command); - auto result = session.commands().call(request.at("name"), - request.value("arguments", Json::object())); - if (wait && result.contains("job")) { - const auto id = result.at("job"); - const auto started = std::chrono::steady_clock::now(); - for (;;) { - session.poll(); - result = session.commands().call("faset_job", {{"id", id}}); - const auto state = result.value("state", std::string()); - if (state == "succeeded" || state == "failed" || state == "cancelled" || - state == "conflict") - break; - require(std::chrono::steady_clock::now() - started < std::chrono::minutes(30), - "job.timeout", "Command wait exceeded 30 minutes"); - std::this_thread::sleep_for(std::chrono::milliseconds(20)); - } - } - std::cout << result.dump(2) << '\n'; - const auto state = result.value("state", std::string()); - return state == "failed" || state == "cancelled" || state == "conflict" ? 1 : 0; - } - if (gui) { + require(!project.empty() || (gui && !mcp && new_name.empty()), "cli.project", + "Use --project PATH for command, MCP, or --new modes"); + auto previous_project = project; + for (;;) { + if (project.empty()) { #ifdef FASET_HAS_EDITOR_UI - return run_editor_ui(session, mcp, frames, capture); + const auto selection = + run_project_launcher(engine, previous_project, frames, capture); + if (!selection) + return 0; + project = selection->path; + new_name = selection->create ? selection->name : std::string(); + dimension = selection->dimension; #else - throw Error("editor.gui_unavailable", - "This build has no graphical editor; use --mcp or --command, or build with " - "FASET_BUILD_EDITOR=ON"); + throw Error("editor.gui_unavailable", + "This build has no graphical project launcher; use --project PATH"); #endif - } - require(mcp, "cli.mode", "Headless mode requires --mcp or --command"); - std::signal(SIGINT, interrupt); - std::signal(SIGTERM, interrupt); - McpServer server(session.commands()); - StdioTransport transport; - while (!interrupted && !transport.closed()) { - for (const auto& line : transport.poll()) { - try { - const auto reply = server.handle(Json::parse(line)); - if (reply) - transport.send(*reply); - } catch (const Json::exception&) { - transport.send(server.parse_error()); - } } - session.poll(); - std::this_thread::sleep_for(std::chrono::milliseconds(5)); + Session session({std::filesystem::absolute(project), std::filesystem::absolute(engine), + executable_directory(argv[0])}); + if (!new_name.empty()) + session.scaffold(new_name, dimension); + const auto settings = session.project(); +#ifdef FASET_HAS_EDITOR_UI + if (gui && std::filesystem::exists(project / "project.faset.json")) + remember_project(project); +#endif + if (scene.empty()) + scene = settings.value("start_scene", std::string()); + if (!scene.empty() && + std::filesystem::exists(project_path(session.config().project_root, scene))) + session.authoring().open(scene); + if (!command.empty()) { + const auto request = Json::parse(command); + auto result = session.commands().call(request.at("name"), + request.value("arguments", Json::object())); + if (wait && result.contains("job")) { + const auto id = result.at("job"); + const auto started = std::chrono::steady_clock::now(); + for (;;) { + session.poll(); + result = session.commands().call("faset_job", {{"id", id}}); + const auto state = result.value("state", std::string()); + if (state == "succeeded" || state == "failed" || state == "cancelled" || + state == "conflict") + break; + require(std::chrono::steady_clock::now() - started < + std::chrono::minutes(30), + "job.timeout", "Command wait exceeded 30 minutes"); + std::this_thread::sleep_for(std::chrono::milliseconds(20)); + } + } + std::cout << result.dump(2) << '\n'; + const auto state = result.value("state", std::string()); + return state == "failed" || state == "cancelled" || state == "conflict" ? 1 : 0; + } + if (gui) { +#ifdef FASET_HAS_EDITOR_UI + const int result = run_editor_ui(session, mcp, frames, capture); + if (result != 3) + return result; + previous_project = project; + project.clear(); + scene.clear(); + new_name.clear(); + continue; +#else + throw Error( + "editor.gui_unavailable", + "This build has no graphical editor; use --mcp or --command, or build with " + "FASET_BUILD_EDITOR=ON"); +#endif + } + require(mcp, "cli.mode", "Headless mode requires --mcp or --command"); + std::signal(SIGINT, interrupt); + std::signal(SIGTERM, interrupt); + McpServer server(session.commands()); + StdioTransport transport; + while (!interrupted && !transport.closed()) { + for (const auto& line : transport.poll()) { + try { + const auto reply = server.handle(Json::parse(line)); + if (reply) + transport.send(*reply); + } catch (const Json::exception&) { + transport.send(server.parse_error()); + } + } + session.poll(); + std::this_thread::sleep_for(std::chrono::milliseconds(5)); + } + return 0; } - return 0; } catch (const Error& error) { std::cerr << error.json().dump() << '\n'; return 1; diff --git a/apps/player_main.cpp b/apps/player_main.cpp index ec5c60d..46d8bd5 100644 --- a/apps/player_main.cpp +++ b/apps/player_main.cpp @@ -2,6 +2,7 @@ #include #include #include +#include #include #include #include @@ -9,12 +10,103 @@ #include #include #include +#include #if defined(_WIN32) #define NOMINMAX #include #endif namespace { +using Clock = std::chrono::steady_clock; +using Json = nlohmann::json; +double milliseconds(Clock::time_point begin, Clock::time_point end) { + return std::chrono::duration(end - begin).count(); +} +struct ProfileSample { + double wall{}, simulation{}, snapshot{}, render{}, rendererCpu{}, gpu{}, readbackCpu{}; + faset::runtime::FrameStats runtime; + std::uint32_t draws{}, vertices{}; + std::uint64_t gpuAllocatedBytes{}; + std::uint32_t textureCount{}; + bool physicsDebug{}; +}; +Json distribution(std::vector values) { + if (values.empty()) + return nullptr; + std::sort(values.begin(), values.end()); + auto percentile = [&](double fraction) { + return values[static_cast(std::ceil(fraction * values.size())) - 1]; + }; + return {{"samples", values.size()}, + {"min", values.front()}, + {"p50", percentile(.5)}, + {"p95", percentile(.95)}, + {"max", values.back()}}; +} +Json profileFrames(const std::vector& samples) { + Json frames = Json::array(); + std::vector wall, simulation, snapshot, render, rendererCpu, gpu, readbackCpu; + for (const auto& sample : samples) { + wall.push_back(sample.wall); + simulation.push_back(sample.simulation); + snapshot.push_back(sample.snapshot); + render.push_back(sample.render); + rendererCpu.push_back(sample.rendererCpu); + readbackCpu.push_back(sample.readbackCpu); + // The backend reports zero if timestamp queries are unavailable. Do not + // present that sentinel as a measured zero-cost GPU frame. + const bool gpuMeasured = std::isfinite(sample.gpu) && sample.gpu > 0; + if (gpuMeasured) + gpu.push_back(sample.gpu); + frames.push_back({{"frame", frames.size() + 1}, + {"wall_ms", sample.wall}, + {"simulation_ms", sample.simulation}, + {"snapshot_ms", sample.snapshot}, + {"render_call_ms", sample.render}, + {"renderer_cpu_ms", sample.rendererCpu}, + {"renderer_readback_cpu_ms", sample.readbackCpu}, + {"gpu_ms", gpuMeasured ? Json(sample.gpu) : Json(nullptr)}, + {"fixed_ticks", sample.runtime.fixedTicks}, + {"tick", sample.runtime.tick}, + {"dropped_simulation_seconds", sample.runtime.droppedTime}, + {"interpolation_alpha", sample.runtime.interpolationAlpha}, + {"draw_calls", sample.draws}, + {"vertices", sample.vertices}, + {"gpu_allocated_bytes", sample.gpuAllocatedBytes}, + {"texture_count", sample.textureCount}, + {"physics_debug", sample.physicsDebug}}); + } + return {{"samples", std::move(frames)}, + {"summary_ms", + {{"wall", distribution(std::move(wall))}, + {"simulation", distribution(std::move(simulation))}, + {"snapshot", distribution(std::move(snapshot))}, + {"render_call", distribution(std::move(render))}, + {"renderer_cpu", distribution(std::move(rendererCpu))}, + {"renderer_readback_cpu", distribution(std::move(readbackCpu))}, + {"gpu", distribution(std::move(gpu))}}}}; +} +Json physicsScene(const faset::runtime::Runtime& world, const Json& presentation) { + const int dimension = presentation.at("dimension"); + const std::string bodyName = dimension == 2 ? "rigid_body_2d" : "rigid_body_3d"; + Json result{{"dimension", dimension}, {"entities", Json::array()}}; + for (const auto& entity : presentation.at("entities")) { + const auto handle = world.find(entity.at("id").get()); + Json body; + try { + body = world.fields(handle, "faset." + bodyName); + } catch (const std::invalid_argument&) { + continue; // Render-only entities do not own a physics component. + } + const auto pose = world.transform(handle); // Current physics pose, not interpolation. + result["entities"].push_back( + {{"parent", nullptr}, + {"transform", + {{"position", pose.position}, {"rotation", pose.rotation}, {"scale", pose.scale}}}, + {bodyName, std::move(body)}}); + } + return result; +} std::filesystem::path executableDirectory(const char* argument) { #if defined(_WIN32) std::wstring path(32768, L'\0'); @@ -70,31 +162,29 @@ faset::runtime::RuntimeConfig simulationConfig(const nlohmann::json& scene) { return config; } void validatePackagedShaders(const std::filesystem::path& directory) { - for (const auto* name : {"vertexMain.spv", "fragmentMain.spv", "shadowMain.spv"}) { - const auto path = directory / "shaders" / name; - if (!std::filesystem::is_regular_file(path)) - throw std::runtime_error("Packaged shader is missing: " + path.string()); - const auto bytes = faset::read_text(path); - if (bytes.size() < 20 || bytes.size() % 4 != 0 || - static_cast(bytes[0]) != 0x03 || - static_cast(bytes[1]) != 0x02 || - static_cast(bytes[2]) != 0x23 || - static_cast(bytes[3]) != 0x07) - throw std::runtime_error("Packaged shader is not a SPIR-V module: " + path.string()); - } + const auto shaders = directory / "shaders"; + for (const auto* entry : {"vertexMain", "fragmentMain", "shadowMain"}) + for (const auto* extension : {".spv", ".reflection.json"}) { + const auto path = shaders / (std::string(entry) + extension); + if (!std::filesystem::is_regular_file(path)) + throw std::runtime_error("Packaged shader file is missing: " + path.string()); + } + faset::render::validate_shader_bundle(shaders); } } // namespace int main(int argc, char** argv) { + const auto started = Clock::now(); try { - std::filesystem::path scenePath, assetsPath, capturePath, controlPath; - bool headless = false, validateOnly = false; + std::filesystem::path scenePath, assetsPath, capturePath, controlPath, profilePath; + bool headless = false, validateOnly = false, debugPhysics = false; std::uint64_t maximumFrames = 0; std::set options; for (int i = 1; i < argc; ++i) { const std::string arg = argv[i]; if (arg == "--help") { std::cout << "faset_player [--scene PATH] [--assets CACHE] [--frames N] " - "[--headless] [--capture PATH.ppm] [--validate] [--control PATH]\n" + "[--headless] [--capture PATH.ppm] [--validate] [--control PATH] " + "[--profile PATH.json] [--debug-physics]\n" "No --scene: open scene.fscene beside the executable. CACHE contains " "assets//.\n" "Headless uses offscreen Vulkan; --frames uses the configured fixed " @@ -103,8 +193,10 @@ int main(int argc, char** argv) { "or Vulkan initialization.\n" "--control is an optional editor mailbox for pause/resume/step/stop, " "without world queries.\n" + "--profile requires explicit --frames 1..100000; measured durations " + "include the first frame and renderer GPU waits/readback.\n" "Keys: A/D horizontal, W/S vertical, Space jump, E interact, P pause, " - "N single-step, Escape quit.\n"; + "N single-step, F3 physics boxes, Escape quit.\n"; return 0; } if (!options.insert(arg).second) @@ -122,15 +214,24 @@ int main(int argc, char** argv) { capturePath = value(); else if (arg == "--control") controlPath = value(); + else if (arg == "--profile") + profilePath = value(); else if (arg == "--frames") maximumFrames = count(value()); else if (arg == "--headless") headless = true; else if (arg == "--validate") validateOnly = true; + else if (arg == "--debug-physics") + debugPhysics = true; else throw std::invalid_argument("Unknown option: " + arg); } + if (options.contains("--profile") && + (profilePath.empty() || !options.contains("--frames") || maximumFrames > 100000 || + validateOnly)) + throw std::invalid_argument("--profile requires an output path and explicit --frames " + "1..100000, without --validate"); if (scenePath.empty()) scenePath = executableDirectory(argv[0]) / "scene.fscene"; scenePath = std::filesystem::absolute(scenePath).lexically_normal(); @@ -141,8 +242,10 @@ int main(int argc, char** argv) { assetsPath.string()); if (headless && maximumFrames == 0) maximumFrames = 1; + const auto sceneReadStarted = Clock::now(); const auto document = faset::player::readScene(scenePath); const auto config = simulationConfig(document); + const auto sceneReadFinished = Clock::now(); const auto executableRoot = executableDirectory(argv[0]); if (scenePath.extension() == ".fscene" && std::filesystem::equivalent(scenePath.parent_path(), executableRoot)) @@ -165,12 +268,19 @@ int main(int argc, char** argv) { << '\n'; return 0; } + const auto worldStarted = Clock::now(); faset::runtime::Runtime world(config); faset::gameplay::registerGameplay(world); world.load(document); faset::player::SceneView view(assetsPath); + const auto rendererStarted = Clock::now(); faset::render::Renderer renderer( {1280, 720, document.value("name", std::string("Faset Player")), headless, true}); + const auto rendererReady = Clock::now(); + std::vector profile; + if (!profilePath.empty()) + profile.reserve(static_cast(maximumFrames)); + Json firstFrameMs = nullptr; std::set held; bool stop = false; std::uint64_t frames = 0; @@ -181,6 +291,7 @@ int main(int argc, char** argv) { auto previous = std::chrono::steady_clock::now(); while (!stop && !renderer.should_close() && (maximumFrames == 0 || frames < maximumFrames)) { + const auto frameStarted = Clock::now(); faset::runtime::InputState input; bool singleStep = false; if (!controlPath.empty() && std::filesystem::is_regular_file(controlPath)) { @@ -244,6 +355,8 @@ int main(int argc, char** argv) { world.setPaused(!world.paused()); if (key == "N") singleStep = true; + if (key == "F3") + debugPhysics = !debugPhysics; } } } @@ -258,12 +371,16 @@ int main(int argc, char** argv) { ? config.fixedDelta : std::chrono::duration(now - previous).count(); previous = now; - if (singleStep && world.paused()) - world.singleStep(input); - else - world.advance(elapsed, input); - auto snapshot = view.build(world.snapshotJson(), static_cast(renderer.width()) / - std::max(1u, renderer.height())); + const auto simulationStarted = Clock::now(); + const auto runtimeStats = singleStep && world.paused() ? world.singleStep(input) + : world.advance(elapsed, input); + const auto simulationFinished = Clock::now(); + const auto presentation = world.snapshotJson(); + auto snapshot = view.build(presentation, static_cast(renderer.width()) / + std::max(1u, renderer.height())); + if (debugPhysics) + view.appendPhysicsDebug(snapshot, physicsScene(world, presentation)); + const auto snapshotFinished = Clock::now(); for (const auto& diagnostic : view.diagnostics()) { if (diagnostic.starts_with("error:")) throw std::runtime_error(diagnostic); @@ -272,7 +389,21 @@ int main(int argc, char** argv) { } while (logCursor < world.diagnostics().size()) std::cerr << world.diagnostics()[logCursor++] << '\n'; + const auto renderStarted = Clock::now(); renderer.render(snapshot); + const auto frameFinished = Clock::now(); + if (frames == 0) + firstFrameMs = milliseconds(started, frameFinished); + if (!profilePath.empty()) { + const auto measured = renderer.stats(); + profile.push_back( + {milliseconds(frameStarted, frameFinished), + milliseconds(simulationStarted, simulationFinished), + milliseconds(simulationFinished, snapshotFinished), + milliseconds(renderStarted, frameFinished), measured.cpu_ms, measured.gpu_ms, + measured.readback_cpu_ms, runtimeStats, measured.draw_calls, measured.vertices, + measured.gpu_allocated_bytes, measured.texture_count, debugPhysics}); + } ++frames; } if (!capturePath.empty()) { @@ -281,6 +412,41 @@ int main(int argc, char** argv) { renderer.capture(capturePath); } const auto stats = renderer.stats(); + if (!profilePath.empty()) { + auto report = profileFrames(profile); + report.update( + {{"format", "faset.player-profile"}, + {"version", 1}, + {"requested_frames", maximumFrames}, + {"completed_frames", frames}, + {"dimension", document.value("dimension", 3)}, + {"device", stats.device}, + {"width", renderer.width()}, + {"height", renderer.height()}, + {"validation_enabled", stats.validation_enabled}, + {"validation_errors", stats.validation_errors}, + {"presentation_mode", headless ? "offscreen" : "windowed"}, + {"simulation_mode", "synthetic_fixed_timestep"}, + {"fixed_delta_seconds", config.fixedDelta}, + {"percentile_method", "nearest_rank_all_completed_frames_no_warmup_exclusion"}, + {"resource_notes", "gpu_allocated_bytes sums live Vulkan memory allocations, " + "including alignment, excluding driver internals. " + "texture_count includes the white fallback texture."}, + {"timing_notes", + "Durations use steady_clock wall time, not thread CPU usage. " + "render_call/renderer_cpu include GPU waits, readback and window presentation. " + "renderer_readback_cpu measures map/copy/unmap wall time within that call. " + "GPU timestamps cover submitted rendering, not CPU work. A missing/zero GPU " + "timestamp is null. Frame durations exclude profile bookkeeping and final " + "capture/profile file writes. Startup begins at main(), excluding OS " + "loader/launcher."}, + {"startup_ms", + {{"scene_read", milliseconds(sceneReadStarted, sceneReadFinished)}, + {"world_initialization", milliseconds(worldStarted, rendererStarted)}, + {"renderer_initialization", milliseconds(rendererStarted, rendererReady)}, + {"main_to_first_frame", firstFrameMs}}}}); + faset::atomic_write_json(profilePath, report); + } std::cout << nlohmann::json{{"frames", frames}, {"ticks", world.snapshot().tick}, {"dimension", document.value("dimension", 3)}, diff --git a/apps/project_launcher.cpp b/apps/project_launcher.cpp new file mode 100644 index 0000000..e73ff9b --- /dev/null +++ b/apps/project_launcher.cpp @@ -0,0 +1,435 @@ +#include +#include +#include +#include +#include +#include +#include +#include + +namespace faset::editor { +namespace { +namespace fs = std::filesystem; +using ui::Kind; +using ui::Widget; +fs::path user_home() { +#ifdef _WIN32 + if (const auto* value = std::getenv("USERPROFILE")) + return fs::path(value); +#else + if (const auto* value = std::getenv("HOME")) + return fs::path(value); +#endif + return fs::current_path(); +} +fs::path recent_path() { +#ifdef _WIN32 + if (const auto* value = std::getenv("APPDATA")) + return fs::path(value) / "Faset/recent-projects.json"; +#else + if (const auto* value = std::getenv("XDG_CONFIG_HOME"); value && *value) + return fs::path(value) / "faset/recent-projects.json"; +#endif + return user_home() / ".config/faset/recent-projects.json"; +} +std::string trimmed(std::string text) { + const auto first = text.find_first_not_of(" \t\r\n"); + if (first == std::string::npos) + return {}; + return text.substr(first, text.find_last_not_of(" \t\r\n") - first + 1); +} +fs::path normalize(std::string text) { + text = trimmed(std::move(text)); + if (text.empty()) + throw std::runtime_error("Enter a project directory."); + if (text.find_first_of("\r\n\t") != std::string::npos || text.find('\0') != std::string::npos) + throw std::runtime_error("A directory must fit on one line."); + fs::path path = fs::u8path(text); + if (text == "~") + path = user_home(); + else if (text.starts_with("~/") || text.starts_with("~\\")) + path = user_home() / fs::u8path(text.substr(2)); + path = fs::weakly_canonical(fs::absolute(path)); + if (path.filename() == "project.faset.json") + path = path.parent_path(); + return path; +} +std::string utf8(const fs::path& path) { + const auto value = path.u8string(); + return std::string(reinterpret_cast(value.data()), value.size()); +} +ProjectSelection open_project(const fs::path& path) { + if (!fs::is_directory(path)) + throw std::runtime_error("Project directory does not exist."); + if (!fs::is_regular_file(path / "project.faset.json")) + throw std::runtime_error("No project.faset.json in this directory."); + Json data; + try { + data = read_json(path / "project.faset.json"); + } catch (...) { + throw std::runtime_error("Cannot read project.faset.json."); + } + if (!data.is_object() || data.value("format", std::string()) != "faset.project" || + data.value("version", 0) != 1) + throw std::runtime_error("Unsupported project format or version."); + auto name = data.value("name", std::string()); + const auto dimension = data.value("dimension", 3); + if (name.empty() || (dimension != 2 && dimension != 3)) + throw std::runtime_error("Project name or scene type is invalid."); + return {path, std::move(name), dimension, false}; +} +Json recent_records(const fs::path& file) { + try { + auto j = read_json(file); + return j.is_array() ? j : Json::array(); + } catch (...) { + return Json::array(); + } +} +void remember(const fs::path& project, const fs::path& store) { + const auto selected = open_project(normalize(utf8(project))); + auto records = recent_records(store); + std::erase_if(records.get_ref(), [&](const Json& record) { + return !record.is_string() || record.get() == utf8(selected.path); + }); + records.insert(records.begin(), utf8(selected.path)); + while (records.size() > 12) + records.erase(records.end() - 1); + atomic_write_json(store, records); +} +Widget& button(Widget& parent, const std::string& id, const std::string& text, + std::function action) { + auto& w = parent.add(Kind::Button, id, text); + w.on_click = [action = std::move(action)](Widget&) { action(); }; + return w; +} +} // namespace + +void remember_project(const fs::path& project) { + try { + remember(project, recent_path()); + } catch (...) { /* Recent history is not required to open a project. */ + } +} +struct ProjectLauncher::Impl { + render::Renderer& renderer; + ui::Context ui; + render::Snapshot frame_data; + fs::path recents_file, browse_path; + std::optional pending_browse; + std::optional selected; + bool create = false, cancelled = false, browsing = false, browser_valid = false; + int dimension = 3; + std::string error; + Impl(render::Renderer& r, const fs::path& engine, const fs::path& initial, + const fs::path& recents) + : renderer(r), ui(engine / "assets/fonts/NotoSans.ttf"), + recents_file(recents.empty() ? recent_path() : recents) { + auto theme = ui::Theme::load(engine / "assets/ui/dark.json"); + theme.font_size = 15; + theme.row_height = 30; + ui.set_theme(theme); + ui.apply_layout(read_json(engine / "assets/ui/project-launcher-layout.json")); + ui.set_clipboard([this] { return renderer.clipboard(); }, + [this](const std::string& value) { renderer.set_clipboard(value); }); + ui.set_ime( + [this](bool enabled) { renderer.set_text_input(enabled); }, + [this](ui::Rect r) { renderer.set_text_input_area(r.x, r.y, r.width, r.height); }); + const auto start = initial.empty() ? user_home() / "FasetProjects/MyGame" : initial; + ui.update_text("launcher-path", utf8(start)); + create = initial.empty(); + ui.find("launcher-open")->on_click = [this](Widget&) { set_mode(false); }; + ui.find("launcher-create")->on_click = [this](Widget&) { set_mode(true); }; + ui.find("launcher-2d")->on_click = [this](Widget&) { dimension = 2; }; + ui.find("launcher-3d")->on_click = [this](Widget&) { dimension = 3; }; + ui.find("launcher-submit")->selected = true; + ui.find("launcher-submit")->on_click = [this](Widget&) { submit(); }; + ui.find("launcher-cancel")->on_click = [this](Widget&) { cancelled = true; }; + ui.find("launcher-name")->on_preview = [this](Widget&) { error.clear(); }; + ui.find("launcher-path")->on_preview = [this](Widget&) { error.clear(); }; + ui.find("launcher-browse")->on_click = [this](Widget&) { show_browser(); }; + build_browser(); + load_recents(); + refresh(); + ui.layout(float(renderer.width()), float(renderer.height())); + ui.focus(create ? "launcher-name" : "launcher-path"); + } + void set_mode(bool value) { + ui.clear_focus(); + create = value; + error.clear(); + refresh(); + ui.focus(create ? "launcher-name" : "launcher-path"); + } + void load_recents() { + auto& list = *ui.find("launcher-recents"); + std::size_t i = 0; + std::set paths; + for (const auto& record : recent_records(recents_file)) { + if (!record.is_string()) + continue; + try { + const auto selection = open_project(normalize(record.get())); + if (!paths.insert(selection.path).second) + continue; + const auto id = "launcher-recent-" + std::to_string(i++); + auto& item = list.add(Kind::TreeRow, id, selection.name); + item.layout.height = 40; + item.tooltip = utf8(selection.path); + item.on_click = [this, path = selection.path](Widget&) { + ui.update_text("launcher-path", utf8(path), true); + set_mode(false); + }; + } catch (...) { + } + } + if (i == 0) + list.add(Kind::Label, "launcher-recents-empty", "No recent projects"); + } + void submit() { + ui.clear_focus(); + if (ui.editing()) + return; + try { + const auto path = normalize(ui.find("launcher-path")->text); + if (create) { + const auto name = trimmed(ui.find("launcher-name")->text); + if (name.empty()) + throw std::runtime_error("Enter a project name."); + if (name.size() > 256 || name.find_first_of("\r\n\t") != std::string::npos) + throw std::runtime_error("Use a short project name on one line."); + if (fs::exists(path) && (!fs::is_directory(path) || !fs::is_empty(path))) + throw std::runtime_error("Create requires a new or empty directory."); + auto parent = path.parent_path(); + while (!parent.empty() && !fs::exists(parent)) + parent = parent.parent_path(); + if (parent.empty() || !fs::is_directory(parent)) + throw std::runtime_error("Project parent directory is unavailable."); + selected = ProjectSelection{path, name, dimension, true}; + } else + selected = open_project(path); + error.clear(); + } catch (const fs::filesystem_error&) { + error = "Cannot access this directory."; + } catch (const Json::exception&) { + error = "Invalid project.faset.json metadata."; + } catch (const std::exception& e) { + error = e.what(); + } + } + void build_browser() { + auto& panel = ui.root().add(Kind::Panel, "launcher-browser"); + panel.layout.absolute = true; + panel.layout.padding = 16; + panel.layout.gap = 10; + panel.visible = false; + auto& title = panel.add(Kind::Label, "browser-heading", "Choose project directory"); + title.font_size = 20; + title.layout.height = 35; + auto& nav = panel.add(Kind::Row, "browser-navigation"); + nav.layout.height = 36; + button(nav, "browser-up", "Up", [this] { + browse_to(browse_path.parent_path()); + }).layout.width = 60; + button(nav, "browser-home", "Home", [this] { browse_to(user_home()); }).layout.width = 76; + auto& path = nav.add(Kind::TextField, "browser-path"); + path.layout.flex = 1; + path.on_preview = [this](Widget&) { browser_valid = false; }; + path.on_commit = [this](Widget& w) { + try { + pending_browse = normalize(w.text); + } catch (const std::exception& e) { + error = e.what(); + } + }; + auto& list = panel.add(Kind::Column, "browser-list"); + list.layout.flex = 1; + list.layout.scroll = true; + list.layout.gap = 2; + auto& actions = panel.add(Kind::Row, "browser-actions"); + actions.layout.height = 36; + button(actions, "browser-choose", "Choose directory", [this] { + if (browser_valid) { + ui.update_text("launcher-path", utf8(browse_path), true); + close_browser(); + } + }).layout.width = 180; + button(actions, "browser-cancel", "Cancel", [this] { close_browser(); }).layout.width = 90; + panel.add(Kind::Label, "browser-error"); + } + void browse_to(const fs::path& path) { + browser_valid = false; + try { + const auto normalized = fs::weakly_canonical(fs::absolute(path)); + if (!fs::is_directory(normalized)) + throw std::runtime_error("Directory does not exist."); + std::vector children; + for (const auto& entry : fs::directory_iterator( + normalized, fs::directory_options::skip_permission_denied)) { + std::error_code status; + if (entry.is_directory(status)) + children.push_back(entry.path()); + } + std::sort(children.begin(), children.end()); + browse_path = normalized; + error.clear(); + browser_valid = true; + auto& list = *ui.find("browser-list"); + list.children.clear(); + list.scroll_y = 0; + ui.update_text("browser-path", utf8(browse_path), true); + std::size_t index = 0; + for (const auto& child : children) { + auto& row = list.add(Kind::TreeRow, "browser-entry-" + std::to_string(index++), + "[Folder] " + utf8(child.filename())); + row.layout.height = 34; + row.on_click = [this, child](Widget&) { + ui.clear_focus(); + browse_to(child); + }; + } + if (children.empty()) + list.add(Kind::Label, "browser-empty", "No subdirectories"); + } catch (const fs::filesystem_error&) { + error = "Cannot access this directory."; + } catch (const std::exception& e) { + error = e.what(); + } + } + void show_browser() { + ui.clear_focus(); + fs::path path = user_home(); + try { + path = normalize(ui.find("launcher-path")->text); + while (!path.empty() && !fs::exists(path)) + path = path.parent_path(); + if (!fs::is_directory(path)) + path = path.parent_path(); + } catch (...) { + } + browsing = true; + refresh(); + browse_to(path); + ui.focus("browser-path"); + } + void close_browser() { + ui.clear_focus(false); + browsing = false; + error.clear(); + refresh(); + ui.focus("launcher-path"); + } + void navigate_pending() { + if (pending_browse) { + const auto path = *pending_browse; + pending_browse.reset(); + browse_to(path); + } + } + void refresh() { + ui.find("launcher-open")->selected = !create; + ui.find("launcher-create")->selected = create; + ui.find("launcher-2d")->selected = dimension == 2; + ui.find("launcher-3d")->selected = dimension == 3; + for (const auto* id : {"launcher-name-label", "launcher-name", "launcher-dimension-label", + "launcher-dimensions"}) + ui.find(id)->visible = create; + ui.find("launcher-heading")->text = create ? "Create project" : "Open project"; + ui.find("launcher-submit")->text = create ? "Create project" : "Open project"; + ui.find("launcher-hint")->text = create ? "2D and 3D can share one project." + : "Open a directory containing project.faset.json."; + ui.find("launcher-error")->text = browsing ? "" : error; + ui.find("browser-error")->text = error; + ui.find("browser-choose")->enabled = browser_valid; + ui.find("launcher-body")->enabled = !browsing; + auto* dialog = ui.find("launcher-browser"); + dialog->visible = browsing; + dialog->layout.width = std::max(320.f, std::min(760.f, float(renderer.width()) - 40)); + dialog->layout.height = std::max(300.f, std::min(540.f, float(renderer.height()) - 40)); + dialog->layout.x = (float(renderer.width()) - dialog->layout.width) * .5f; + dialog->layout.y = (float(renderer.height()) - dialog->layout.height) * .5f; + ui.find("launcher-sidebar")->layout.width = + std::clamp(float(renderer.width()) * .24f, 180.f, 235.f); + ui.find("launcher-main")->layout.padding = renderer.width() < 850 ? 16 : 32; + } + void frame(const std::vector& events) { + refresh(); + ui.layout(float(renderer.width()), float(renderer.height())); + for (const auto& event : events) { + if (event.type == render::Event::Type::Quit) + cancelled = true; + if (event.type == render::Event::Type::KeyDown && event.key == "Escape") { + if (browsing) + close_browser(); + else + cancelled = true; + continue; + } + if (event.type == render::Event::Type::KeyDown && event.control && + event.key == "Return") { + if (browsing) { + ui.clear_focus(); + navigate_pending(); + if (!ui.editing() && browser_valid) { + ui.update_text("launcher-path", utf8(browse_path), true); + close_browser(); + } + } else + submit(); + continue; + } + if (browsing && event.type == render::Event::Type::MouseDown && + !ui.find("launcher-browser")->rect.contains(event.x, event.y)) + continue; + ui.handle(event); + navigate_pending(); + refresh(); + ui.layout(float(renderer.width()), float(renderer.height())); + } + refresh(); + ui.layout(float(renderer.width()), float(renderer.height())); + frame_data = {}; + frame_data.clear_color = ui.theme().background; + ui.draw(frame_data); + } +}; +ProjectLauncher::ProjectLauncher(render::Renderer& r, const fs::path& engine, + const fs::path& initial, const fs::path& recents) + : impl_(std::make_unique(r, engine, initial, recents)) {} +ProjectLauncher::~ProjectLauncher() = default; +void ProjectLauncher::frame(const std::vector& events) { + impl_->frame(events); +} +const render::Snapshot& ProjectLauncher::snapshot() const { + return impl_->frame_data; +} +ui::Context& ProjectLauncher::widgets() { + return impl_->ui; +} +const std::optional& ProjectLauncher::selection() const { + return impl_->selected; +} +bool ProjectLauncher::cancelled() const { + return impl_->cancelled; +} +std::optional run_project_launcher(const fs::path& engine, + const fs::path& initial, + std::uint64_t max_frames, + const fs::path& capture) { + render::Renderer renderer({1100, 720, "Faset Engine — Projects", false, true}); + ProjectLauncher launcher(renderer, engine, initial); + std::uint64_t frames = 0; + while (!renderer.should_close() && !launcher.cancelled() && !launcher.selection() && + (max_frames == 0 || frames < max_frames)) { + launcher.frame(renderer.poll_events()); + renderer.render(launcher.snapshot()); + ++frames; + std::this_thread::sleep_for(std::chrono::milliseconds(1)); + } + if (!capture.empty()) + renderer.capture(capture); + if (renderer.stats().validation_errors) + throw std::runtime_error("Project launcher Vulkan validation failed"); + return launcher.selection(); +} +} // namespace faset::editor diff --git a/assets/ui/project-launcher-layout.json b/assets/ui/project-launcher-layout.json new file mode 100644 index 0000000..15f9789 --- /dev/null +++ b/assets/ui/project-launcher-layout.json @@ -0,0 +1,40 @@ +{ + "root": { + "id": "root", + "layout": {"gap": 0}, + "children": [{ + "id": "launcher-body", "kind": "row", "layout": {"flex": 1, "gap": 0}, + "children": [ + {"id": "launcher-sidebar", "kind": "panel", "layout": {"width": 235, "padding": 16, "gap": 8}, "children": [ + {"id": "launcher-wordmark", "kind": "label", "text": "Faset", "font_size": 26, "layout": {"height": 66}}, + {"id": "launcher-open", "kind": "tree_row", "text": "Open project", "layout": {"height": 40}}, + {"id": "launcher-create", "kind": "tree_row", "text": "Create project", "layout": {"height": 40}}, + {"id": "launcher-recent-title", "kind": "label", "text": "Recent projects", "layout": {"height": 54}}, + {"id": "launcher-recents", "kind": "column", "layout": {"flex": 1, "scroll": true, "gap": 6}} + ]}, + {"id": "launcher-main", "kind": "column", "layout": {"flex": 1, "padding": 32, "gap": 12, "scroll": true}, "children": [ + {"id": "launcher-heading", "kind": "label", "text": "Open project", "font_size": 26, "layout": {"height": 64}}, + {"id": "launcher-name-label", "kind": "label", "text": "Project name"}, + {"id": "launcher-name", "kind": "text_field", "text": "My Game", "layout": {"height": 40}}, + {"id": "launcher-path-label", "kind": "label", "text": "Project directory"}, + {"id": "launcher-path-row", "kind": "row", "layout": {"height": 40, "gap": 8}, "children": [ + {"id": "launcher-path", "kind": "text_field", "layout": {"flex": 1}}, + {"id": "launcher-browse", "kind": "button", "text": "Browse", "layout": {"width": 84}} + ]}, + {"id": "launcher-dimension-label", "kind": "label", "text": "Initial scene type"}, + {"id": "launcher-dimensions", "kind": "row", "layout": {"height": 40, "gap": 0}, "children": [ + {"id": "launcher-2d", "kind": "tab", "text": "2D", "layout": {"width": 120}}, + {"id": "launcher-3d", "kind": "tab", "text": "3D", "layout": {"width": 120}} + ]}, + {"id": "launcher-hint", "kind": "label", "text": "Open a directory containing project.faset.json.", "layout": {"height": 36}}, + {"id": "launcher-actions", "kind": "row", "layout": {"height": 40, "gap": 8}, "children": [ + {"id": "launcher-submit", "kind": "button", "text": "Open project", "layout": {"width": 180}}, + {"id": "launcher-cancel", "kind": "button", "text": "Cancel", "layout": {"width": 90}} + ]}, + {"id": "launcher-error", "kind": "label", "layout": {"height": 30}}, + {"id": "launcher-shortcuts", "kind": "label", "text": "Tab: next field Ctrl+Enter: continue Escape: cancel"} + ]} + ] + }] + } +} diff --git a/cmake/Assets.cmake b/cmake/Assets.cmake index 29ea1d0..80550a8 100644 --- a/cmake/Assets.cmake +++ b/cmake/Assets.cmake @@ -8,6 +8,10 @@ add_library(faset_assets target_compile_features(faset_assets PUBLIC cxx_std_20) target_include_directories(faset_assets PUBLIC ${PROJECT_SOURCE_DIR}/include) target_link_libraries(faset_assets PUBLIC faset_asset_data PRIVATE faset_cgltf faset_stb) +string(JSON FASET_CGLTF_COMMIT GET "${FASET_DEPENDENCY_LOCK}" dependencies cgltf commit) +string(JSON FASET_STB_COMMIT GET "${FASET_DEPENDENCY_LOCK}" dependencies stb commit) +target_compile_definitions(faset_assets PRIVATE + FASET_CGLTF_COMMIT="${FASET_CGLTF_COMMIT}" FASET_STB_COMMIT="${FASET_STB_COMMIT}") if(BUILD_TESTING) add_executable(faset_assets_tests ${PROJECT_SOURCE_DIR}/tests/assets_pipeline.cpp) target_link_libraries(faset_assets_tests PRIVATE faset_assets) diff --git a/cmake/EditorUI.cmake b/cmake/EditorUI.cmake index 3f7fddd..f15780d 100644 --- a/cmake/EditorUI.cmake +++ b/cmake/EditorUI.cmake @@ -1,7 +1,24 @@ if(TARGET faset_ui AND TARGET faset_editor_session AND TARGET faset_scene_view) add_library(faset_editor_ui STATIC ${PROJECT_SOURCE_DIR}/src/editor/editor_ui.cpp) target_link_libraries(faset_editor_ui PUBLIC faset_ui faset_editor_session faset_scene_view) + add_library(faset_project_launcher STATIC ${PROJECT_SOURCE_DIR}/apps/project_launcher.cpp) + target_link_libraries(faset_project_launcher PUBLIC faset_ui faset_render) if(BUILD_TESTING) + add_executable(faset_editor_project_settings_ui_tests ${PROJECT_SOURCE_DIR}/tests/editor_ui_project_settings.cpp) + target_link_libraries(faset_editor_project_settings_ui_tests PRIVATE faset_editor_ui) + target_compile_definitions(faset_editor_project_settings_ui_tests PRIVATE FASET_TEST_ENGINE="${PROJECT_SOURCE_DIR}") + add_test(NAME editor_ui_project_settings COMMAND faset_editor_project_settings_ui_tests) + set_tests_properties(editor_ui_project_settings PROPERTIES LABELS "gpu") + add_executable(faset_editor_reload_ui_tests ${PROJECT_SOURCE_DIR}/tests/editor_ui_reload.cpp) + target_link_libraries(faset_editor_reload_ui_tests PRIVATE faset_editor_ui) + target_compile_definitions(faset_editor_reload_ui_tests PRIVATE FASET_TEST_ENGINE="${PROJECT_SOURCE_DIR}") + add_test(NAME editor_ui_reload COMMAND faset_editor_reload_ui_tests) + set_tests_properties(editor_ui_reload PROPERTIES LABELS "gpu") + add_executable(faset_project_launcher_tests ${PROJECT_SOURCE_DIR}/tests/editor_ui_launcher.cpp) + target_link_libraries(faset_project_launcher_tests PRIVATE faset_project_launcher) + target_compile_definitions(faset_project_launcher_tests PRIVATE FASET_TEST_ENGINE="${PROJECT_SOURCE_DIR}") + add_test(NAME editor_ui_launcher COMMAND faset_project_launcher_tests) + set_tests_properties(editor_ui_launcher PROPERTIES LABELS "gpu") add_executable(faset_editor_ui_tests ${PROJECT_SOURCE_DIR}/tests/editor_ui_tests.cpp) target_link_libraries(faset_editor_ui_tests PRIVATE faset_editor_ui) target_compile_definitions(faset_editor_ui_tests PRIVATE FASET_TEST_ENGINE="${PROJECT_SOURCE_DIR}") @@ -9,6 +26,16 @@ if(TARGET faset_ui AND TARGET faset_editor_session AND TARGET faset_scene_view) add_dependencies(faset_editor_ui_tests faset_example_plugin) target_compile_definitions(faset_editor_ui_tests PRIVATE FASET_TEST_PLUGIN_DIRECTORY="${PROJECT_BINARY_DIR}/example-plugin") endif() + add_executable(faset_editor_template_ui_tests ${PROJECT_SOURCE_DIR}/tests/editor_ui_templates.cpp) + target_link_libraries(faset_editor_template_ui_tests PRIVATE faset_editor_ui) + target_compile_definitions(faset_editor_template_ui_tests PRIVATE FASET_TEST_ENGINE="${PROJECT_SOURCE_DIR}") + add_test(NAME editor_ui_templates COMMAND faset_editor_template_ui_tests) + set_tests_properties(editor_ui_templates PROPERTIES LABELS "gpu") + add_executable(faset_editor_gizmo_ui_tests ${PROJECT_SOURCE_DIR}/tests/editor_ui_gizmos.cpp) + target_link_libraries(faset_editor_gizmo_ui_tests PRIVATE faset_editor_ui) + target_compile_definitions(faset_editor_gizmo_ui_tests PRIVATE FASET_TEST_ENGINE="${PROJECT_SOURCE_DIR}") + add_test(NAME editor_ui_gizmos COMMAND faset_editor_gizmo_ui_tests) + set_tests_properties(editor_ui_gizmos PROPERTIES LABELS "gpu") add_test(NAME editor_ui_authoring COMMAND faset_editor_ui_tests) set_tests_properties(editor_ui_authoring PROPERTIES LABELS "gpu") endif() diff --git a/cmake/Renderer.cmake b/cmake/Renderer.cmake index bdd2398..e1ac9f9 100644 --- a/cmake/Renderer.cmake +++ b/cmake/Renderer.cmake @@ -9,13 +9,13 @@ file(MAKE_DIRECTORY "${FASET_SHADER_DIRECTORY}") set(FASET_SHADER_OUTPUTS) foreach(FASET_ENTRY vertexMain fragmentMain shadowMain) set(FASET_SHADER_OUTPUT "${FASET_SHADER_DIRECTORY}/${FASET_ENTRY}.spv") - add_custom_command(OUTPUT "${FASET_SHADER_OUTPUT}" - COMMAND "${SLANGC_EXECUTABLE}" "${PROJECT_SOURCE_DIR}/shaders/baseline.slang" - -entry "${FASET_ENTRY}" -target spirv -profile spirv_1_6 -matrix-layout-column-major - -o "${FASET_SHADER_OUTPUT}" -reflection-json "${FASET_SHADER_DIRECTORY}/${FASET_ENTRY}.reflection.json" - BYPRODUCTS "${FASET_SHADER_DIRECTORY}/${FASET_ENTRY}.reflection.json" - DEPENDS "${PROJECT_SOURCE_DIR}/shaders/baseline.slang" VERBATIM) - list(APPEND FASET_SHADER_OUTPUTS "${FASET_SHADER_OUTPUT}") + add_custom_command(OUTPUT "${FASET_SHADER_OUTPUT}" "${FASET_SHADER_DIRECTORY}/${FASET_ENTRY}.reflection.json" + COMMAND "${Python3_EXECUTABLE}" "${PROJECT_SOURCE_DIR}/tools/compile_shader.py" + --compiler "${SLANGC_EXECUTABLE}" --source "${PROJECT_SOURCE_DIR}/shaders/baseline.slang" + --entry "${FASET_ENTRY}" --output "${FASET_SHADER_DIRECTORY}" + BYPRODUCTS "${FASET_SHADER_DIRECTORY}/${FASET_ENTRY}.slang-reflection.json" + DEPENDS "${PROJECT_SOURCE_DIR}/shaders/baseline.slang" "${PROJECT_SOURCE_DIR}/tools/compile_shader.py" VERBATIM) + list(APPEND FASET_SHADER_OUTPUTS "${FASET_SHADER_OUTPUT}" "${FASET_SHADER_DIRECTORY}/${FASET_ENTRY}.reflection.json") endforeach() add_custom_command(OUTPUT "${FASET_SHADER_DIRECTORY}/compatibility.spv" COMMAND "${SLANGC_EXECUTABLE}" "${PROJECT_SOURCE_DIR}/shaders/compatibility.hlsl" @@ -23,17 +23,27 @@ add_custom_command(OUTPUT "${FASET_SHADER_DIRECTORY}/compatibility.spv" -o "${FASET_SHADER_DIRECTORY}/compatibility.spv" DEPENDS "${PROJECT_SOURCE_DIR}/shaders/compatibility.hlsl" VERBATIM) add_custom_target(faset_shaders DEPENDS ${FASET_SHADER_OUTPUTS} "${FASET_SHADER_DIRECTORY}/compatibility.spv") -add_library(faset_render "${PROJECT_SOURCE_DIR}/src/render/renderer.cpp" "${PROJECT_SOURCE_DIR}/src/render/math.cpp" "${PROJECT_SOURCE_DIR}/src/render/render_graph.cpp") +add_library(faset_render "${PROJECT_SOURCE_DIR}/src/render/renderer.cpp" "${PROJECT_SOURCE_DIR}/src/render/math.cpp" "${PROJECT_SOURCE_DIR}/src/render/render_graph.cpp" "${PROJECT_SOURCE_DIR}/src/render/shader_contract.cpp") target_include_directories(faset_render PUBLIC "${PROJECT_SOURCE_DIR}/include") target_compile_features(faset_render PUBLIC cxx_std_20) -target_link_libraries(faset_render PRIVATE Vulkan::Vulkan SDL3::SDL3) +target_link_libraries(faset_render PRIVATE Vulkan::Vulkan SDL3::SDL3 faset_core) target_compile_definitions(faset_render PRIVATE FASET_SHADER_DIRECTORY="${FASET_SHADER_DIRECTORY}") add_dependencies(faset_render faset_shaders) if(BUILD_TESTING) add_executable(faset_render_tests "${PROJECT_SOURCE_DIR}/tests/render_tests.cpp") - target_link_libraries(faset_render_tests PRIVATE faset_render) + target_link_libraries(faset_render_tests PRIVATE faset_render SDL3::SDL3) add_test(NAME render_graph COMMAND faset_render_tests --unit) add_test(NAME render_offscreen COMMAND faset_render_tests --gpu "${CMAKE_BINARY_DIR}/render-test.ppm") set_tests_properties(render_offscreen PROPERTIES LABELS "gpu") + add_executable(faset_render_reload_tests "${PROJECT_SOURCE_DIR}/tests/render_reload_tests.cpp") + target_link_libraries(faset_render_reload_tests PRIVATE faset_render faset_core) + target_compile_definitions(faset_render_reload_tests PRIVATE + FASET_TEST_SHADER_DIRECTORY="${FASET_SHADER_DIRECTORY}" + FASET_TEST_SHADER_SOURCE="${PROJECT_SOURCE_DIR}/shaders/baseline.slang" + FASET_SHADER_COMPILE_TOOL="${PROJECT_SOURCE_DIR}/tools/compile_shader.py" + FASET_TEST_SLANGC="${SLANGC_EXECUTABLE}" + FASET_PYTHON_EXECUTABLE="${Python3_EXECUTABLE}") + add_test(NAME render_shader_reload COMMAND faset_render_reload_tests) + set_tests_properties(render_shader_reload PROPERTIES LABELS "gpu") endif() install(FILES ${FASET_SHADER_OUTPUTS} DESTINATION shaders) diff --git a/cmake/Tutorials.cmake b/cmake/Tutorials.cmake index 64e4733..08be144 100644 --- a/cmake/Tutorials.cmake +++ b/cmake/Tutorials.cmake @@ -12,3 +12,18 @@ if(BUILD_TESTING AND TARGET faset_runtime) add_test(NAME tutorial_${tutorial} COMMAND faset_tutorial_${tutorial}_tests) endforeach() endif() + +if(BUILD_TESTING AND TARGET faset_runtime) + foreach(dimension 2 3) + set(project_dir "${PROJECT_SOURCE_DIR}/examples/projects/collect-${dimension}d") + add_library(faset_example_${dimension}d STATIC "${project_dir}/Scripts/Gameplay.cpp") + target_include_directories(faset_example_${dimension}d PUBLIC "${project_dir}/Scripts") + target_link_libraries(faset_example_${dimension}d PUBLIC faset_runtime) + add_executable(faset_example_${dimension}d_tests "${PROJECT_SOURCE_DIR}/tests/runtime_tutorials_projects.cpp") + target_link_libraries(faset_example_${dimension}d_tests PRIVATE faset_example_${dimension}d) + target_compile_definitions(faset_example_${dimension}d_tests PRIVATE + FASET_EXAMPLE_DIMENSION=${dimension} + FASET_EXAMPLE_PROJECT="${project_dir}") + add_test(NAME playable_${dimension}d COMMAND faset_example_${dimension}d_tests) + endforeach() +endif() diff --git a/design/references/project-launcher-prototype.md b/design/references/project-launcher-prototype.md new file mode 100644 index 0000000..d5603da --- /dev/null +++ b/design/references/project-launcher-prototype.md @@ -0,0 +1,23 @@ +# Project launcher visual reference + +Generated with the built-in image generation tool before launcher implementation. +The original editor prototype supplied the style reference. + +This bitmap is **visual direction only**, not a source of functional requirements. +Architecture, PLAN.md, and verified workflows determine behavior. Project entries +shown in the image are illustrative; the application must display actual history. +Do not reproduce invented projects, gradients, or nonfunctional controls. + +Direction: near-black charcoal surfaces, compact native utility layout, thin +separators, readable gray text, restrained violet selection and primary action. +Adapt spacing and controls to keyboard navigation, DPI, validation, and actual +project opening/creation requirements. + +## Generation prompt + ++ Use case: ui-mockup. + Asset type: visual direction reference for Faset Engine's native desktop project launcher, not a functional specification. + Input image 1: style reference only, keep its quiet near-black charcoal palette, thin separators, small readable pale-gray typography and restrained violet selection accent. Create a NEW screen, do not edit the original editor. + Primary request: a polished, credible desktop game-engine project launcher. Straight-on screenshot, approximately 1100 by 720 canvas. Compact native title bar "Faset Engine". Narrow left column with modest wordmark "Faset", navigation "Open project" and "Create project", plus a short recent-project list. Main form in Create project mode with heading "Create project", name field "My Game", location "/projects/MyGame", small adjacent browse button, a simple 2D / 3D segmented choice with 3D selected, helper "You can use 2D and 3D in the same project.", and one compact "Create project" action. Recent projects may show "Collect & Escape 2D" and "Collect & Escape 3D" as illustrative entries. + Style: high-fidelity practical native desktop utility, mostly flat charcoal black like Obsidian/Notion, calm density and aligned form fields, generously readable but not oversized. Purposeful empty space below form. Crisp 1px dark separators. Plain text labels, subtle small corner radii. + Avoid: marketing hero, gradients, giant type, pill badges, dashboard cards, glows, stock art, decorative floating elements, fake metrics. No browser chrome. No additional features beyond the launcher. This image informs visual style only; implementation follows actual functional requirements. diff --git a/design/references/project-launcher-prototype.png b/design/references/project-launcher-prototype.png new file mode 100644 index 0000000000000000000000000000000000000000..76c6b32659114e7366fa9f9dea9a21d29fcdd0df GIT binary patch literal 1048730 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%0D^U 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≥txlL+O8f4W|Vwuo7IEVoBlGqrGR?Lz94v`A3} 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≶9 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⩽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

g&7bw)aVBR{FDbj|84zY= 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

VqgWhhYrHtK@01wa6uLq5|OPb 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%0A2MO$#T??7(ax1rNmyEq;&&O6*| zY}$wfxgip2!BfOiG6wrfLi1m68a#5 z8m^%pVOYpLq#xsMW1tB#qeyiEy~!gz5fu`^F-c~#kD|Fth-9!aSiySJ3JSnLN@6(L8<~TVK2Vg8 zO8nV~-eiUiKTDdBdYfpHMm0g%QIR=gAq#{>>FU_1)SSaTh zNy>#4jZ)3!3bYYBelZ8pFMZ-WGZ2>53FWah#O|ZbXG(zhhY_5|A8k!BSvL6yi6)Kg zC+M(E`=qogMM-Cb@$N(v1CMkrqRef(NL`u zC_J2T1jvA+0f^ZP5HmsHbQCd4Ljv}Z6K3mG=gfX0S!hbPEl@{8LZbCxr?cG)m|RkP zk5j@(993GSXamKFPYXH4=eJwMMkbI7kvfj-F!p?Qy2S1|ea09aX})9=V~?qYjWJ}i z#zIPqG7TVps12K~ox#>*n$xVCn6zNZ_1_jb=1TiMK28Ee6R1TZqbp~vKOu;qL&qX( z8G^Gdkmn$kL>;7yr7S!;5_!*L1U*HmILQvt;*q2+r56~*Y1j9dqUB&Gagdk{AeV6Gmr1i3M}&k9Njg?dlCCHa zs$-A{J&IIQP|*)NAtPlid@|eCIyhO@ti+6@Y%xKzNyz&*Z77hoQ8|kt!@w59kAcb9 zimh{MuT#+21qMh44K7620>#3ZPFm3HXzLPz(HQLjGVM{0ig<8lO#zlu+0FlIoubu7 zUE2hV5UQw>S@|(CF+dsZw4h@MHMFse%=%5n<~(Y&9ThK^SX3h+Szt>kw1ypBYVrh%kH+VXiEesf9!sz#D4u|_$JGV^0AvcC8nqd@d=QZ#SAU2oC_ro~77*PVAuX#hMpiLyl0cLW$Bv^xO`{~z z$~-NOEy~np>5hc?KU{CN8)Btl*VEFEgx&B*_X%W8-ee4sqFx9h09Geq$H7P{QIlqp zVvA~u9BmhIy^&F__)iNT;uuP7)lkK_L128G6$}q7tESk@6xG#GjAEpWGG7XSzy(*L z=Vn-~rAee8wJ$H$C?g;K5D94bWVMcB`vB{WtBC-V;k`Rj3YHE zd+7%obe(JZ zSGXbU43?ZM1qFL34Cb2lBeY=@r3nc^emaru_OW^-C!<|@1fGo`Ut{VZ1I6HrDVYSM zRytC}V0aXV)` zc!Rc5o<^&&%8%zPuCGnl)rLe7uSw@AoTnZvG#e#{B_^CeEyK)la*2K&(G9gHDH_(W zIATjwkE0#FjSs{VXMT?O7|Tcy!AxLFj$jl%5>5h-h<=&?Gp+0CPm*wzyl2rEJ?KBQr=!UfUAH zUj%E-HHjYba3OILki-BFTEZyIC$&WzdB;ezl}F_zwsI+l4i`w$t&!}K6Zx)a`z|P? zHh{_PRfdMp4z68CWH#NYqizg3+|JlsgqV8D z7#|4$NJ^Q=3MAq(J~_S+aREddDb@@l(=Z6%qX{6f zp*a4Ci`eYU1i#CN!j&SXQOFZ7c$9^JBI=CdngG+t+EhfVoid}w>6M1D6ttT4DdPbF z*zaQC{HK+FYmqAbnhs6Y!0^<}23h@5cd`^Hw!UC|D59?AE85=;5YmVXF#tv`yJX=~ zGR#GaVt~|~Kmg+1JV|M*8OSbFlu>J%n{6OF!$!w>mylXZ&y;_8_D$-EDA*jL?A1## zy*{j*1(mi#bJXMn{(qePdDLxJaVH2yoO{3f4R6qUnk6ux2@nW@nFj-6MiMs0)9T7} zSGl^Y)0x>htQxYiI%~PQy0WsmR@KT?cH+$RkWM?xm7dZgMm7jBni(+&feeyBvj9m? z?>)WYo9;Q$f9xF*zlgo>ld2EsefOTT&)zZqB6jS3&JB=hYchTTf5nrl^T1+)LW3V_ zos}82TgHK+o??+)Ez5id;M$oh0typNK~-Bvl~U2=PKSP2h}My_`=n;{wIrLL`X8>R&TWJV%wL=@%;jC6vv7L_#(25G< ze7YSXP)mhC)pGQeh$UiD21CfP(Pf?KR;}q2Jv)RgVL8ZaB7>$9*4!dQ89)QY@e_hY zvcJx*4KDmas1b0GE+!L@;0kYWH#rU^rJ->H#MT?CVHtWVhDzOOSAi?Q1rzCGy}BJw zyGw9DAY6$TVAGQ5+{v6Jc42xZZpEYwfP`Q%7DQx}<2fN9-h1@+jM|pm2`)wjA%lMw z*kPrMVcj>{kd0X4jd`L;$yxX2+uF$9%|!6$hJ9zUOZGqz@_Q~ z?dUZ`D*5i*=81*&HmC95^#I<$CLJzHSK`9)Aevk^Fj3deU`FK3_C`+m3@@ucBM^#tqC0VrXZEEKg+)e-(y zBN7*4YGulwFrXmvCh~>bG6f6G~4#88*TwHpDyQ z9g4alI3Cx0!n9#O6{@?^I#mS$F@gi8G$}=QP@`j2l0busx>>HclF!ohVljr8aa6|! zG=NX+t<|U1$Ncsj-UF$CoQw>pkX@3s|7seNpr#EXiPA|22vbR7zYVUI z69Zck7_N~THTJ3qjANJ`BR2X?)q}bu3dq8Htsw|8j-&qz+}tv4^c(rQyHdNURs8_K zaqT%yYO4_AUKw~vdH@*vpz~#AF5DeJgxw^IH?~0Io#2+_=XOS<^x*kM5p%daHj-oQ@;SZ zqDD9qY&VE*QcA|&9xJz;sd6EGWGA3qcLiKzW@rx8A8AZK65n_(-0AWN@goZ;-$=yV zynV7WI@D6IpXLzq=vK)JDIcjw8|11(;S@A7)iXr+oV@@7Iv}^fPNl>I$6AOI{Ff2+ zNg+hP=oC#CL8RX-f}=Q?Gg(M>>Zo%dV~+4liW_w$gnh@L|6f*hBv!BY?i5;^_Tp@H zkv^WvO>EOKnT*q8?)hj85^%lfu4CAE0@hi=#TF4tkmH`@>lpf4VV_=0(}+|H+V?7F zf?F)Ts2<_y2Id;QM*v-tRip{O>E0ufHPBN{aEtp?G%ZY$5np>uRCE^+p%DYx8Oy=O zJZQE@#6f4PN}hXz$57vcQEikj0fvF`gL)uvxWD%(f4V4_;7wC%zuOX|m=@t5v=YJF zGydpcojDxBM(1K1Z~AbRWVlk=fqrcci4ba8^byFGE{y%iO8qbSJBFU7lnkjik%H>Py>j?;JgvN*`2;Xs9ZS-HI(-C7 z5?4y-vyn-1MBhikL|U4)F(OL=HZ=gyt{N%Dx!=&uw z#XZ_A+#I%J6Y8rScaQ{W&`tW}^!4k=O*HN}D+!gNv2@$$gc^b;bB~?SX~KD1)OQz& zqa{RZ+_@rf;;$S0`bShXB0FjT?Qx!qFl}uLag8}h&;J_C$bhg8hSkiUE zxY8YW=hCT|;Kus=Vb>kRMPgD%-vz95cFPWr$%EM$GUmg;R-l{MIU2VbWtcg_L)S{BADw=^}tP2R!So?;5?Of zL`-kwG1%1Vt5Ce2H5Q;*`S;6YbTs z=i?cC1Q79a{@GQo4^Y5>oJ=tuww_jIN41oQ*gVjdw0m2=>8x`Rs~iKtf_G)AX5nT55i zv^1v#SQ1pXx!ao(S~yUog7=f9AfFdYm3W|dJ$Mp*MP#AS32r@%#k z%ku09?#7Pvbi0I*m;_@oKyb5V>OiK!rqQ5QU^2iITaXR+9PwM?)Bxd|v5f#v$qzDa z8M!VzghD?m=7uq0)4erg`$;3+H>_(bKB()bIRI}ff;l9Y;9~s*SI))57^)E(P(ck5 zYQ4sn=*p|q0PGqtrfhuzfL-GsY+oT)zy3+J$9g8TbUlea8(@eHTO2_WJ|~34!-OS4 z#&#!!CnEA!MudkB@@5AeC+_ylLI!~`A+>D96C2msDy!kA>nI2lE!0p64i&`Hu@>nNa# zi=E+GAyLnyxq*@)FiAsMiMxm07RvsujVCFSM`l8&RBKTOBkPD8tB6?xWCuQq#IN4W z2DA>;rmI>Ko|ewQxvg34sgC3_V3f1DCG#q9I?BBzEE%?5kO;YBd#`qVXldEpm8Lcmb5N>?HBeaIcB06pW-NckLt;`f|UGZZ!iCY+z}@s$M#R zPzwFVI8?$e(a@=;+mSw}|C^h)p61Pt~;M3&h5YMMWc=C@@RvXIa-Q=z6B(RY3B^t<{yb+p7$uF}P-Knh1#S3k*d z*(W^ldE^z=T5Y4Dx*EMFkqq*as1p;JUE+FE!wLslgt8o*KG@S%OxM!;5ZhL4xk{pr zmeg(9Thz@_)b;>KxYfB4k*1D$rPa$P)>;4jGdOK@ z2_zsod5?>f=Zx^2tseG^B)DZ%Wcivgzy8Njnf3*@msF_8%sovy!sHKXA-bVG^a@5w zw;C|cFWjG+y^G8iY1rkh7mKYSFt!5{ZtjcjNfu|p(eQCFH^{15uAQOS%u>sVuH`qn zi$`<}$d$Zy5oLydwC;eapTl*47~7Q9p}z*ap!6J8fL3ujg1N^+ZF7+;l7dtd z5%z@@v$?E5icZ{D#nFJ0tHLdEp~J*efK;F#l@R`)d%)cLT0Kp$L2>j>Aoss%=`i>| zQSLEYXIFW#0UO+fy)g|3oXtrn#Lh~MyA(MsxmgfGdtL8se2t0b%9crq!<&O#GWILy zqGc$Jge5|-PrP*rTEfmckL*koLrFCZcq+e&DB-0w)=q%7=-`S;sY;H_M``OKQY$?1 z#=aKSD+3w z9w|p!1#T(lyfVlMO2p3t4Ey}Stg=xtHBw}JR*$tYwh6%z5kGPY58L+u6hunM6p50= z`XflfggdALXav3b+enap?OgGiH3s_+Q>bZs*D?0mlaBz_NdsjVc2Che**h`vTO4BD z4+nUtu8Y4^=UqmiOJfniyrUUS3Yf7jzUfW`?96zoY^&@cg4o~M&i2E&{3YT&@BsIb zy+;YR1w^95GG0swTSP+w>~2$k>_uZIM%RE9s^=QneRi7&#L+ci+v^Auhm}X78RZ;yTDo^+BsQwql@f&IOOZC&Q7VG@!&aYo z!MF>22ipwRm>NSb;_O?;K98&6Id53T4+hyu(5-*@kCEl;OY0)gMKYAmz1~V!zJh*mLu1t0Rn`TbV z2Eb)73A68@o0uiJHNevi&}-o-u91T&!gpNCmxMPN9s&S)Qn@?5AP>Ln-bLbLYoZ?3`upk8c6~Fe!m;6RBJAH+(A~K6%ls2}F zKR9GlTw(Tq5g%b}0|9ANX56xOf&&5w7?Z$>!E3q;Mz>vTfVY4oajh(1JJ5&7O!oFo zCN6Vbao-l*ENkb|Yudn&tF+m6O-14p+^P6I+s(X|GZD-oVQHU6&0MTITcy9v+PFdkq!z40R2}7T4d<|@>BSAMZYom35`VRo3 zilUMfvAyX#4H!dCMKFJT^GW~^8X%CejVztEF=XH+vm-8?fjD8L@IzOjo4N?sESE}8 zw1qxqve<-65i88Oke;eCso%1VNzxH}WAZW$5!LEGu1w)JQFRE(!k`fO!ntZ1rb_d> zA`IBBSi6YPK-Ao#rK%qY`681x4ljxTcDuR?#D=g~&e_Q97@gQ;_~WuNu2Hzw6-u}@ zXZ8YZZ=}^O3Pa;%(WxNm$hy=-wU(`R*N$4u%=oId9oOq{9LwQ}lJz7G!?ytMIiV%9 zcOAwsjGC75CKCo%{dL=hSiYjW$OP6AIQ-^Mx|=Pc2^d(a@2iD3JC8ABHvO_Lcv+Oj zjoO7~H(0jOrG32$nOSsSRsvl2h0`&bN&tp49F01LA^I;XFog~!D@ST%j8EsOXu9M2 zSGL`(WVuQGzr?DCu6qcXyu-qS30EMNllq9V*%6!%;C0TL$e4qxOvGX~WZj`7H7}`- z+#SzR2UgbcDcTsoS5!)Rhh)p)$XWnKY}6XuDtotR&@GvV4kGwz2OO_Sx4lcj3I;|c z#~XyzHi$UQ;W`JxmvtjOZdLeUBT{;BM?7yvgNSj(7LV&9mn5D$!WWVh2$HcC&Q}73 z@8nz!(XQ14p}QWvT@qm^zV3up2HlM{umgEk0eXr-Hss8$@MSqf!_ZaaFQD=+)2!RHE<=HWT?h!&8K@;X4v2wQq&uxVoN|byP?aC}Yb&^{2z@$Q% z!X3x9T*DUHYONE2s=Vrt(Z!wb35P%?6T~*LsaUg9Uv*v zKZmcKgi2uvfk&9;B$T(dz)e>A26*&L&|HTof-fMr;zPEGR2QiI+6@(9-B^_wdiB3|2mj&C}@oq?ianiFpVzkbAA*I)z^G@U-}}IS_Mr(9BGgE zr$z%0O^7N&#m051iDIXrAJ{npV_TiuI(PabL&%ER5ss)r3KtN2S&P(A*cKv!AFN~u zP0AHP?}+*_Qb;@{@Q>P2V5hdK;j#wkEIN*~x4?#m{LDZF6(v1aFf0sTpi4tK)46M61VyEY@gH->xhFsg7eLBxl2*(P1ZsfBbO` zi&*Sr)$isAjfEGWi9Q-kpUUn{-uCBRFJ=os&iV)!CK%A^|xD*bxD z6J56Ct5b1s6Rri{1QDlslmqubPcX0&0Rr3 z>am`H2D^$544;Ao&ExYp+>W*4&`!&!)>dHuW#>Rn!5QN7dBVPwahY5^q#POAJHZ_vB|`VY2K zG7A{cZV-j)fcdo}Q)rZNyQ>twNSu4Qq#~O_oL)F(ok$Oii{L{vc8@Fnh2Uo5YQ*7U z5vNCl(sHkrEg__MPY|MmhZATWShwA43M^!?WYr6)o$(#A@B3Lu8Q;MS!hO$UKZAf7|VvBP0D48u?= zMB_M(GO7V31J!Dg-7B{9gCX<*bOr&e+TX+>+G03N?K${YG(+(0ruf7fs@O2I5k$&r zQ#gPQMX$NW9mzr3f`lnXYe8(L1MGDs zhb>mMf>FRNViv1A;MJfeygMr-ihsqCW{1oTJ>lSV@@abS+?_`weR*@D#h@X;PNf+^ zyR}1a=6_QY&M6*RC)%*KU@8TaHl^dJwT4%=9huYuDmRXHjzj0I5_`Adn0)O<9Sd0Y zNYsWI%Ds9}>kF4#({Ux5F zLa=jtZkb|hvrbsH;5uTQbU9dB?Lhm|Bpe^~Qd9|rb@X2+%_vd<1R?=?y$P3q)fN%N zJiB!*eeTeKm142rA1?akzIeLw#30}u)W1v|wTZiVSMC0+ z*Ueh&(UMlSkv2;1Q~QF|9KkkL{$*Lwtr=!;kkz(hPey^+MEgV`iXlLqU9ux8b#719 z>;B=+;$9Uz-GHZAMXvs%v~j-XR0u)!bOjy3SkP6#f7oUXmDo;9R!fD+Zcu>bUkMO= zgQ8A-1f>HXvap+=n45W|RgF~_#QPb@&$97)S)?JP9HGCiq(K&)UOX0wE&ifs;Roin zZl!aCT32t%hx)CzPqjH^hTdMqA_?o-iTL~k?$CIszy@|+eh8s~qfa7Z@i|S1M{ZV# zFeK9Ukt4o|q2bV(qE;K(n1JlE4(zemQqhLWj&mEbB&$rPl6XpCN>NMNyeb|5cxhs- zpdZo97ozJ^Aahk>jAEq&=dEwT68?l(ZD-VK;(lmXyVEzHuT3(ZIdf`ncYk2sJa}Mz zeX+m4lu3994hwpBN^A!Vj$q9}46qS0L0Z1m>$^P=Z?{g_^%%jhfy!5;h7fr8Rb_>X z;T?61_ z%)!V5hmu6=Z>k^$3K9Q4bZwnPLk;v`+1 z(vG8VN2^fvGdqQzMF_A8B3F4bB2?rH`A@|XV*#u=TxZS8xM@g49u`a2x{KL&&{U?~ zp901SN(Rexf%n8pdoU5riSYI9xL)FV64hyfl^ou*jkMPi5E-E?#55n~#B}z|nceN3 zm%jXm-~5&vzI)F-AO6sXPoF$>^!)RAK8)iy$;6%%g}pJ2vnM-C9)h+cj<@EThE&ME zb{~CE34jG{UBSWulaSP79CR~kaz|R;L-hZ^Fvylun{cz(!1;Q)w^_DDdO)6~9ZWHV z^tb9EfD!3S5!&6g9THq0&_jn-R58jA_mOsdQ>e#XaIoH$-~*W=8?6dfveU$#2?_61FG3v^COdcv!Ql^7MfYKr`vQ~hDfk71~Cq^CLb zV!j$OwO&*Q{#I2dRw=Bp!*g-kge#&tvz2@a9w>raBZEaOwe+iWX~u;L2-s+FB`voA z4knLo;FDHd789c{$1UY6j_@c;f9WP30qR3#fs&rJR6wEbPVhw$zO54xH3Fato zp1^bzjuS||vT|3Jh7>2S)mQk+p&jbRq5$KGv{b860Ad^n4HtelkggR(b4bF9_6(eeX#SRnh-Ss{Vr;iEzGmW0k1lmz z-m}CGLVh;ge!MCjk&CUy^@gYjGP-)Cuz_SXq?-!|T?es9qFP0*Hiby5+U3*}dQD7q zVJL95=mH|pb7p}+SK(ZP(RBm2?ulTniP$UJNjE&WX&1(Iw?n8tAsdZOmG5Tts%aFI zR~=Vf+b6IVQqkh{e$|0zpA-ExK)wLoJQJ0c-SSvrR@I_Q^gVp5>D${-5w_-FS8-)T-0;RtD zCe`wQlUZFe#$7&+LqRS!?EnsN@VIP8hyAd|C+0wf76XOz4e{%xcpg{Z=X5!rW(YjpMM0@& zc75n&P_%DmYc$ggjqs9dUa=vk$_r8e!7FQz<5%p^&a-{vmMZmq-<@wK2zx-2sy6AG zwv`J|KKo71IA?lcBN3tJVF8paMIa$~mb!ef$-sh_Y5oMg zGI&q2{vugpGDbNOxCPhCK@QlNz`dPA#N1CLw0B~v5JNBa_-xx=S@l&fg-p;}ciEf* z>E_NZVvuybef3j=Hcv@WP?|x3_PT3P;@NVKkU#vZT&Sr!26SPgJs)CjJtNwMO2J~R zrk$Ad6nKa;cg7oy>xdDN{n|S#1<@1(vU7b9H`*4b-`|qUtS;P*gFqx8NtXNYMtmNSJaQ&bu>G?b(QBHI-f* zQY7?eyG&&QatNwkarjb$1O=5aG<`3et!@AO>3!rS|Mm4dh`a5?2pl>9q>P zf(sI<-)9r6QSH1~Bv8@ZI5;Q}&|c(7$`s?M*bXF77sZ}~wDgQ`rS7Kpq9OCdn( zj+w3;vsmQ1p#XV>VxwytoQSb8{)4v(lCk25Xssy5&ZjlPDTXl|W@BJk-B@o|@g*p> zp~hsQ-dr|dxCVU8WGY)6f2eepO3S8TlRNOpq*Jl0-`Rl@}yuG zqLucOmCNuSKw4*P#flDzSh+|yLgo~9Qeh-=4U`EzKKTR)&m~vKNw|YQl1M4JK|5?0 zR&CDfD<6?U3rGY@x7dR`Qoz0$%uK#fo5e0ugb*>}Cr;<0T48QLu|-%E zObJ0`xBi8v_Pn_f;%m$84rKc$>biADND~5EmVT4vE6y+b?jiGK+(VkXuKk8ss+LCz zYan7!kv^j8d6T<7bW!_s$OGt3Z!iqIG>Tg}>eyW!H*u&&U&X$$2x-G*IK|G~y`5#; zB(MT-DDk9iq6&Jy3mGh5LA)`oU{VkmIW$3e#rx5fO>I&+%9*NLKd^v9Pe;``mmw3@>WCYVQdd#DmhV<*tNvF9qN^gHtT@DYOyKl^ZQ$K z)sqq#H*%v5q>&wRI=f0Fehe>oa5j-TfSk4u`%+!pa{;`;9{&s5iPXX=*w6~jnj>vg zt>C27w`RKr8^D=X0L~kuM3}SEGU=`p4w_BklLT(A6^ZTBP~nxzCi(<2AW?$(d2^jK zG9Z(-JH}i0pAJ(ob%(|qdvA92`XeYH#0>3RT!&F#8EdNmLuE5uO;+8ZHyR~SQjtPY z25WSHSx*H-((fo27?V&aoT<<`-SH_e2I$zV|17;>X_mzMuQQ|7Wj%(~o@g){p$<2XDFio^P)$<_8ZQ z9GBxbj!s!DY8!Yb@o81n!iq`Bq>?zU=ZWL1JaiIdziq%(V?k|k4v1it(l~h1Tbtvo zdsR2(6s(p&j8!8Fb$Yl|7_f+sKTGdScDSINaU~MDeS+JZ=V^{utVxP!m!ABFUM^zu zBGP|Nptkmt#)-l0QLA%v z%M2N2B7lK9m#PsXOb?hy>?t?ZL_0OrV1vtR5?kxyQV1KqY{(`RW_#j-3Rku>u$d7rSG<%e(L8i9BdlBAs^8+UsDxvdCttnwM~H zOe8d+oH4x!<8^ixnvrRnK|@42&m^A3SbItDkumwfh|Ztdb|*kN6&|_CYZhDwZX6)o zotV{^ixzexnXod_ZppR69;0pGmNduD1Q>|C!SbW&at9Rs7A8d$qOj3Wjj)bUB{UG( z!!XsO6Pz+35$vx4YOORCOv-Q(fDne*z^g4GcE4j5(i)(eA1h*)j@97(*#v{tstNrI z7?Ly|?8H=B{}_I;f)Tq;^lo2>cQZ!!b^BxQrkXuijo;9n!dScLw`3h#x2~~(U?>vU za#V2xb(b`T)PyAEoNX|o5lullZ6C;5P9eh$vA7d51zfpLNi7bDIEb&`M^&mo3Rc24 zjKplc9>#z!4P>YYSzqj399dB{*QGF7vmM6$_x_MtU$ZCiwQ(cu;_@S3VCK}Bve3Wz+zV+_n_F{WuL$q6!SqDV0X7#Y(bRMh- zku89kJ+z4^Xk7G+`?Z~hl#3JHn3ys~A?`{8C7`jp9T2876+9Gaf&k)@2e*1qp1SYo z;P{U{u-#dpKrRa9VMC9Q;~Q55C|F^q$OR1!gcWy_n3flah=$V4fUM5-SjCcT1z2|h zkc&U9gMUj(5KM-S4^f#VPN? zr9@6|0L(y*UYoD24Z|=DLv_PRglM^37Gp|6E`MT;#uj43j%>?*ApA%FEII)9HzQ5u z^H8QEL|)d5VlNssBFWq6KPDbEHd1WzF2!Hg(7rl0=r|spj#;o*Z-;JRFPx1R!Ia{Q zU2I2+)T{wn_r+GzC{EP%-%N6=2Txesl9CBK4Iphs`2}v`$(I(VQVYqu23~g^s zCR#D#z`Q>$j~+e$$dRKDKKOu4leK0`)hrS96*u1-`$7+$v`&06~_egGjR#tm25T>l)Etoo%VV! zoJ@=~^5`-5%#XHt-;m>#bMDrsWGmTl^qlk9I&Ka)J&Mtkf|=Qt>oyk(c*)?uFglis z0x{7}2;Z*3aG!RQ!(zjp^%_>tqGf1b!TAO9ctfhz<>J^1&&eaDd(#Ru^Z&v_wKi?U zxkNl*RECi|w5GVVdYufSOIpD1z^8r7ob{|L;F`DL<^~Nr+$g|dakW2X0-v^Jzfpg~ z9sqTelz<+i%_K?LA4n=Rd3idB&D7W*Rb~POMwRQ3VQ6d~TBnN*>^dID5M+%SHu9bH z3{?|o419)9+_Az2TS6~gaYxy8*a!vcRSe|2ydS{Gl$@l%gqG%i;Sq*le&sVeNa#2X zagnc&Z$V)No2zPB>9EkmzPl(;(M|4MKZm>~jpgoHFFYee4z#6@DS={Y zwVg2-=1Qv#5~6jm1iN=NTK5R<4bs^U1eQa2imHT#{+`ZdR}$33;{=b8LfbbXcpU|=4G88*^eA}~M#1{GEV272kfk=pUclY-9 z_f$SiM2q$H&5aEr8ppA$nV3YywdVi&yjI*ehGDk0HeW9Hr)eq+4>oXTNjdD^XsSg` zh{)IwHq3=9wHuuGlRiR-ZO}(0*ld;~5&14NfOo_djvpcmIOA%NQmkCl6i1kFa>P_? zT4McVNrZcmJ8RsA<&dv*vyygOb>xxtJy@xJOg&gK*=w(08SUH7l*72;%W6E3u+>jq zDmr@f!3VHZ#5!-)XjWYW5+)(52{YloyJEva{)!D_&~2>tg8{a+Cj8@~;%S;THxHb5 ze?@M-yyhV>5gbXl+enWbv+(1rjsK z6o!YmC2*lFPo#)yeVRXcWX+vaT5*klsXKf;g2ObACx8rexNvhb!?CW~BMUWwO?z8J zuNC2?hu_#1q!V9~kv`gDOX5C?Ey@9hbzh5D7+LK}m!bu=8gi(JQ)cNB;8~@Ss0JNa z>5Y>}T75Q_#4}d~EeeS!2p~9$FFHVCDf+awe|pfdBqI13{)uz@$YK9z(;CSuF<;^xIcCeiAP#wx=}iQ3pB; zQp4~X4OxxRCPi+V=6EI?`!8@6wl4$sE^|yJqA=2_94~;z)m2(2UGIy)n`om>6YM9_ zB%T^Y+NqA|-&$35^pg8Qmy8sKNNF^j!(G}zL5FA;jaO%b3`9lO=<%@H`OOYi+*`;i zL7&4}0~y8}?NkKK&bW9C{f1#V)He+{no1u*z1lQ;QRP&oi+sbNNHkC+Ob<3F@EHvP6N$+3si6PG_Ue0JSV_k`KQKL z2p#6d01n0N%jTQeY}nh`Iez@aIF7??mR>Q@x@7Ze-AIyynUKCHVpXXKr2sHsLo@kq zT9C}Z<2YS-(M1Qh4)7~p`MNV_Pak{Y2`v>->NZh_OHSyjY{IJ+VXjcAS}YbPpL*)r z7rf}d_%HwQbuYPonx+RHeBjSN_~)Pbt4}@g*kk+4-L?6AzBU(;X`GmOHXo)*_V@PY zYimc&JMY>TUi)M3ecuni{FU>?+FgJBjeqfrzx3rVed)-N!~4r+k#c^*wIQADElu@* z%uF;*G|;o3{X<8NT(G~tKby^jWOsM(TpnM4oW z%0fc4x4(P(;QJX6^HjqTCH-PF-lqI`sfgIb(Qu!_0%8b^?)aF4t+xc^ z${{Hb-s@Al>9Ay3yb8Iv(+YrRcx533;5ev)$uRJ89FH75di3b|4?g&SjH6G*{Ut>8 zK7U@p*>S;np6;8@0{3pHDh0U9X-3JoT-~7S*TrJ7vAJ1)!^Wl6tFchlRkn4=^K;75 zUA~F-$fQDwZ%#=^cBJOZIgYfekBGQtCV>zUj8?q?(gWV@IL(pc_G;+{79Y8yYpp?lJ>PiEzgcn)c+ z@`+$qL47^)y2R!$E%EKt(HalL?RnsfHQGq?%FI3);ag*JsBH#c>AvzIp6c#CO=C)P zrrQ?DVgdv1_1QnVQ7oOew*u8EOvP@CIh_%h2o^BIyD%)Ev^#E$1&o}|QsOodTuhby zjQ0m54%Pss>EQhqdNMcU_jPE{F6?%QYShpasFw-8aVyX6qK`y1FvhctZLHm z5-6bh7Pvv#55^i9`)i=W;4F6Un)p|7or|vHvH7d$4oZ1ai(> zv$HqiCP>Ul9|^~Fy6rSg^s&4AD>{A;NF$_MK#Dv4xml{pO)-Lk#QTvc=r#Pp4`REH zP)aY*_o}DQdgb@pp^?M{sdjk#Q2U0vx}ifT|8gVz@&(s>t(W?=mIxD#%W-@AtUbR~ zfCo6$7h*x!Yj;*gL^cA7Y%5AQ@r|3H_bDLh-jTQ%#?0d=7hZJX!2<{8gmQ~Qu>sjn z^akekYw?+2Gz0Vg-rl8`UUtnj&nKowfAGjRzxmBOzw)*F@A=N!`uzM0j)+Wq`};B# zA<8t$+S+_$ef{kA*#{qZaQp1u3$MNIxmR3y(S;XZ`Mj$xyY$lC-CZG`qCE1Rohopn zp0$L?%ru+L_Lj>T&3@`9|Hk`%`e&XxacXOGeVFllZ6VY0whw>!pa0_jdh+B`i?#W3 zIdaWrpv)sQjzan(Q$c?icz{ri6Mi(mS}_rL#rBAU%-Mk)_O=}L=S`s&s2 z`XSeBbYXyLMP7WGK5bL=cdltlFI36SaYru~g4+B#MFqRhFNK!|#@j5!7yt^ZiTgcF z?C(#AnU{(wqyupSh_1G+%3h$id_BfK*m-2Tpd-W7AgJKDQejA4E_ELJv6m)PLBbMKCa_@fXi^)E!b%Xatp_ zE|9ju4X0Nd$+-~2{&15d!8Bfo7>R?;7_h-O+NzdsK_ry}gN3Xz z77bF*Ts(EGfuW&^xD}a=8v9SBj#X$Dp4lqSV3LVsrkT91R@JWzF9I%&!-AmY{xH?k zpxDx`eV`T#{BZd71fGJxpT1PY+6qw_eX2TIrz`!W6fvB~uwJeXT-rJf7J>&A8x9J- z+IhMWqEUQeBxDrgzLFPpfsHD?s+AT(A&tnFVn-?tj?qt?gAOB|Ucv@eU@e#~_m{UA z+Yz`!6XY2FQ)6=GC*+~QwbU6WBS6vvN}F~g(eZ3YUlU&P+c>04oEmV@Usv)@Ntx6l zG8r8jaWEVQD`vPuc;GU$lB`vGo!%FrAVaVnJ6l%5?yl)M-wX<9s+sC;@(kZj?FT%u z#lt|rM-r=*a_!$bJIec}YV-6cSlTetoUf7)aBB^D);hmFmArY1rM}+gt8$u5Y~Utv6ityyt!SD_{E9M?ZS^-QQkcUuoI#mlaL={s+_alXFzZ~kBZ)i}*(v$bJ1 zh)e}sX0u^`If_j4`FxlSL^Ms)G*06s_yut*>2+)5u-cgGf}NLC%kKWVF5yev$Yv^TyI9F@_T#K_+y{> zN=R3Pf_nPdP5rCHBQbSNEJg<{A=M=^EWum!fzE4{UR?+n1)9;}@lpi5VN=*$`bHidw zmj)`g)g4`7gCyIo3l<8c6jV_sietLt8J0xf)LU0Zy%=%hG$9tUARN2=3GK6}k!x{Z zppoxlXx8m}ZZ0YAQFy1SFHo?=Hi2iQIoomhi`2oT6mFYFP4}g*Q0!xJKg$D@L7;F4 z=I*%M86*~|VKfn8VH$*pXsTLDvsm>UyUUUf4M!S1Ys+Gdv4r^yk|h9bGa8+$m2p>f z!sqyw1YA6oeM7Yl6Jm$!(QzVQtXxkNBSP?Dw4}gU`Jz=yl{>DU^{oRx*}@JC0=8EX z8=O~!>YQ1BY=xSGDTIPr6_u*%s&sVTB%%6y0pJcC`|iXqcnbqFX@!WD_UsM}gM|Sa zkBjJPrxN0?0Di;>avRpIS!A34#eSl}q#=s*9J`~uw>{xm{D+93egI-;B9VcyWJD=~ z3i?Z|9bkPv3c!5W7UvS0AScE#R$r;SyEM(#6J0i3X*Pg0YE(+Vu2yN!bQG)`EIwC~ zL^stY_`@(SAWXB}L~UGLtZN`#&vWiIy)aj8ya;cCPKy!s6m)TWgFB$hgA9{j0ku}a3*FUlF2a2{7rx@V+ON&A!2_?Wg|fH*7^pCo>M~2 z0Z@*DNC|Y_?}bVYQlJXUWRNQig} zWSMfEOi~QDaqu;|_%Kp1;}%qsSXn7*5rT5d#tS91uzji}8DTG{Lsuv|HiN628Hb|P zW3CbvMF>!!MM*`w1iBjUj6!T=09GZZI+O~zSma^YCZa>L{S*6dptchzlVB5aNzzds z!LKFQTRHc!MI{^aTtv-_jL|hkQ!6GnyUwFPHXsnw361zgCL!9|+Wf%}zV{a&{J?8p z`}!Yw^9?V1#mnCOrZ?Vt>qkEPky{^m@Sy_-4s331?(XfMJo(ht)`7RZ^W8VS=RL1} z_3I97ZG8L_AODM6KJ?bNyzN!5eEI%gM zfrZm|@qbp&ca69dT4P?|RmIh2sTP^6oc(m4Ap~Xv&44@5*@|1+3|qnnMIl3NwwM&4 zudalw;4rmT9O{ftrkD78A%tQ8y(Dk%Eo8-Q7v7b`Gu0?!G|Bgx({-mjE9j`BF_FKP zDqxId78b)j92Tf<##oKJ&G34N<3PWQkQ{*N0on-?;~~g{p-|FkO9-kgPBz36>n1E) zUq~a~n4KplT0MH&P~pBCu_9$EaCcV`ipo|IYnzDlUR##=%C-hK2vI0erV!egOs{9S zlJ_*Xg2|s635$lIr%w>r2rizGFF%cWW9E~`@&}Gu=`|lyUIl3=mVyEFoc5J`tvZ7= zOEb+r$KejAv#gYM!qd1!wj#Z%|33Yi_DUnLrY*JstHX^1DAZNNcLP)(OtY~C_Rjqb zYPtluao;YWaA;St`qS(CoWpazrx~o>gRr8jrycC+EUFV1Vi@LpVnsizm9=8r_Dcj( z(KG0Dt9l7QpT!bxv+9EVm+`hH8NssB$CZQB|}y$HDpo)a4F(44sU}tG-IO2Y;fKqSkFQ^(-gNV$ZB1T8`cy} zQ<=O0l0?jk<=|{gjX?VCJKvwiB|A`^*!It@MQ7SNb`Va4m!8=OQDPlyG`(^>li%Ke z#-9?gNLQ~~Em0UshOD5;2zdsgeg=r=rAdkT@-sq9EEQ{=#yIa;Vdxp2C-N3m7@bC4 ztFZ^gpc_X=Hr4CtXb0zD(x&^FQ%||0Dq-Il%++*42AMfq9Sy|RA;4#-;xC?Bam*u? zx($fY&J9Y>sagO~;K89$VDHu>(`_I9$Or!P&)$90jqiEydtdp=S3UpQYv1^mH~r;b zeE5?e|HP9|K5<~{z$;(*>YH!A`K@n%`vn(X_|>m}{XhKv?|OZZ&7XJW^Irb)pMK|!H=R6w`e**5pZ$sV{rIOp^O?_o;Y+(ad;9x)Z+OF--uq(Va2o$>sS2&H(d@rg#u>tor7ebOOx(~@rhvO!8M=9j= z97hsv7!!%Ak;-P`z0FWLR|S_&h86 zhijhIg@l#V%gIs$0xjjP8R%SPrce?xbFls+`MA6uraSO44PzTUyjOEfPh^A|3q&!h zZ0rrzY_h?-Ryrc?4~Gi9K5yE=v6c@jr9{(UIFoxp!LZbYDzWQPnXA@c8)#hdgn_rt zITUyudMJm-ch$dL_c1V#La@7Om@fqq>p3MP(ge8;SSL{1_y`7$xJ#8I$@w8EpnL^3 zsM{073kX%D)@w`wDBDnO$1p22fx30{v-Q?$i*4GFem-dyNx(~C6laQ}BvArwhsh11 zdBP=Zf4$ctvVf9}W5>&kh|ii#G~i4ZGwv8OROl-fC&lI6JVo# zTi_A#X_thaV@Hi18o~Phx0Qw=6#I#pK{=l@FX$hGtb1&yEx^0;q*F{^flx>jgBOIk z`clNT^q{;LMC-;5(Jvz7aygA7&t~6y z{IL&w@B^Ru+-KhY_IJGRCx7DguYc2ZFZtm&yx|RB`O;UO^{mU@^yV9W=sC~6`<`$A z>tFfTANj~fo_OrBvuDm;cG+d~`CJP`76aVs8cyQV{6Ql1Ix!8iS-Cu4o2_pw_Q#PY z+1l8g4RrR*HjQ-c3$FXG{?UJa_0?DX@XKGmefIR_r!J>S))wpk^*{Q@KmJoc@twQx zKKA6X7hZeqP4D^9fBw(^*FXE?4_trr;v3%b)@MKa+3RcTFL?eni}l6v6Hk5qi?{FZ zFaNnfN|xT*-68#r2G#(q(!6dXIKan^KV7y*1VI%-bhCLll}{UrYni4QfDBg(VA%GpzI@k9oJSb+IA_K-&V# zHcUiu_HpqjurCTtt{kv~G#1-^;ew%OHaqJ?A0|t?mNn>@2>S&JV@vmA^~fTE_bw5^ ztWw~Npl-BwWRBqG0qK;d6}1t-xN({|uX>45FNOKkq0Oe!0)z(Xi|L_QsH5i)U6|8Uq%N#5%(flN}}HM@E42jAR;UMcJ?a zIE=OS?Qz89Y24>=tp`JRKcnoY&OPAOKegPIEVyHnL5lDi$OKmU)Rl88t{(*hZ_OwI zQn**d5I1k20bQFB^O35$+;ZSz#>V5-Ttc9^?jyd z;z4W5rF&Mo&D2mTEe+<_-U=5B9p7;}k2(-I;|l9c@ba0uxCXpqryLwP08>P5)V;M# zu41_2x7bPqMkWpP-JN|6PZlkjiZs5Ai#^1t#ZK!2z*G%qJnvt@z`4BkpAck|TFp`kfiocJ{ZsSR ze4?3PGNtke*pK=LiEA7GZs9JzfkUIWX7{yHs6<2uv>;wxsaexi6755n^$}8K9+rP? zJmeQaZQeU>L2@qe5K{Rk{p$9ABZf(AS5fj5%zeNl5w&99R>5-vvVV*7h)mNojmvQq zqH&yrcw=*OzP9$g@BiTUe*gFW>aRZa+Sk4A=J&k!HLrTjwJ&(l;Uh<$eB$x{<$w8~ zKXU7>k39P5G)hJx%zx&(&`@j43U;p*9+h=F9`G5Lz|LNcQ+dqHbcklhn zTRylxpYe=oQouHKM36#FxvYbw0FS6YO~Yb>m%4@i`&R;pT34~w3t$w4O+?JAI<5eE zj^#wBHaIhb5ZJ>E670!DAm*7IIp7n9R{M%wCd6y?fl@~-fi|L#J}1YS=uVZ}#$ZdE$*LA_Q2q{bfAI+~J?^N#0(c?HkG zD;Bq~bSIkJgx)(D2&q}&Y)8#E!x8SU2GU#tNGI0s43;YQ%sEMp-Tm zQAF)JM)jhS{bDg8&%u0j@XjHT@rErOpOHs0NDK}_V59JkAcU1l|ajcuTTCw^iu(#ZW1E`tQ0m}DYyzUv6!@yqE z$o;iX0o!^4j>SW1&;uTtasLp%*Rj5<2*x3jSp=s7IwK}x0~`kYJ;e%l3iC~SzQE}P zi8V`iR#py+78JzEgeAPle1Aivw}}hm_Iyz=?mASAAr(7>iAmgq7v`w~zF zcgBz<_@rDcFV(xmQqcgsq>#}#zTd1T(LB8qaO}=z_sAvyFjz96xN#ST2fuIl>VF{1 zUd%dsmFo&@(PAuE8D2Us9Qy#km%1PlSX*%v-L*MzV7U<3xw$@$;{y*q@W2D# z{nRHu`L}-l@7(;OH-GU0&pUkh|NB4v&onM)v-#HM)^o3T-ZV}B(?9#C_uY5@Y;A3Kcjweo zXa3!9{pKJ3{_k%c+}hh;UUKoJ?|S#UZoBQaU;UT=YJGEk7=}k5`Q9)6(l6fdrW=0h zCx7A>e&N46_T3Z5o_K6$d-s9+zWd0-4{dI3t*tHo=HK|6-}=_Ke(8Vv-=28<@vVag z_m+FV_G`cL?swmK(|dmOQ=j_8?#|9)eSM^<&d}X40|HXU;ur$#AN?LZ&F=MmF0mBl z;R-Ru<(A8_HILBP3D%UV_Ylp1;_7Rn$#%1mzZM)Z8;xm-eXrP-k_;$3=evBy;H|UQ zF_Z34#%W^g90b^IO^CAs#TIx+Pj_7Jzr;Z28L(1vP2ZTnBZ}N#-Y+0tkjcjT+8ryBqZEy><+m`86$KD zWfUL4bL%oxd1quDB?J)b#=@v7jBztcE~`}&O21ZOshHVSkX2;`))NB>W#*%e5Ml6k zCCKjv3jM~C`A*97pRs&~~RRK-U z-rTHo#vWnKZYz3H_~y76%Q{NQMQUhe7*eA0&+$qhe_?R6c<{W0f#B*!G3(^5CT8W? zOP2%k7ekWCh9jM6-$Ks8+_=h%;={~1-ieQLfi?PgXxglga-f-lOf*Hw#;KQ_EwLYy z1*<8S6BV9Nk}4MCkBV4}odTlHdQtRJNAn=m>Na?$`2iE?D{Y2t^MooglYsUHr!tI6 zl>lxF(LvcN%9`M}%kXGUaYeO|%oPSJv`L`D-Q2im-KoK81e`dh8e$Zt|B@`sGqc0R zA+(twEC6D9ycWNk6yQVDv>u^ctZoIK8&Vvf{`wexxtSjHzSPbc*`T0RIG00_34si_ z$f{YaXyjzsd@P7p9h3tBcFvg-JlKunnIPjqQ`W6QdZ^OgS_Te(J;9CKd7MMs{AKfiVjG)pj{O^!Hoif*0T} za^+wM5+nCMf|X8D)ORqk0YK#N0S5Kxg~StSF;(lR=9zgGSc5>sp86Z{<)oUrGQl|c zgU(hwIG~L50SesMsvO`qY32iIgW0Q_D0|;7NwJRXWYsy>Ke~@N$B>lRMBfOXqB+_E zLm*Q>qmRZ}CM2$UBE2NdH0@3&LLmc7l&gQZBU%#Dn^Q8;T(2{XR`OQQ&@)yd(e0(` zIsjiLiJIzh*<>W+SPMqOu(i3hzuf!wJ$K)I&$n-so4#?!*S>z|*B0xGjjhdbx!m91 zpQ#-R5f41DA36~0zmO1HwWZyESs+_vl5rYkT#l#DJ~i#rd>9^k;<3+s;d6iW=}+Bt z=N&u@%e~#*{r$b&{k!k}YhgODwJB$}&%f}3!w1j1^Ukjiv*EnMhsSZ+SZqA@*y9g8 z@ZeQfTzOz?i-|WjHYTF2t*yg{4-GtQZf!m5@*n!k58d+Q@#BXMA6hIH2ZpUP+dFsP zefRUOy5iv0p|fYsl$vi`#0qjQN)m!l8^fNh12RSXs^*|55*O4Q2VJd>X&6%oD9I+Z zYNsOjslaFWTLLe0+a+7?t$1O_q(Ua`p zcA=#2UdQ2yZuaP$I(Pl4XgU_I@;%2cv+x$NEGO@%wR8-QHTwZDG`>{zX4811n@UH@ zihq)JfTTu*ccX?=vyeu#Qm;vgMg7`R0Oq^K*8$^>CdU1GOV3k)1)y1LrgjdeZ_fTO92!|0BQ?j7(YlE__@ z4Qt{I-L=Sy&ZpgmWg@b~0YS1SB5MOXM;dHW3rdTweaU&_$N-1?%Acmk)C4ZFpU17k zW^dfPsT*v&!x^GB5jS=OKS!4`XU*uqK66KvzK*NAj)M_(@Aog@3AQw@e#0PUQor|6 zGzg%8;B%H6)XEb9(HmRQdHzqWF*uBAjO~bD@&`_x1}jlO>R>5TPpEh`Fo9kckkqB& zg)ocr5J0Os>fFBfE;D2-U>+1;+SWo=QWDrA*)9vssi%=Js7{* zS&Qwa9JbP4Sp6*OBGDBYLsrQ;*JMR4-N_957a|qmv^i984x>Z;(kq`tNNV8%Bw-!G ztUwL1iMEP#;S9JCg&VEsn79b?p7*^da_Qz0_lKTr;zj~C=7q@jf>o7eyhxH`Kpq3P zlwUaw5u@!fCuTP9&pC$=rSVZ$PNeA>z}y&9X@tU!5u8-)))DtW5fN;wMf>NTcx{7( z7_l%)2)eKu8mt8=hsq-)cp-U~pf@omgwB+;NN%We8QEn33nc9nFWHuh5n@r8ZYN@F z>%QWAjH6{WJamv&F!II$?LQh_eI+BT^DE{wM2G&uepZ99e(;993AiWFHUS4Ra|ft1 zz|$6nm7&~&Ej`;%E+)@IBAdy6^LNQoI{c-|C-M-kZu zRZ(<@dAmEKaHP2!VR#zEgk5MB$s6KP=UI9|_o8Fy@P5G^(v(qk?r7GA34^xSWksog zcpksNMFZ6wsTLhnh*)f)g7t5(UX6uu-PadCFy6Q<^3GWn#9L4@D2#|Kg*TIj2mooP zSZI`h5E-T*p;4ARnm?nW4mksx`U=FN#-OAu;y!d{}=;D5>DMWcyi-#XP_L-~= zUu)oG8WrsUpA<0@ONK%U!zOCq?p)fq^^vcI7$$~z1e!L0SLja`<9&nVvXwHa2U_`@ zH3+tg0;`rNJ;dthMm;=-)Z7v5Q+d$z2u$6|Rh4uUo?X`tQC!tFipqV8h(_+>o zo!=2E2rLLs5b5f^_~hNWuKsS6&=9&*y3BUdaMlMY0(Vs*>94Ayh;$ssaU4aaX&R?- z8fBV9#&H~%%W0fsoc8xeVV))#_m?HXpYbrv2IgTl42$`EZ9bpR=kwVxpUq}7F8?2V zqfu}LB-#>CA(CklnPjR;+uhkcas0{CXV0G9-r3#Tov*DOI(%rpn9C%k#d2IuqwqAA z==jvBlfrb-1sCn??l8~RH`aIeb{C7qMHgNC_^~IJ`}+gev~RIktS=T@n_Ju4XLomZ ze&{*RVUpQwzI9-$ka6)v7au=y{M4CKGS%O8n?$^56CD|Y7FBKJIq6>{HVVPZ zy+?@H_Li_hUFW%{w1c&86}`%4zp-{|)b#i0_TZjZcZ&1%%8h+(iCO_OM5}N_Eu4s@ zZmqRU$0iSn+Lrzt@ng-1syXVx1#EC8T1$Ws;;EU$8f@!L=_=NEyDJL|hL6>RAE9&iH^`+Td7W$C3!w4?5eU zIQw?PW-Xl74)j$&IPDSXD#`40NH6%POWM7 zPqGIwvT6YH13Hsa$OYS2S@5!?8F*Ambb6fIa#!sEN`u}jZ|w7L*AwD|UJ<>mJsO8^ zND!Y@w|AL|wY^3Y%V*M6+dhd>hd(`{>y2>qjFX7aJ2*CnKdbW#@OcC%PYSqxjYTcJ zD~AM$L<%PZBPTv6BVGkh>p_?qs9vua-rLnfgw}46mz=MX5mkrkC1(Xr&+*7Bw5&!I zkK#(0peR2QSxbY~B^+I&O8Hn}Jeaoye(uN(aKqX1t~B_PXAeo9Aqtyjbtv{uiokMA z0$PQ|wb>#U87;-?tbzMKBZ!fuFqSP9GP*mULq;WP1}hUBWCS1a)Bks7&I!KR#u0Td z&5BrDY51WbL#xn|=}bnEl+FMm$%R{YRvy)cBp|zs&vg+1HVmv+!{{g|4KxAG)R9R7 z87#!YVUEYBf<$5wwJk>jX$Hgq+Hk$=mLY^wF+V}8z%!3l`PjUT0$e2d5fGi znT$$-dRVX>N$R1X{)E647gw;5MV!q~duOD#BA#1oU0H?eE{$H-&496)?aZ?ypm$h@XBoTpS8+-y(e9@_# znnYw8MR;d>XZy_dd_FsH@X+SQV!6LR2~E>TLd*jVyj(8#_Lj@#l8A(5ZL#*~qYr)g z_S@h4# z)9qil{oU`m>Gxjw>W_W&*2Q9dZ*TX;8*hHa%U}BbfBDNNpE|X^n2AgPJWfBVP{@rN zW(x`q%%KO((b48$e~g!I*}hx%Yzv5(y9ER?(}azjHhS#|mcIS@7ROtIEyo`}i#vyH z2rHTxbfg@mlIWKVyNefrffh!?l+&g)2+vL!a$ok`H1nkp#Y*O{mX z?oBRc%(x}8WF``}YGEFy?=v#yBBCW3>XUyISw+=J?4NRvb~f0vSDxV{WI_=(b%c5^ zlb09;=L}W;F>Vy#b67>IaQq^Ikl<&_;#l)+f3!YOhF`0NbAQW&Qj;QrE6Ec@wUJ6A zldW=wkt%XUAF`*K;KfE}E@XxL2Olp@>P=~Y`p9+j$)q6R`Q`5EgO zv|#0)@TgZ_o2RsJtO%+bTut{BmDNmnQTOh1$pygRO7>7*?iKqnLF8hQpmPX4XJv#z8uxEt}CeD_!{)Sln-q4n7-)b;Fd}uG3zO z;Ct}tBDvfsbi@|%6Y+JiBI0+eYs=AL;u746E3%r%1-GRbZCKNwNK^c4x(iQpw;N7u zG^IRjbyG9PZ~c-fWB1HPDP|#*_qP;;>5)X{bXvqqMU%)gxeXzf#*TYM;HJ^4?&}E? zcmb{IeL7x^JgR}((9PUdNMQ{*8?LLXtvGiQeySrPoN*m2fdBvB;{?sj;nyB`th~s_V7sTyg4Ryofq6~4riU$ zKJN3%Rsddl)dLEc0P}Kxf4Ll&LZ_ZOb@t5J!{;55L6+l^cw!lr%W)|()-viS%p*-i zG+$er&*x{(oY~wwu(nvAh(%~N%$S&YD7LBrv_emp6|4$R!~@YNG)>d``ufEeozKL( zJ3EWD**Hza%)&Gf4LlHUtZzK)^2-h!Jg^)`CYsHMz3uIP_5NRa|NH;dFTMX?e&oX+ zI&u8?WtU$1<3Ih=x7>2etsnaE`sSu=?;bz?ud*X@9FTMQ7f9j{d{ME1h@qhS378!<_OgfA4?5|B!{2MUa z;yjj8dh!rO)Er}~>-H@{4OhHtj`?C2m<%-y%8RLTlM7bsXS>OtRQ71iw(eM8J0N)9`H{{$Lb>IUas4cG73=NXi*JBl($=B zSnaLDcCswUKSDbvqZx(L)zC{eP{9x2T&WFb(L*`}b^?2~ZQ;%v3WZ@(KIO~i9dfk+ z-h+S~ji-DLKcv8%+L&;>80eM+>ki#5x#!JQ$hMxfM{E4hK_A7#TQ?pp*T?=ams07v#EB!R=GE+~ zGyw*a^*V1r!NdzbxY6enG@7wqbl;}iC{9x9N4VL5-AspsVxm*=EG{&}I4a@MkRTfW zJ(wgiGJQrN0j@{Pl5icA2vIm5b*05L+*AHPanN#CQR0ld9hzh^Tp%t> zl=f?q@RS5-$RtqIHjZ3qzwiFv>$shj4um1Yp?%u}c=ElbQSHJR= zU-`9Pefi6O_^PX~y#4ksY;11bd*63{;lKZd|LcGJAHV&b?<$)9@Q45MH-Gat9{Juw z>l+)R2-|uEnsMDN0hya?13{)vQ`1hM=ntx&Dh7CP%-5gsb;c{AjaPD%Vh_z8H98g? zDd@D&A#7%$9?9`4VY~?CSfW}1t9Dr|q|Djf@huH8;ZckV-eD^PkVKD>Dx5s`LU~JS zEf(J3tY%Ijf*@fIhqyJYrMuDysYNt}DpE&8iTlwUIqj6^fdKwqu{B5zlRAyx@xY*_ zYOwDBk}H?cYR4&Dvj0tJ7J6@JNi6|YaCFO}EK#t)LLg!RZ}P@rJB3ETpya?wnEYv? zZ1dsz52TR2B*402O{Fv`5CLe&P#J^)Kw@G5Nf{=Efa?Za`D6~gfr9OfkdbDnhfo!W zz*Y9ff6{6R)JZthLqXuU>!I;}^tsR;BVcrVvkOg9U%x9uBLNnrDasUj<$rRJ%rCigsbdq!cG4MzCL|$C0uktdQfjp72kF3%^E0Mvj;CcoP2D*r>uv|8&37JDhe%S9YD-WLS!P;I8m#8H509er@~O!OznAq{k8qAwZ;gu^N258B}6&5>)_$ z54i-89tTHInx~+i2$aW8_bDAkM1DHHvH;zINsvH$nxR9t*F@w^e##9~4_Np^dAa&wfJ64}>s;U6$ znxIMOD&kS?2XB=i1u>IGsafz9zZ89%y}xo*qy%<}1fUQQ9dQ#~x(b$_y*Z!3=@Fq+ zwX00LQLDEHQp1@bk#hiMh+N)PWj*C?VJ!VuG%2Wh;-n@Vx|*lu(`GbTRDlKVos5xM z;y=)1E$aaocYd0HG9=cFg6&cpQ$!uDK62Q|*2ZP+D%Mv66Rv4k8wwKW>?-ms0&aWS z!}p)#NuWkV7HjJ#Po8-4@yDL`+$(H! zX&T4navUciTFlqRaeDH^@e9wt=pFC6>5XrC^R?H$_<7HH?xWv-_{rnPhWSjPj;Hco zXfvV?A!^KZUQujln$1{-`S1Py@BPUi|Izl&*~MZ_rcywvKes|c>zf;Q+;PX9-}p!S z`#b9!>*F*QD?4y->&svM(s%#yy+_VFvRGT}E%%>z;<4racwlQw#)$_$b>`GB{o+5r z==_Uj^V!+6r-`P62eG%H zcZMurDOz#338B6p5UXWrYz?XVgFE$hTmK~wq zY{R>N>Ma)RG*)`xvNlGS2S%xL%eMYfiSY#lM!ti+vI?crUr{?`52OJRW+An|jK&mc zcVe6hJO`wkDtdc8Anq{}78wd{pl%mXIBEhAPxs~*c7w?}_2T1UNHN)V@S$VDnw>DS zkp3JZna9@9(wk-LUB2+r0TJfwEiW)or}FV;|kK# z(O62#W5Ns$6Bz%jP6Iub2qAYP$azs~MoifWa=)NvqLyN%EpTH^vNv`C$; zEWTJ}L8HVf24eltW2uE18`P+QYK*fOxPYK!B>=%dKEGb;Iep9hz@#zWmgdO zw~%Pi$bX#B1~2vqDflAYSKZsy z4rbclU!Hf~;ji8CwSV?c|ND2o>*lw=>z(hq={+xd#j9Wbs@LA~fj|A~*S`GJsZ-14 zG@H+ac^C!}I&tEu&CQJ;dDEM3diQ%?`jQ`h_77cl?D&(v^Y8zUkA3vkd+)pV;K75- z;8>?x5%701q;IeBWFwzduol_8U7-T1h-x3jmqyS~0L8-}Vqq1lWN zY;K-9dE)r7CkAHXVPkV^Yjb0orb5DEZN9g=d;bI9oyKWCUpsK%z(BOIzBqmQsV9#; zHZDhIT3cHj*g7!D1dmx|1^eu=gXdKdHMZ+&4+g@15~dnr{iW%Ok9D8~rECH#qRpn# zGmLn;wc^$dTtOV9P>OrSfW@IXON#65H89nH2AOVJ)eG2@NbEXYO3hQvJ5(gxpD<<+ z;e&N`aUn{}7Zw5#C~t&!d!fpO$+=di8s)kI7J?I$Ub132%)fwofxyxlm0@L#wn#Gs zVzT{42GCe*R?zZ89FN?yRnREFh`>OVotAjH9~*&t8x<~k7$SgMY~V+Lb3zFB~XCBf4`EwfqRcLM);H6-T8SBD)F#rfo%h7U5w!%() z6<5j|#045mt@0p1S~52iNOQF47oV_!L`{$v3Sb63!TdB0=sRV|v=3WB4RdPGuvbR+ z<4EOCGZO&?=?+wdHdty5NNyY5oH#D1RUQ+FVI{g}ktzgome8oP3*5x0WMso}@^D8R zR5UP!vr7@0?8jiq^M@FG-BB=-s=L~A9;B;CxXU!~7ziUmILXr=;4*Izfs#+)M7XX6 zCG=A3&g#KiL!iUBE{c}cEXF-@#6njba9FZNLbB@Pff#Wx|LJ3uB$`AYgGc?*`^!2$QgFtg&ql5+#C2 zW{8UYsbSW?;FW+IV838-9%jspwfEXG20C9E)|90-4As2acfDZui6}~`so8H|0B^7X zB*gAUg33LEJZuw!wX97fs9sm89f&zxFFmO#zy$_s*;OCsxou6P_Om)Ci)PZ+R02&3@yYyMhS{*YxAV0-zxM6Bzx~Ni-FD-RKlbLgy#2@C`x7sG;kBRs^d~?5 zvD?1(<*!cDu(mea-PzsU-M{MUYi_*prnkQJZO^;n%HzkM{Ifs%(~o`pqu;#q&eNw) zt*gh)0w7MmN3l5>_9q({?hUr{h%As~JEK zgdU_F+a$*XSDRLd{^@H9j+^l32p^wN@VGblBwv6%=IDJq~4pA>unOW zZIbd(67S-0-|9VG;^|F7baz^ndMuh|GQ-n7P%Q$Ft8h|$N4pHdW+Gwc$>UKP%eBZZ zekO2OBQ}j2#iEcLz&IZ@m@*B-DORK+4pzi%y+ncJm%gp9Y9aB1bE0hu@nvSk<+flFr8MYq`9#&e-6Mk!H68p`tKYnhrx}Z_zmp zug@9_MWx_Rk-VozYj#=bEy0(qj=+?x2YVJXn2@;!S9LO?9cyEe5SLA@W*&lltRN)x z>;P!es9dmR>5(JEs%r0H6Dtl2*|v__Q)b~q69V6##>hK1_kNs`$v!pdm&u(1gbFCu z`9WLsE&>TzeL_S18E=pP4q>Ah;Vfgb+bNBj9z- zktYtJYg;dO`g_WC`$oYiXyz*`4rMJQJ?y%#;Z}PL`x})7Q@u{q2|O3wp=zfkit!@@ zJ*E}lAK%l$G;qg={4g7q5M7-En`Ro*5XLCTu@gYkDCK5-swoxrG*)6S5&86#d-jSF zVA%iKMyYVHVGiDJyppEH^#QcZq>xJ7!gci=yMnVqOKI7CL@%MU$RulPYiotBBOSUM9Xock(g-`9!jC9{PY^vFH_l< zH(<=D3^kUg59+dXvTwC*a~U@-2yv`y&Lof~5JioKp{sFLKniSNElMw9pnk%6v4)Y>b4s35x1@Fs1WA(_ zfF%Ul5S?7k3`Xz$qWrm$3jB=+c%v=~k$r_e%_AE;^^mCH4Qzlcpqhc$+_}zrSp$RU zPlR|x#Q3Iz#{e0lk2GQdN(1#ma3b!>>mCwxRc*MimR~;+H*2NbC&n(;6RrkLCSkt` zxiEAGzl$hz=7M0rki=G8Ui0S&0~xFh^UWcO<8}Mh4Fy@tQrvSAra7Cz#;rpl3JZBA zN|@-|ssO6i0z$bWWI-i#t3ZH$ArvETo+cx)32yIcJJymZ|@0s_ptAQbXdCW{v2D z@n%y@+J{Tt0UV%xBVNKakYiq#W<+krTU`tSyf&M3kQ|*vN=qPutVbfw&6Lx$k*A$~ zaQf&uwY06AF@c8gS7DqP8Elp#{bh5WN@CruT&kv=*w?FKvDm@9++Wu8{UwO3f=Ba& zPCd?uhI!F8oj`73D=$8D6sjcWZ~$Lf=SHH$`@nI=)l3dy@r!Lt7{vsrzh)Rb+1x9V zU8q5<@S<_y1)`JHMmi`#TAy{z1~h~*<`ys{>IsRh4j0K59oWVSc{h>HU#+na@ia}u zw6(Q0P194SPu}*i58v_iJ6`|VAGz`7_q^iOuYKak6>JN?kK&7lZXta~qQZwYi* zJ(JlW&-*c`Sv8zUdkNiW)d7LCo$IXPEJm~PpAQ^ACRkCR4Gd&f;eBoz*n$<&%5JS86XIp7;T#Bsh9x!i-GANYYTq46c$TQ`@9C|0cQrs6#_|>W@?O#+)Z zNLETJlG?3ar`2R_46Go82Bh+uS3o!rzem0f?z^{Y)^4N>nXh2lfyJH!!BrEHUS$HN z@)5zaTDyeg+5@34Tn{`@jH?*l+=wXRk3qTL64>IDR(biaHpW05V&Z7SUts)hFa{8 z>x>*i6+9ZCXYhJH3N6N^F{X;nu38|4A$TR__APbA;Z7UM-*wBPj^%CPjCpPtuv3_Z zBVB~R=6^w#t2mMfDMH|dzGhbM>^yMd$&y&yvjr$oD7T$wjy^fCfZ5i%jGGmblsM>` zuCuM@CTlF2jv7NaPPdsuvQXPN#(?c0Ecf&Uam2!ZgYdb1B^7AZeLjf79w(WC)me+K zTr~4*kqg78(;DN9I1uW@G&of7|2RbSI0Lze%lLuueu@2wmc?vsJ3vMGr`TiyZpZ%) zjrJ8SG&5mKtVC)nVF3_s@Sm_~jRSWAINiP;5Jb|r4Du`8UZ8m{w4L*4DDAGAQxA&W z_tnl*X;hN*f@Bl3YAX7mA&zFhB4fJ5r`V#bguLvNtf1m-@lGvda8J}LkGue>&&|4lD9TGqQ`DTh_GeKK2jCzUyt66X|>bW~F#Rn1*Ml9FT>CY~kb z;SORgmrG_oc;LXeTt4x{V;}hQKmO9~UwrcoZ@uY9-+T2{*T^&tGrITgZ~gfP{_OK# z{Ok|D|NVh!V`FnR8>VR-eX)uRmQ-5iMA=sDCJPJQ{qjxY1XYW@ zb^$FOp*StoLMhoC%6wDR2D|MQyljqTx`9O@4a=1hjkCakgujRu?KVX=08|`A&sgDd z&M_iwyxI3S#0MHd3e~x+E?n+vr)(xFaTm-Uq<2Y+la)g-Lm@8yVM$cY88zCtyh_N?3U8*RY{Xx7!Yh)K?a65-;cD_ z1vCb81G;V6tK14%MMrGX!9i@!2t0-dVu(%wwBaIMJWRoL`YK7@wRmV=)H5&@2zpDT z*#ajw3T&STbd{&23gzGI)$Ko7KRgwWd_wx$Wu$rvR{CR#FHN8}oOvckn0Ho+I8Mw3 z{|QxTN5x$Euv2B#(l=Y8k(OpT+DWPm`zt68uRr)HU&Kes7>_i zH81$t-94jjfE-St06D17-uhE}@B2*iU{PaC96v+r>b}N|f2mFVkxn7iqq_iLDK7Qd zCGk;gJw8yU>8er1h{iUtwN;W3nd8I;axiP*8dP(KP?BIj6j~Z0?Jfl+#xrP@y&Hk= z3arWzmS06h&e{eH5zB{_wQ_%5A+~G@$Jf7V)=;Fkjdhi5|Cw!_$T+@0_ScE&DgHH= z1itve1sIa~}BtG+1mli?tM*Q-|g|IsOI!$a0;RIdV|0KCT0Sw6Z9b#p=Og zd^IJbNL+?gA{LQxIWiCD9X_-_F2DDKNB-y!fA4dj{q)W6dGA}_@wP92=}W)=d%yee z!}k->#>V=5HXCKyUyd<7*ZzXmgo1Tti1n;db7WngvOQ6{XhkH!4J#x%GC4pH`egCm z&TcoSR#^z)M$J=K<(p{4Lc;Y&0sxMHy=Y>-K4!@xlL)-Zvgmcvee6c^J#>!5(3Si9o4KhQ;v^REz~*dY8Nhrq6VHJ}hlcK}+q7TgSp4k~$La z$Z`vx?NIS+*iUH|0Bup^R%i+=1y2)ALEOHhvQ3*fp-n>)L4_>p1LL>$V{*p!76N-# z9k(f^=VB!BLkaibHqH{zDgo8UcZ~U=pK;g8a|QzwW7GlcqZ2 z#Dt(sH7LgbP5ng4yJoo&=AL$f-zAQeimevC@*jJEPS zJGkZzatVmcbk!aZ8{z=j_WW}nRi$QQWgabV9k%A-JZgWwE7@u7VXB*0%!gJWFc+7I zOtpJ<0$X?q`Ww*RG@@dNDc=PEP0w+rILOlFBlft15g;psUqfa!Y!HRpGkNzAFWLtt z`(4-1x>On zXp#XAe7YbJr6?S&*dbY9f?p5lp?DoH#jR90$GlRnxmGX>4=?Qt zortTT5vH}U(HOgE9MWqr1uekB6qEz$5WXV?Ff0_z@N%*fiU|@%sa1EyBs}tAK%D4t zm-WBC(}3C*_+8h0EWoZ9+J|$EaKi~G*IR~@=~@U%MsXo5`eiu8i0ve2R*FJkTft8X zcDW<-1{}-Lhhsh-7LuwLvW)^#HzzV0>YKu)&O41z(H3zD9*7UC3gseTkb0GFwlo*9 zc^rT&L4KJQX+wnSh|2*}9hno<2nxW@IbuPkQJ7%ezY_e=R|){-iL5H5KX|WCNZ63g z=$LRuz;xkXcM8@0EGsHv?V}ph-25c|JWKUDN zO}A@Tu)<8iJIX>#<+R?9s}V_2TCa4L+RcM?(r3;rse>HFy@kLdQDB#~smq_$?_AD|Jp}23j$3!Y z8ESz9$+`&=$lnynTrQeES?Q>@#5HAhszY#D6`U)zjejZ*s}TnGR2i9Bx`+&nJ3ZO@ ziz=xDTXq*Lh{mg~l)U}idk%}CEp*q>LA2T;ipkd!;FM2c&7V~)5lL#RZbsHkEyR*{ zMJLL71RmX;0k@+>tz4VKrzhelhXAZV(m9S4x9qmS2DM7=Y};=Z*8{U~vrcnhH2hrc zk=^Juo>P!!Pb+l{u_=d#W*|W#KWtW^=8ZlZMzzGo_FWk2I09vi5c~v4n}ap@UMQ^v z$b%k*2rD(dl;#Aqx-TxTA<5`9TAIYW=lC9)-7GyR$1;M-w^D3Y1s;z%TSVocW|KS{l!thVLn04|92s04X(LtE%b{8h9v(p+Hs(4hJo`67% zaM2<~K%>fum6Q2UiLwx*R%B~TfI?iDfq+9H)`y z^V#_qoVUHbeb2YQy}r3|_`E|TG%lB-VrAd;5@u(*jfzwZYIsCM`1@Q=k}3wz1`bko zUlJ%>^c2_?TNP4Y_gzQ8S%j6{s>JFdI3W$z`6O-}zMOA?QwdT+4VE->u;m2!lJU{L zG7-@bS4_fMkH6QcLc2tLW1ztBr<`V?2iFOQa?~WvmG9nupZHmn24?nsF-$}}=*4!{ zU?3fZqVTE)U(KRVI}s5L!=MC+7NqR~65NSL)TCcTGz@l0!-p;hD%zHKG?D7v0k5pW zg`nM{JjPe`b=+cxy2K|WLQ&oUI>^8*TX}3B@SLLhguHUxAsA#6e3^(jPTBopp04?d-xr%vKi-DBaRH4ywYVLMCjui_1N6J6(oi7F2 zu`dvjpyPv2RuIR4db9!o7GdLhB^S~mtM zZ-a`g3Y+boHV~ zLY!c5rY5ZpI?2DRz@!NapuYb&j%g&tnlgbe2I8gu#vpu+sqtl9sx`|B*raZVAq#Sv z&J#ltzbX#YI9yK&o}?UxP{XKm?J(qMPE68i^VU4aJ-nxPtgsC>VI2H!2PZ_dU}i zRKZE{3iBB+6BoUq?e%<<%TM3n0xuM(iKuP{ck@P|4XQv_3IVBNqH~*`lg)mk`H6O< zjXZ!^*x@J-hF_+y9k&@Hh^WB~@ie#^zwOr!O^wM!IogAnZ^Y z&t&5Bl0uWp3?B?|!2yZc&V9eIN8y${NG;6ET>m+Q_+%%XjTUR88|oNetn^d7C1&!} zD#Y!K^M@X`tUl0UW5Xy#hBGk3H4hL=C|DHGg(r*VC5|?dQGr&iz_TtX6r?c9p4*gT zsQ(2J(&1tN79TVG@Mt8-dCbo&mgtQY7Q0cwpJ=Z5&7oiB`cEt>gI`y?5imQEIH@58 zHOume4C2)r$|)hD|evG)R*Ij)VZwu8aF04e%7IY7W$Jj}?2v50Aj^OE$AM;}&pY|0mdS77}6vMom-{ z)iLsHSG)?Ku~8? zHIEQB!Kh#duxUz=Kdh@6&w|o+GIT_-pA2JFwVJTmNtipY231!nmTMdZtf-s%XqV!G znmd82a~8u0P76bMwIH9}%>55d7Y{vyuMWTJ|jyHrEWuz$UgNW<_C7aV#9avMT zMGZFvwf(*!>y6qYs|vz$gAU*AqZoKVl3qK*LWceWgJLj4q{T?JYX)%`gF;r>wiOOA zv)ZRYes2vCIwh~>08IkVtLsf+pLSqhECd@zhQJW5qF8I8Cz^e+A`5I4EW>lqaJ~w! zryzlumBPCtufJ@D1Js5fWwK7fbI5ib>0iS{JLw6NUaEi@w^W!wls~-#vwTv0Gzu%; z5g|70R8mnD?vt$0&9&xQ9V2WbfwaR{_T50jyN)8Lp{F9vda3V2Xi-3)0h-`lO_d4+ zl@csdn1_PuUnUS3mL*eB1Y&#rY+cS0A?qh25ObZtL-LkH<$Qr&%=ao@2YzxG0}0j7 zoi`#=o$Z49Y}{hXWe9SR0R(O_c)M zy`gWAgFO$S5zsW^iA}R@40b*?K}VGVMg&itm_Q`mZL=dLEAb+-I(me7-tq7tcn+CB zATq1PH|9!D(Ydw$L0>NM1>|5p4+Qv%gbwODt!+B^Q1>NBRs<=$$C^k&Eeao?gI?;Z z3`9mMZFwsj)>CxgIINDu4VH_-3F^ke7!(XZ3KlHF>@y6O)Q2Owix-*@RV$7QX%Z3R z37`eg?}4QJNnBSoRDZ02SATLE7NJ_&!CxsDgu6M+^{tIXndpD|R8h)2q0=yw#0Fer zHJUe&WKTt;f<`SvU)d;v3({<8CIimVh8njPC$5Zg66YQr*3UGe% zY|-a~w(M@iE25iz7(|4zPHH>|l@8d7>%vO0*)7f^ti9_XT=Bd)(XU|+N(NB~c&!7C z9`7PjkcFRf;OV@mI^##4AtkPD5HGe^)UMG^@wBdqh}}}$zr0976M4@CXq0iJF~YkB zF{$8D<}1b00&UZ3Mx|<6cY%8WYj97FWxk-rf#Mn}CZF~XO{q2&id5uoA!@t$G}En9 zN{pa=GL2(6J59L64^D<2&J-%9dOm<(A6a^iaX$K9FPD7X-Ml(S!Bnt%a8-~#zJafzRD;B*5SXdYJolvtk#cuVh zPl4oAwUvYT-1TQ#9pt)M8zk88pz_qV(N<;eze2Fh)%6Sm)Y-aJsPV3v0CT$ z#$khi1(zTq_#Dh(Alnz9m!>NBAWv|6Vw!X}W%YzW;{+SMxFKu$yf@dW67 zsyD!EiES%!6-+ZdmxPeqXr~~Q+Cz>8L3Htw0opZ{glrWRS+SnKbZ}792uT$4?YNA^?^*n8TD7zrU~$(%d1ld9Zc$T zN%r{W8*3k3uWqYQyuy|U1gf%Fq>kLAnK=&A^K#(TI23Je(lrDFLuQqMn?42&!%eR? z;HaEU6eA7dzdHhiM%#mjD>4$q6?PkR2g1Wbfjvaj-~$LL^3e@HP?R=@)Z&8g3L+wl zf|dMER!`M)y$p*`id8phXAb_(NU6Z&W#ZaurCp#4+XqA@^=mr?Ig)K!jCw()9B*qs zMvD;1#8o0G+Cng;vW>MHGTsI!qtHE`e_FtU|Q<+09RL}Z?c0^=4? zt%%71+A7T!5w$d-%4eS(SwJSL334G4vvLRXj(()3)ka=d;t51^2xbr(M5a)c!3A%4 zn*e#t6%X#!fqkf&@#8`!8Zk@)ycWe;Vli1Ui5DI7Zy_1fGyCs-7P@@U`ifQw3jvdx z3uc}~F{8}jZeUPM`<~Vpda8A1FW?|VM+YJHOe`jP<7aq$$IV5 z_FsDCy|}Ma!&o7Un|SfO$sqW-dQ65?3{%4DiD`+$yoLZ2CH>U~8W-kOaPr)Z2;Cg|4Hqnq;m=RE%18&Uyuv-mqe}up zC9eAyL}W^K?Dct2Y@CxRfmPm2L8CGIg)wcBKR|`CDoo^?9>@SH?-j66>jhSL!vR@; z7Q+H}cuBE5yzt1)6q=*_f=bx`s|pMFhE%%?YZ?g);dLLPgsyCm)RD1okdDht<~bhS zm@)aY8Mg@oKu06b>ma?hCs*SS=7%(P*l0OQBktD2` zve9n|3#Js%vyjE5kmtDj;7%}So`~}vRyXB<68=3nhZbI)fA7h44K%|uKLkE5rnNeP zWQ!7sjO*SW{GoWBpWm{iGk$VqMm_mQ%69HAyWUP=?JfWoH6k=Y(ORI`i2hMbILk^6B z9o6(a(})n6ZuFQ3WNUcjgcUu?*+^A@k^0o4x+%~|7P!lOx|~jeZ-B#|{X@98LUhJa zD}gGT6;u4st$G3bsXk#;IkF4k4hBI|lsQ~S4{IVm!V)Ua3(y{C3~IVI7F@VvmhPFs z;F2pd>57Foa5No4^h6YZ(8a(2zU|Ah$XFd9>Zu{y1kjG_b2d6-`oR0dmG#%+{#G3?7m0!9PK(b{Y(fi6HrdqchLytq3=vwMkPY+=x+5#a03; zi^NT6p7Ayzk|8n&BNIcK`9vhdlhmaIvy*xk?gAzvp#e-+6i$e3%U+GX1z^gWTdho} znN&ArvPbbiWe}P5HzMi@mzO=}O~h0EYkGxhLY0B8kSp|AO5&@5dPan37zSn@r;z}` zM0Zt?GhwWtZfjVVfXBql^Z9(5rfHg(xojz^_28ihOekdTbyZFot&yfoz-r;6Qa$Kc zMgS2JjS~$#8)nOK9H)tS;DL#GFoF@!!0*sZP$L6{0Vb0Ss>b&rGjyTrPgTAY7tmqd zLUrT(WLN4ufi~#g8&thlUcw>qv&mfARz=SN3}J}|v0812MapWKJ2DUUuqjz96H5Is zX+YPEFp-^{UH23)E-Pw~BJCgmy4bp0TsI+7iCQg9pbs*FV1dc7zIvU1_76I<;ZU0L zX{RnCsuL4~O@!5GtsTJAE;djUqgN0DkdWDsa8R6c038ra`5KNiY}ZO~bPlMZ0`(G74Vu}gs6Cp9?$mW@mA34+3TzK$uOWfX z!6eDxftXn1QB+jz0He4Fi7j0e@A0(6xb^^APMfy`9UDGzLP)03m80%`|QCki>L?I!WJ!)tT(S9`*
|KpERF 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�EEy?X5FbLZ`rYZc=X8e_q_8ZA;jUJ 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%0DTKu@ZB-E8Yt)kvAbf zSihItZb`XntYF!COFi|CTcocdWV=6ep}I`I5Oj2m!v9F<60fK}FL(-Q<)Ta!B(C6K z(`bJ=vXZEo=U3iVk_(KfQ5hb9K$T#FSQlwddPK3PEy?o>SH)NT8b^%Ho1k+i4YtqjC$ACS*U#~YVHZb zT)8jZ_##^t`N86%0*qwle-%;j`^3kT)o;Vw1h{t8Pd*1OS@^6bW=8do=O%y715eCj zv%3MjioY;~T==Yq%4+gND@^lyz+d|Ri7dLM(;u)^IIPP1?WqEnp-vOm10CbdzajJ0 z=3wS;F-+-O)6XSr?dw=m>*CX@<|MfaC=uv6Ay`YpQk?}ry>>Xra8vsE5JW_vApR7n zHkA+%Vf$3bGywL)nBt-!1~*jltqQXonwc*3nqNXN`z`%2K?sbY6=Z*nr#fg&*^p!Hq#_!mmm_?yN z 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

y4FH3b;_Ow< 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 z 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.glb` files together. + +The helper publishes the manifest only after the payload is complete. It exports +the active Blender scene, not just the current selection. Gameplay and physics +components are added in Faset and are never written by the Blender helper. + +## Rename, duplicate, and reimport + +Renaming an object with a saved `faset_id` preserves its source identity. Re-export +and reimport update the shared asset; scene placements using that AssetId load the +new geometry while keeping their own transforms and components. + +Duplicating an object can also duplicate its custom ID. The exporter rejects +ambiguous IDs. Select the new copy and run **Faset: New IDs for Selected**. Shared +mesh datablocks remain shared. Repair deliberately duplicated material IDs in +Blender's Custom Properties. Save the `.blend` again. + +Removing an exported output produces an import conflict. Faset keeps the old +generation active. Inspect the diagnostics and update affected references before +explicitly importing with `allow_removed_outputs: true`. This accepts removal; +it does not automatically remap references. A normal GLB without persistent custom +IDs uses structural matching, which cannot guarantee identity after rename or +restructuring. + +## Coordinates and supported content + +The static profile uses right-handed glTF coordinates: metres, Y up. The Blender +helper enables glTF's Y-up conversion; do not add a second manual axis conversion. +Transforms and hierarchy are retained. Physics currently supports explicit boxes +on root-level objects. A visual imported mesh is not a mesh collider. + +The renderer uses static triangle meshes, UV0, base-color factor/texture, metallic +and roughness factors, and directional light/shadows. Import can retain additional +glTF material metadata, but normal/occlusion/emissive/metallic-roughness texture maps, +glTF alpha-mode selection, unlit selection and per-material face-culling behavior +are not all implemented in the baseline renderer. Diagnostics identify unsupported +material features. Procedural Blender node networks need baking or simplification. +Skinning, animation playback, morph targets and compressed geometry are outside this +profile. Imported material records use the versioned `faset.material` format inside +the asset manifest; a standalone material editor is later work. + +## What to commit and how to rebuild caches + +Commit your source files, Blender bundle manifests/payloads, and +`.faset-import.json` sidecars. Sidecars preserve AssetId and import settings. +Also commit `.faset-overrides.json` if used. Commit `.blend` sources when they +are part of your project. Do not commit `.faset/cache`. + +After clearing the cache or cloning a project, import the same sources again. Their +sidecars restore identities and recipes. Rebuild C++ to restore gameplay metadata. +Deleting the **entire** `.faset` directory also removes recovery journals and local +editor state; preserve unsaved work before doing that. An export fails if a referenced +asset has not yet been rebuilt. + +The cache key includes source/dependency hashes, settings, importer recipe, pinned +importer dependencies and the desktop target profile. Linux and Windows share this +portable content profile; runtime executable builds remain platform-specific. + +For an end-to-end example, open `examples/projects/collect-3d`. Its exit arch includes +a `.blend`, reproducible Blender script and a published bundle. The repository's +`tools/verify_blender_roundtrip.py` runs the actual Blender helper and Editor imports +to check rename, geometry changes, removal conflicts and failure preservation. diff --git a/docs/manual/editor/export.md b/docs/manual/editor/export.md new file mode 100644 index 0000000..b4904f5 --- /dev/null +++ b/docs/manual/editor/export.md @@ -0,0 +1,99 @@ +# Build, Play, and export + +Faset compiles C++ gameplay into a separate native Player. Changing C++ requires a +build and restart. Changes to an authoring scene can be tested without saving it: +**Play** captures the current resolved scene, builds gameplay, and opens its own +Player process. **Stop** leaves the authoring document unchanged. + +## The iteration loop + +1. Edit `Scripts/Gameplay.cpp` and its explicit schema declarations. +2. Stop the running Player. +3. Choose **Build C++**. The compiler and SchemaExporter run outside the Editor. +4. Read compiler errors in the Console. A failed build retains the previous schema + and binary; the schema status reports that it is stale. +5. After a successful build, edit the behavior's exposed fields in the Inspector. +6. Choose **Play**. It builds if necessary and launches the captured scene. + +Play captures the authoring document when requested. Editing the document while its +build runs does not silently change that snapshot. Runtime movement, spawned objects, +and gameplay progress do not write back into authoring or its Undo history. + +The Player supports pause and single-step. Editor controls use a private session +control file; they do not expose runtime entity queries through MCP. Closing the +Player is observed by the Editor, which keeps its logs and authoring state. + +## Export a standalone game + +Use **Export** in the Editor for the current scene. Resolve template conflicts and +import all referenced assets first. Export validates the scene, builds C++ and +metadata, cooks resources, copies runtime dependencies/notices, and verifies the +package before publishing it. + +Through MCP or the command interface, the operation is: + +```json +{"name":"faset_export","arguments":{ + "document":"the-open-document-id","output":"Exports/MyGame" +}} +``` + +The result is a job ID. Poll `faset_job` until `succeeded`, `failed` or `cancelled`. +The successful job's `result` identifies the package. Output paths are relative to +the project; the Editor rejects paths escaping it. + +Development builds use **Debug**. Exports default to **Release** and use a separate +CMake cache. The BuildService API also accepts `RelWithDebInfo` for exports. Exporting +does not change the configuration of your development Player. + +Each successful export creates an immutable directory under +`Exports/MyGame/generations/`. `current.json` points to the active +generation. Distribute the **whole generation directory**, not just the executable. +If building, cooking or verification fails, the previous pointer and package remain +available. Cancelling a job does not delete earlier exports. + +## Run the package + +Open the generation directory and launch `faset_player` on Linux or +`faset_player.exe` on Windows. The package selects its cooked start scene and shader +directory. It does not need the Faset source checkout, Editor, MCP, Blender, CMake, +SchemaExporter or Slang compiler. Vulkan drivers still create native GPU pipelines +from the packaged SPIR-V. + +The package includes its resource hashes, build profile and third-party notices. +Keep these files when redistributing it. Faset's own repository license remains an +explicit project-owner decision; third-party notices do not assign an engine license. + +## Platform requirements + +- **Linux x86-64:** a desktop session and Vulkan loader/driver exposing the baseline + Vulkan 1.3 features. Build on a distribution compatible with the target machines' + C/C++ runtime; the export is not an all-distribution static executable. +- **Windows x86-64:** a supported Vulkan driver and the compatible Microsoft Visual + C++ runtime. Release packages use the dynamic release CRT; install the matching + x64 Visual C++ Redistributable on the target machine. Debug development builds also + require development runtime libraries and are not the distribution package. + +Build and test Linux packages on Linux, Windows packages on Windows. Cross-compilation +is not part of this MVP. CI uses software Vulkan on Windows for deterministic image +and package execution tests; that is separate from physical GPU-driver testing. + +## Troubleshooting + +**Unknown component or schema version:** enable/register the missing runtime module +and rebuild. The Editor preserves its data as opaque authoring fields, but export +requires a matching runtime implementation. + +**Missing asset:** import the original source or Blender manifest again. Preserve its +sidecar so the AssetId remains stable. A cache copied from another project is not a +substitute for the correct source identity. + +**Shader build error:** fix the Slang diagnostic and build again. Failed compilation +retains the last successful shader generation; it is not reported as a successful +new build. A pipeline reload also checks resource layouts before replacing a working +pipeline. + +**No Vulkan device / unsupported feature:** use a compatible driver/device. The +renderer reports the required capability rather than silently selecting a reduced +graphics profile. Headless authoring and schema export do not require a GPU; playing +and capturing images do. diff --git a/docs/manual/editor/profiling.md b/docs/manual/editor/profiling.md new file mode 100644 index 0000000..915fa3e --- /dev/null +++ b/docs/manual/editor/profiling.md @@ -0,0 +1,76 @@ +# Profiling and measurements + +Use a Release export to measure the shipping Player. Record the exact scene, hardware, +driver, build configuration and resolution with the result. Small test scenes do not +establish performance for a large game. + +## Capture a bounded Player profile + +From a standalone generation directory: + +```sh +./faset_player --headless --frames 240 --profile profile.json +``` + +`--headless` here means **offscreen Vulkan rendering**. A GPU/driver is still required. +The Editor's headless authoring mode is a separate feature. Omit this flag to measure +the windowed path. `--profile` requires an explicit `--frames` between 1 and 100000, +which bounds the stored samples. + +The JSON contains raw completed-frame samples and nearest-rank p50/p95 summaries. +No warm-up frames are silently removed. It records the presentation mode, device, +resolution, validation activation, fixed ticks and timestep. A bounded run advances +one synthetic fixed timestep per frame; it does not reproduce a real-time input +session. Keep that distinction when comparing runs. + +Startup starts at `main()` and ends at the first completed frame. OS process loading +before `main()` is excluded. Frame wall times exclude writing the final profile and +capture files. Simulation and scene-snapshot times are separate from the renderer +call. Renderer CPU wall duration includes GPU waits and readback; it is **not CPU +utilization**. GPU timestamps measure the submitted graphics work and can be null +when timestamps are unsupported. + +Resource counters report live renderer allocations and texture count. GPU allocation +bytes include Vulkan allocation alignment and exclude driver-internal memory; they +are not a whole-process VRAM meter. The fallback white texture is included. + +Use `--debug-physics` or press **F3** to show current physics box colliders. Debug +geometry increases draw count, so record whether it was enabled. The collider view +uses simulation poses; normal visuals can use interpolated poses. + +## Measure Editor and C++ workflows + +From the engine repository: + +```sh +python3 tools/measure_workflows.py \ + --editor build/linux-debug/faset_editor \ + --project examples/projects/collect-3d \ + --output .cache/my-workflow-measurement +``` + +Use a new output directory. The tool copies the project, preserving your original, +and records command startup, two-frame GUI startup/shutdown, first/cached Blender +bundle import, initial/no-change/changed Debug builds and a subsequent Player frame. +It checks that editing gameplay makes the schema stale and successful building +clears that state. The initial build uses available dependency archives and OS +caches; it is not a measurement of internet download speed. + +On Linux, GNU `time` records peak RSS for each command and its waited-for children. +This is a maximum, not the sum of simultaneous compiler processes. Other platforms +report this field as null unless equivalent measurement support is added. The tool +keeps raw stdout/stderr, durations, hardware and revision information alongside its +report. A dirty source checkout is explicitly identified. + +`tools/verify_playable_exports.py` separately verifies the two sample games in +relocated Release packages and records their Player profiles. Its assertions test +correct execution, not a frame-time threshold. + +## Current performance scope + +The MVP renderer is intentionally conservative: direct draws, CPU culling, one +graphics queue and synchronous capture/readback. Use the measurements to find the +next bottleneck before introducing parallel jobs or GPU-driven rendering. Neither +an offscreen capture benchmark nor a tiny demo is a promise of a production frame +budget. Observed measurements and follow-up targets belong in the implementation +acceptance report with their source revision and method. diff --git a/docs/manual/editor/templates.md b/docs/manual/editor/templates.md new file mode 100644 index 0000000..853c9e6 --- /dev/null +++ b/docs/manual/editor/templates.md @@ -0,0 +1,128 @@ +# Scene templates and local overrides + +A template is an ordinary `.scene.json` scene used as the source of an instance in +another scene. Each instance stores its source path and local differences. Editing +a source field updates instances that have not overridden that field. Templates can +contain other scene instances, forming a nested composition. + +## Make a reusable object + +1. Create an object and its children, then select the root object in the Scene tree. +2. Open **Scene** and set the template path, for example + `Assets/Templates/Door.scene.json`. +3. Choose **Save selection as template**. +4. Select a containing scene, open **Scene**, enter the same source path, and choose + **Instance scene at this path**. Alternatively, select the saved scene in Assets + and choose **Instance Scene**. + +The save operation copies the selected **resolved subtree** to a new source file. +It does not replace the original objects with an instance or apply changes to an +existing source. Nested content inside that copied subtree is flattened into ordinary +objects. The selected root becomes parentless and retains its local transform, so +check its placement if it was previously under a transformed parent. References to +objects outside the copied subtree need deliberate handling; they are not collected +automatically. + +Use a new path: Save As will not overwrite another existing scene file. Creating this +source file is separate from the containing scene's Undo history. Remove the original +objects only if you intend to replace them with your new instance. + +## Recognize an instance + +The Scene tree shows a **[T]** group named after the source scene. Nested instances +have their own indented groups. Select the group to see **Scene instance** in the +Inspector, including its source path and **Open source**. + +Select an inherited object inside the group to edit its fields. Its Inspector shows +the source filename. Each exposed field is marked **Source** when inherited or +**Override** when the containing scene supplies a local value. + +To change one door's position or behavior setting, edit that field in the instance. +This records a local override; it does not modify the source file. **Revert** removes +that field's local override so it follows the source again. Undo can restore the +previous override. + +## Edit the source + +Choose **Open source** from an instance or inherited-object Inspector. Edit the +opened source scene, then use the viewport's **Back** button to return to the previous +document. Back switches documents; it is not an Undo operation. + +The current editor session resolves instances against an open source document's +in-memory state, including unsaved edits. Save each changed source scene to make those +edits available after restarting or to another session. Saving only the containing +scene does not save its source documents. + +Renaming, adding/removing source components, and deeper nested structural changes are +done in the appropriate source document. Inherited object names and component +structure are not editable as arbitrary local overrides. There is no **Apply all +instance changes to source** action in this version: open the source and make the +intended shared edit explicitly. + +## Make structural changes to one instance + +The top-level instance Inspector provides these operations: + +- **Add local object** creates an object owned by this instance. An inherited object's + **Add local child** creates one parented to that object. Local additions can be + renamed and have components added or removed without changing the source. +- **Delete** on an inherited object suppresses it in this instance. The source stays + intact. Select the instance group and choose its **Restore suppressed object …** + button to remove that suppression. +- **Remove instance** removes the entire top-level instance record from the containing + scene. It does not delete the source file. Undo restores the record and its local + differences. +- Edit the top-level instance's **source path** to point to another scene. Existing + local differences are retained; review Conflicts because the new source may not + contain their targets. + +These edits are authoring transactions and support Undo. Removing a local addition +from the visible instance also uses suppression, so the instance Inspector can restore +it. + +Drag an inherited object's tree row onto another object **within the same instance +path** to reparent it locally. The editor keeps its world pose when representable. +Dragging across instance boundaries is rejected; use **Add local child** or edit the +source hierarchy instead. A nested instance group disables top-level structural +controls and directs you to **Open source**. + +## Resolve conflicts without losing overrides + +An override targets source object, component, and field IDs rather than the label +shown in the tree. If the source component is removed, for example, the local override +cannot be applied. The Editor keeps that record and lists it in **Conflicts** instead +of silently discarding it. + +For a reproducible example: + +1. Add a component to the source and save it. +2. In the containing scene, override one of that component's fields. +3. Open the source and remove that component. +4. Return with **Back**. The containing scene reports the unresolved override. + +Use the conflict's **Open source** button to inspect the change. If the source deletion +was accidental, undo it in the source document; restoring the original identity lets +the override resolve again. Recreating a same-named component can give it a new ID and +does not automatically reconnect the old record. + +If the local value is no longer needed, **Discard override** removes that record from +the containing scene. This action supports Undo. A missing suppressed object can also +show **Discard suppression**. These discard buttons cover supported top-level records; +for nested-source conflicts, open the source that owns the change. Other conflict +kinds are displayed for diagnosis and are not automatically repaired by renaming. + +Resolve conflicts before Play or export. A missing source, source cycle, or invalid +address is not a successful partial game build. See [Build, Play, and export](export.md) +for validation and job diagnostics. + +## Scope and persistence + +Save the containing scene to persist its instance paths, overrides, suppressions, +local additions, and reparents. Save source scenes separately. Unsaved committed +changes have the same [recovery behavior](workspace.md#recover-unsaved-work) as other +authoring edits. + +Template resolution produces the flattened scene used for preview and Player startup. +The running game's components are independent of this authoring composition: gameplay +writes do not become template overrides, and MCP does not inspect or change the +Player's live entities. diff --git a/docs/manual/editor/workspace.md b/docs/manual/editor/workspace.md new file mode 100644 index 0000000..70ae41d --- /dev/null +++ b/docs/manual/editor/workspace.md @@ -0,0 +1,174 @@ +# Editor workspace + +The Editor edits saved scene data and previews it in a Vulkan viewport. **Play** +opens a separate Player process. Gameplay movement and spawned objects stay in that +process; stopping it leaves the authoring scene unchanged. + +## Open or create a project + +Launch `faset_editor` without arguments to open the project launcher. + +1. Choose **Create project**, enter a name and a new or empty project directory, + then select **2D** or **3D** for the initial scene. +2. Choose **Create project** to create the project files and open the Editor. +3. To return later, choose **Open project**, select its directory with **Browse**, + and confirm **Open project**. The directory must contain `project.faset.json`. + A recent-project entry fills the directory field; confirm to open it. + +The directory browser has **Up**, **Home**, and folder rows. Choose the directory +before confirming the launcher. **Tab** moves focus, **Ctrl+Enter** confirms the +current launcher/browser action, and **Escape** cancels the browser or launcher. + +In an open Editor, **File → Open / create another project** returns to the launcher. +If there are unsaved scenes, queued/running jobs, or a Player, a dialog offers +**Cancel** or **Switch project**. Cancel and save first if you want ordinary scene +files updated. Switching stops that session's jobs and Player; unsaved authoring +changes remain in recovery journals. Project switching is disabled when the Editor +was launched in MCP mode so the connection keeps a single project context. + +For a direct launch, use `faset_editor --project /path/to/MyGame` on Linux or +`faset_editor.exe --project C:\Projects\MyGame` on Windows. + +## Create and save a scene + +Use **File → New 2D scene** or **New 3D scene**. The Scene panel offers **+ Object**, +**Cube**, and **Sprite**. Select an object in the tree or viewport to inspect it. + +Choose **Save** or press **Ctrl+S**. A new scene opens the File menu's path field; +enter a project-relative path such as `Scenes/Room.scene.json`, then choose +**Save scene as**. Subsequent saves update that file. The title's `*` marks unsaved +changes. **Open project-relative scene** opens another scene by its project-relative +path; the Assets panel also has **Open Scene**. + +Save As refuses to overwrite a different existing file. If the scene file changed +outside the Editor, ordinary Save reports a conflict instead of overwriting it. +Save your in-memory work to a new path and compare the two versions before replacing +anything. + +## Navigate and transform + +- **Right drag:** orbit the 3D view; pan in a 2D scene. +- **Middle drag:** pan. **Mouse wheel:** zoom. +- **F** or **Frame:** frame the selected object. +- **W / E / R:** choose Move / Rotate / Scale. The viewport also has named buttons. +- Drag a gizmo axis to preview a transform; release to commit one Undo operation. + **Escape** cancels the drag. +- Hold **Ctrl** while dragging to snap: movement uses 0.25-unit increments, + rotation uses 15-degree increments, and scale uses 0.25 increments. +- **Delete** removes a local object, or suppresses an inherited template object. + **Edit → Duplicate selection** duplicates an ordinary local subtree. + +Move uses world axes, including for parented objects. Rotate and Scale operate in +local space. The Inspector stores rotation in **radians**. Dragging one Scene-tree +object onto another reparents it while preserving its world pose when representable; +drop into the tree's empty area to return it to the root. Template boundaries impose +additional rules described in [Scene templates](templates.md). Physics bodies must +remain roots for the current runtime adapters. + +These shortcuts apply when a text or numeric editor is not consuming the key. +The viewport camera is an editing camera; navigating it does not rewrite a scene +camera component. + +## Edit components and undo + +The Inspector uses the registered component schema to show numbers, vectors, +checkboxes, enum choices, and text. Use **+ Add Component** to attach a registered +type; the component header's **x** removes a locally owned component. + +Type into a field and press **Enter**, or move focus to commit. Numeric fields also +support dragging. A committed field edit or completed drag is one scene Undo action; +preview changes are not separate history entries. **Escape** cancels an unfinished +field edit. **Tab / Shift+Tab** move between controls. Invalid numbers keep their +error state until corrected or cancelled. + +Use **Undo / Redo** or **Ctrl+Z / Ctrl+Shift+Z** after finishing the active field. +While editing text, its own editing history can consume Undo. Scene history belongs +to the active document: returning from a source template and undoing in its containing +scene does not undo the source document's edits. + +GUI actions and MCP use the same authoring command service. If another action changes +the document while a field or gizmo drag is in progress, the old revision is rejected. +Read the fresh value and retry; the stale edit does not silently replace the newer one. + +## Refresh C++ metadata + +**Build C++ !** and the status message indicate stale gameplay metadata, for example +after changing gameplay sources or after a failed build. Choose **Build C++**, then +check **Jobs** and **Console**. A successful build and schema export refresh the +Inspector. A failed build retains the previous metadata and reports the failure. + +A missing schema or unsupported component version appears as read-only raw fields +with **Copy raw fields**. The Editor preserves that data. Restore the matching module +or provide a migration and rebuild before expecting normal field editing or Play. +See [Build, Play, and export](export.md) for the C++ iteration loop. + +## Project settings + +Open **File → Project settings** to change the project name, initial **2D / 3D** type, +and start-scene path. Save a scene first, then choose it from the saved-scene list or +enter its project-relative path. Choose **Save project** to update +`project.faset.json` explicitly. A missing start scene is rejected and the dialog +stays open. + +These settings are used when the project opens again; they do not convert the active +scene, switch its dimension, restart the Player, or add a scene Undo entry. +**Cancel** or **Escape** discards this form's draft. If another writer changes the +project settings while the dialog is open, Save reports a revision conflict and +keeps your draft. **Reload saved** deliberately discards it and reloads the latest +saved settings before you retry. + +## Configure scene simulation + +Choose **Simulation** in the toolbar. These settings belong to the **current scene**: +fixed tick rate in Hz, maximum catch-up ticks, physics substeps, and gravity XYZ. +Defaults are 60 Hz, 4 catch-up ticks, 4 substeps, and `(0, -9.81, 0)` gravity in metres +per second squared. Each committed change is one Undo action and is saved with the +scene. + +The next **Play** snapshot uses the settings. Editing them does not reconfigure an +already running Player. The 2D adapter uses gravity X/Y and ignores Z. See +[Physics and grounded movement](../scripting/physics.md) before changing the tick rate +or substeps. + +## Panels and commands + +**Assets** lists project files and imported resources. **Console** shows recent +messages and diagnostics. **Jobs** shows build/import/export progress and cancellation. +**Conflicts** lists unresolved template records. Drag the bottom tabs to reorder them; +drag panel dividers to resize the Scene, Inspector, and bottom areas. These choices +are stored per project in `.faset/editor-layout.json`. + +The current layout supports these panel sizes and bottom-tab ordering. It does not +provide floating panels or multiple Editor windows. Theme and base layout JSON live +in the engine's `assets/ui/dark.json` and `assets/ui/editor-layout.json`. The Editor +checks their contents every 500 ms and applies valid changes without restarting. +Malformed changes retain the last working appearance and report an error in Console; +fix the files and the next successful check applies them. Focus and unfinished field +text are preserved. + +Layout reload updates properties of existing widgets; retain their IDs, kinds, and +parents. It is not a way to add arbitrary controls or move them to new parents. +Theme-only edits preserve resized panel widths. Editing the base layout can replace +properties explicitly present there, including panel sizes; per-project docking +preferences are stored separately. + +**Commands** or **Ctrl+P** opens the command palette. Filter by command name, select a +command, enter its JSON arguments, and choose **Run selected command**. Results appear +in Console. For example, `faset_schema_status` takes `{}`. This is the same editor +command surface described in [MCP and command line](mcp.md). + +## Recover unsaved work + +Committed authoring changes are written to `.faset/recovery/`. On startup, +**Unsaved authoring recovery** offers **Restore <scene name>** for dirty journals. +Restore brings the recovered scene into memory; inspect it and **Save** when ready. +It recovers scene data, not the full previous session's Undo history or Player state. + +**Continue without restoring** closes the prompt without deleting its journals. +Later edits or saves of the same document can replace its recovery record, so restore +or copy a journal before continuing if you still need that draft. Uncommitted text +or gizmo previews are not recovery checkpoints. + +If the scene file changed or disappeared since the journal was written, restoration +reports a disk conflict. Keep copies of the journal and current file, then reconcile +them explicitly; recovery does not automatically overwrite external changes. diff --git a/docs/manual/getting-started/build.md b/docs/manual/getting-started/build.md index 6144c98..db86d4e 100644 --- a/docs/manual/getting-started/build.md +++ b/docs/manual/getting-started/build.md @@ -36,6 +36,9 @@ Create a project and open the native Editor: build/linux-debug/faset_editor --project "$PWD/MyGame" --new MyGame --dimension 3 ``` +You can also run `build/linux-debug/faset_editor` without arguments to open the +project launcher and create or select a project using the native interface. + Use **Build C++** after changing `MyGame/Scripts/Gameplay.cpp`, then **Play**. The Player runs separately. Stop it before changing and rebuilding C++ gameplay. See [MCP and CLI](../editor/mcp.md) for headless authoring and automation. @@ -73,3 +76,6 @@ ctest --preset windows-debug Windows acceptance is tracked separately from Linux; a successful Linux build does not verify a Windows build. + +The repository's `docs/TOOLCHAINS.md` records the exact compiler, SDK and GPU profiles +used in observed validation, separately from the minimum tool requirements above. diff --git a/docs/manual/index.md b/docs/manual/index.md index bc5ac4e..eed7a87 100644 --- a/docs/manual/index.md +++ b/docs/manual/index.md @@ -7,7 +7,8 @@ and how those functions interact with scenes, physics, and the editor. !!! warning "Development status" MVP implementation is in progress. A planned feature is not a working feature. Individual guides state their prerequisites and validation status. The current - Editor, gameplay tutorials and Linux export can be built and tested. Final Windows graphics/export acceptance and complete sample games are still in progress. + Editor, gameplay tutorials, two playable sample games and Linux export can be built + and tested. Final Windows graphics/export acceptance is still in progress. Start with [how C++ gameplay works](scripting/index.md), then read [frame and physics updates](scripting/lifecycle.md). See diff --git a/docs/manual/scripting/api.md b/docs/manual/scripting/api.md index e4603b7..62a65e0 100644 --- a/docs/manual/scripting/api.md +++ b/docs/manual/scripting/api.md @@ -38,7 +38,7 @@ These are values, not borrowed component pointers. Changing a returned copy has - `void teleport(EntityHandle, const Transform&)` changes the pose discontinuously, wakes the body, and resets interpolation/contact-query history. It does not zero velocity. - `bool grounded(EntityHandle) const` tests support using recent native contact normals. -These methods require a valid handle and a physics body. Ordinary `setTransform` is rejected for physical objects, including static and kinematic bodies. See [physics](physics.md) for dimensions, tolerances, and collider limits. +All methods require a valid handle. Velocity, impulse, and grounded queries also require a physics body; `teleport` accepts physical and non-physical objects. Ordinary `setTransform` is rejected for physical objects, including static and kinematic bodies. See [physics](physics.md) for dimensions, tolerances, and collider limits. ## Input and collision events @@ -68,3 +68,23 @@ Immediate validation errors throw. Deferred failures are recorded in diagnostics `RuntimeConfig` defaults to `fixedDelta = 1.0 / 60.0`, `maxCatchUpTicks = 4`, `physicsSubsteps = 4`, and `gravity = {0, -9.81f, 0}`. `FrameStats` reports fixed ticks performed, dropped time, interpolation fraction, and total tick count. `snapshot()` returns a value snapshot for rendering; `snapshotJson()` provides its JSON representation. `diagnostics()` returns a read-only vector of runtime messages. These are native C++ APIs for the Player and tests, **not MCP endpoints**. + +## Inspect a running Player locally + +The Player has local development controls in addition to gameplay input: **P** toggles +pause, **N** steps one fixed tick while paused, and **Escape** closes the Player. +**F3** toggles physics-box outlines; `--debug-physics` enables them from startup. +Static bodies are green, kinematic bodies orange, and dynamic bodies cyan. + +These outlines use current physics poses and collider half-extents multiplied by the +absolute transform scale. They can differ slightly from an interpolated visible mesh. +The initial adapters support root-only boxes: four outline edges in 2D, twelve in 3D. +This view does not show contact normals, broad-phase cells, or arbitrary mesh colliders. + +To record measurements, run the Player with `--profile measurements.json --frames 240`. +A profile requires an explicit count from 1 to 100,000. As with all bounded Player +runs, simulation uses the configured fixed delta each frame; `--headless` renders +through offscreen Vulkan. The report contains measured durations rather than treating +that simulation delta as frame time. See [Player profiling](../editor/profiling.md) +for startup, CPU/GPU timing, percentiles, and their limits. These flags do not add MCP +to the Player. diff --git a/docs/manual/scripting/examples.md b/docs/manual/scripting/examples.md index 69e275f..0d42a5b 100644 --- a/docs/manual/scripting/examples.md +++ b/docs/manual/scripting/examples.md @@ -48,3 +48,11 @@ ctest --test-dir build/linux-debug -R '^tutorial_' --output-on-failure On Windows use the chosen Windows build directory. The four tests compile separate gameplay libraries and execute their actual callbacks. They require neither a graphics window nor the Editor. Running a tutorial through `faset_player` additionally checks rendering and platform integration and requires the documented Vulkan setup. Schema declarations are tested for stable map-key/FieldId matching and defaults. They remain ordinary C++ source; the engine does not scan arbitrary C++ classes to create this API automatically. + +## Play complete small projects + +`examples/projects/collect-2d` and `examples/projects/collect-3d` contain complete projects with a manifest, scene, and a separate `Scripts` module. Open either folder with the Editor's `--project` option, then use Play. Each project's README also provides a direct Player build command. + +Move the blue block with A/D in 2D or WASD in 3D, jump with Space, collect three gold cubes, and reach the green exit after its red gate opens. E resets the round. One pickup is on a raised platform. A visible gold marker and the Player log confirm completion; these initial examples use geometric progress displays instead of a text HUD. + +The `playable_2d` and `playable_3d` CTests drive the actual modules through input, including the jump, objective, reset, and fresh session. The 3D module also explicitly registers a separately packaged `example.beacon` component from its local `Scripts/Extensions/Beacon.hpp`. Both projects use built-in geometry and need no imported assets to start. diff --git a/examples/projects/collect-2d/.gitignore b/examples/projects/collect-2d/.gitignore new file mode 100644 index 0000000..066358d --- /dev/null +++ b/examples/projects/collect-2d/.gitignore @@ -0,0 +1,2 @@ +.faset/ +Exports/ diff --git a/examples/projects/collect-2d/README.md b/examples/projects/collect-2d/README.md new file mode 100644 index 0000000..943d7f9 --- /dev/null +++ b/examples/projects/collect-2d/README.md @@ -0,0 +1,55 @@ +# Collect & Escape 2D + +A small playable project using the real Faset C++ gameplay module and Box2D adapter. All geometry is built in, so this project does not need an asset import or Blender installation. + +## Play + +Open it from the repository root with a built Editor: + +```bash +build/linux-debug/faset_editor --project examples/projects/collect-2d +``` + +Use **Play** to build this project's `Scripts/Gameplay.cpp` and start a separate Player. On Windows use your Windows build directory and `faset_editor.exe`. First complete the engine build setup in the User Manual. + +For a direct Player build on Linux, from the repository root: + +```bash +cmake -S . -B build/collect-2d -G Ninja \ + -DCMAKE_BUILD_TYPE=Debug \ + -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ \ + -DFASET_GAMEPLAY_SOURCE_DIR="$PWD/examples/projects/collect-2d/Scripts" +cmake --build build/collect-2d --target faset_player faset_schema_exporter +build/collect-2d/faset_player --scene examples/projects/collect-2d/Scenes/main.scene.json +``` + +On Windows use a Developer shell with `clang-cl` and the Windows SDK, select `clang-cl` for both compiler options, and give `FASET_GAMEPLAY_SOURCE_DIR` an absolute path. + +## Objective and controls + +- A/D or left/right arrows move on X. +- **Space** jumps while a native contact supports the player block. +- Collect all three **gold cubes**. Jump onto the raised platform for the middle pickup. +- Each pickup moves to the progress display. After all three, the **red physical gate** moves out of the level. +- Reach the **green exit** to reveal the large gold victory marker. Movement stops after completion. +- **E** restores the player, pickups, gate, and victory state. Falling below the level also resets the round. +- **P** pauses, **N** advances one fixed tick, and **Escape** closes the Player. + +The Player window title and console identify the controls and objective; the game uses geometric progress markers rather than a text HUD. The player is a dynamic box with zero friction, not an articulated character controller. It can rotate after impacts. + +## Inspect and change the game + +`project.faset.json` chooses `Scenes/main.scene.json`. The scene stores object/component IDs, transforms, physics settings, and entity references in the collector component. `Scripts/Gameplay.cpp` owns the round's transient C++ state and registers its editable schema. `speed` and `jump_speed` use metres per second. + +Change JSON and restart Play to see new level data. Change C++ or its schema, then stop, build, and restart; C++ hot reload is not implemented. Runtime pickup progress does not rewrite the authoring scene or create Undo entries. + +## Verify + +The normal test build creates `faset_example_2d_tests`. It compiles this exact module, follows a route using movement/jump input, collects the elevated pickup, opens the gate, reaches the exit, resets the round, and restarts the scene. It does not teleport to pass the objective. + +```bash +cmake --build build/linux-debug --target faset_example_2d_tests +ctest --test-dir build/linux-debug -R '^playable_2d$' --output-on-failure +``` + +The runtime test is independent of graphics. A Player run additionally requires the supported Vulkan platform setup. The Editor's Export action creates a separate Release build and a cooked standalone generation; run that generation's Player from its export directory. diff --git a/examples/projects/collect-2d/Scenes/main.scene.json b/examples/projects/collect-2d/Scenes/main.scene.json new file mode 100644 index 0000000..a51add9 --- /dev/null +++ b/examples/projects/collect-2d/Scenes/main.scene.json @@ -0,0 +1,659 @@ +{ + "format": "faset.scene", + "version": 1, + "id": "example-collect-2d-scene", + "name": "Collect & Escape 2D \u2014 WASD / Space / E reset", + "dimension": 2, + "simulation": { + "fixed_delta": 0.016666666666666666, + "max_catch_up_ticks": 4, + "physics_substeps": 4, + "gravity": [ + 0, + -9.81, + 0 + ] + }, + "entities": [ + { + "id": "floor", + "name": "Ground", + "parent": null, + "components": [ + { + "id": "floor-faset.transform", + "type": "faset.transform", + "version": 1, + "fields": { + "position": [ + 0, + -0.75, + 0 + ], + "rotation": [ + 0, + 0, + 0 + ], + "scale": [ + 1, + 1, + 1 + ] + } + }, + { + "id": "floor-faset.sprite", + "type": "faset.sprite", + "version": 1, + "fields": { + "color": [ + 0.2, + 0.3, + 0.39, + 1 + ], + "size": [ + 21, + 0.5 + ], + "texture": "", + "layer": 0 + } + }, + { + "id": "floor-faset.rigid_body_2d", + "type": "faset.rigid_body_2d", + "version": 1, + "fields": { + "body_type": "static", + "half_extents": [ + 10.5, + 0.25 + ], + "density": 1, + "friction": 0.4, + "restitution": 0, + "gravity_scale": 1 + } + } + ] + }, + { + "id": "platform", + "name": "Jump platform", + "parent": null, + "components": [ + { + "id": "platform-faset.transform", + "type": "faset.transform", + "version": 1, + "fields": { + "position": [ + 0, + 0, + 0 + ], + "rotation": [ + 0, + 0, + 0 + ], + "scale": [ + 1, + 1, + 1 + ] + } + }, + { + "id": "platform-faset.sprite", + "type": "faset.sprite", + "version": 1, + "fields": { + "color": [ + 0.35, + 0.44, + 0.55, + 1 + ], + "size": [ + 2, + 1 + ], + "texture": "", + "layer": 0 + } + }, + { + "id": "platform-faset.rigid_body_2d", + "type": "faset.rigid_body_2d", + "version": 1, + "fields": { + "body_type": "static", + "half_extents": [ + 1.0, + 0.5 + ], + "density": 1, + "friction": 0.4, + "restitution": 0, + "gravity_scale": 1 + } + } + ] + }, + { + "id": "left-wall", + "name": "Left boundary", + "parent": null, + "components": [ + { + "id": "left-wall-faset.transform", + "type": "faset.transform", + "version": 1, + "fields": { + "position": [ + -10.25, + 1, + 0 + ], + "rotation": [ + 0, + 0, + 0 + ], + "scale": [ + 1, + 1, + 1 + ] + } + }, + { + "id": "left-wall-faset.sprite", + "type": "faset.sprite", + "version": 1, + "fields": { + "color": [ + 0.2, + 0.3, + 0.39, + 1 + ], + "size": [ + 0.5, + 3.5 + ], + "texture": "", + "layer": 0 + } + }, + { + "id": "left-wall-faset.rigid_body_2d", + "type": "faset.rigid_body_2d", + "version": 1, + "fields": { + "body_type": "static", + "half_extents": [ + 0.25, + 1.75 + ], + "density": 1, + "friction": 0.4, + "restitution": 0, + "gravity_scale": 1 + } + } + ] + }, + { + "id": "right-wall", + "name": "Right boundary", + "parent": null, + "components": [ + { + "id": "right-wall-faset.transform", + "type": "faset.transform", + "version": 1, + "fields": { + "position": [ + 10.25, + 1, + 0 + ], + "rotation": [ + 0, + 0, + 0 + ], + "scale": [ + 1, + 1, + 1 + ] + } + }, + { + "id": "right-wall-faset.sprite", + "type": "faset.sprite", + "version": 1, + "fields": { + "color": [ + 0.2, + 0.3, + 0.39, + 1 + ], + "size": [ + 0.5, + 3.5 + ], + "texture": "", + "layer": 0 + } + }, + { + "id": "right-wall-faset.rigid_body_2d", + "type": "faset.rigid_body_2d", + "version": 1, + "fields": { + "body_type": "static", + "half_extents": [ + 0.25, + 1.75 + ], + "density": 1, + "friction": 0.4, + "restitution": 0, + "gravity_scale": 1 + } + } + ] + }, + { + "id": "token_1", + "name": "Gold pickup 1", + "parent": null, + "components": [ + { + "id": "token_1-faset.transform", + "type": "faset.transform", + "version": 1, + "fields": { + "position": [ + -5, + 0.35, + 0 + ], + "rotation": [ + 0, + 0, + 0 + ], + "scale": [ + 1, + 1, + 1 + ] + } + }, + { + "id": "token_1-faset.sprite", + "type": "faset.sprite", + "version": 1, + "fields": { + "color": [ + 1, + 0.68, + 0.14, + 1 + ], + "size": [ + 0.5, + 0.5 + ], + "texture": "", + "layer": 0 + } + } + ] + }, + { + "id": "token_2", + "name": "Gold pickup 2", + "parent": null, + "components": [ + { + "id": "token_2-faset.transform", + "type": "faset.transform", + "version": 1, + "fields": { + "position": [ + 0, + 1.35, + 0 + ], + "rotation": [ + 0, + 0, + 0 + ], + "scale": [ + 1, + 1, + 1 + ] + } + }, + { + "id": "token_2-faset.sprite", + "type": "faset.sprite", + "version": 1, + "fields": { + "color": [ + 1, + 0.68, + 0.14, + 1 + ], + "size": [ + 0.5, + 0.5 + ], + "texture": "", + "layer": 0 + } + } + ] + }, + { + "id": "token_3", + "name": "Gold pickup 3", + "parent": null, + "components": [ + { + "id": "token_3-faset.transform", + "type": "faset.transform", + "version": 1, + "fields": { + "position": [ + 5, + 0.35, + 0 + ], + "rotation": [ + 0, + 0, + 0 + ], + "scale": [ + 1, + 1, + 1 + ] + } + }, + { + "id": "token_3-faset.sprite", + "type": "faset.sprite", + "version": 1, + "fields": { + "color": [ + 1, + 0.68, + 0.14, + 1 + ], + "size": [ + 0.5, + 0.5 + ], + "texture": "", + "layer": 0 + } + } + ] + }, + { + "id": "gate", + "name": "Collect all three to open", + "parent": null, + "components": [ + { + "id": "gate-faset.transform", + "type": "faset.transform", + "version": 1, + "fields": { + "position": [ + 7, + 1, + 0 + ], + "rotation": [ + 0, + 0, + 0 + ], + "scale": [ + 1, + 1, + 1 + ] + } + }, + { + "id": "gate-faset.sprite", + "type": "faset.sprite", + "version": 1, + "fields": { + "color": [ + 0.9, + 0.23, + 0.16, + 1 + ], + "size": [ + 0.45, + 3 + ], + "texture": "", + "layer": 0 + } + }, + { + "id": "gate-faset.rigid_body_2d", + "type": "faset.rigid_body_2d", + "version": 1, + "fields": { + "body_type": "static", + "half_extents": [ + 0.225, + 1.5 + ], + "density": 1, + "friction": 0.4, + "restitution": 0, + "gravity_scale": 1 + } + } + ] + }, + { + "id": "goal", + "name": "Green exit", + "parent": null, + "components": [ + { + "id": "goal-faset.transform", + "type": "faset.transform", + "version": 1, + "fields": { + "position": [ + 8.5, + 0.15, + 0 + ], + "rotation": [ + 0, + 0, + 0 + ], + "scale": [ + 1, + 1, + 1 + ] + } + }, + { + "id": "goal-faset.sprite", + "type": "faset.sprite", + "version": 1, + "fields": { + "color": [ + 0.15, + 0.9, + 0.47, + 1 + ], + "size": [ + 0.85, + 0.3 + ], + "texture": "", + "layer": 0 + } + } + ] + }, + { + "id": "win_marker", + "name": "Victory marker", + "parent": null, + "components": [ + { + "id": "win_marker-faset.transform", + "type": "faset.transform", + "version": 1, + "fields": { + "position": [ + 8.5, + 3.0, + 0 + ], + "rotation": [ + 0, + 0, + 0 + ], + "scale": [ + 1, + 1, + 1 + ] + } + }, + { + "id": "win_marker-faset.sprite", + "type": "faset.sprite", + "version": 1, + "fields": { + "color": [ + 1, + 0.68, + 0.14, + 1 + ], + "size": [ + 1, + 1 + ], + "texture": "", + "layer": 0 + } + } + ] + }, + { + "id": "player", + "name": "Blue player block", + "parent": null, + "components": [ + { + "id": "player-faset.transform", + "type": "faset.transform", + "version": 1, + "fields": { + "position": [ + -8, + 0, + 0 + ], + "rotation": [ + 0, + 0, + 0 + ], + "scale": [ + 1, + 1, + 1 + ] + } + }, + { + "id": "player-faset.sprite", + "type": "faset.sprite", + "version": 1, + "fields": { + "color": [ + 0.12, + 0.65, + 1, + 1 + ], + "size": [ + 1, + 1 + ], + "texture": "", + "layer": 0 + } + }, + { + "id": "player-faset.rigid_body_2d", + "type": "faset.rigid_body_2d", + "version": 1, + "fields": { + "body_type": "dynamic", + "half_extents": [ + 0.5, + 0.5 + ], + "density": 1, + "friction": 0, + "restitution": 0, + "gravity_scale": 1 + } + }, + { + "id": "player-example.collector_2d", + "type": "example.collector_2d", + "version": 1, + "fields": { + "speed": 4, + "jump_speed": 6, + "gate": "gate", + "goal": "goal", + "win_marker": "win_marker", + "token_1": "token_1", + "token_2": "token_2", + "token_3": "token_3" + } + } + ] + } + ], + "instances": [] +} diff --git a/examples/projects/collect-2d/Scripts/Gameplay.cpp b/examples/projects/collect-2d/Scripts/Gameplay.cpp new file mode 100644 index 0000000..6b5129c --- /dev/null +++ b/examples/projects/collect-2d/Scripts/Gameplay.cpp @@ -0,0 +1,157 @@ +#include "Gameplay.hpp" + +#include +#include +#include +#include +#include +#include +#include + +namespace faset::gameplay { +namespace { +constexpr bool is3D = false; +constexpr const char* collectorType = "example.collector_2d"; +using Key = std::tuple; +Key key(runtime::EntityHandle handle) { + return {handle.session, handle.slot, handle.generation}; +} +struct Round { + runtime::Transform spawn, gatePose, victoryPose; + runtime::EntityHandle gate, goal, victory; + std::array tokens; + std::array tokenPoses; + std::array collected{}; + bool won{}; + bool gateOpened{}; +}; +float distance(runtime::Vec3 a, runtime::Vec3 b) { + const float x = a[0] - b[0], y = a[1] - b[1], z = is3D ? a[2] - b[2] : 0; + return std::sqrt(x * x + y * y + z * z); +} +void reset(runtime::Runtime& game, runtime::EntityHandle self, Round& round) { + game.teleport(self, round.spawn); + game.setVelocity(self, {0, 0, 0}); + game.teleport(round.gate, round.gatePose); + for (std::size_t i = 0; i < 3; ++i) + game.setTransform(round.tokens[i], round.tokenPoses[i]); + auto hidden = round.victoryPose; + hidden.position[1] = -50; + game.setTransform(round.victory, hidden); + round.collected = {}; + round.won = false; + round.gateOpened = false; + std::cout << "New round: collect the three gold cubes, then reach the green exit. E resets.\n"; +} +} // namespace + +void registerGameplay(runtime::Runtime& world) { + + auto rounds = std::make_shared>(); + runtime::Behavior collector; + collector.onStart = [rounds](runtime::Runtime& game, runtime::EntityHandle self, double) { + const auto fields = game.fields(self, collectorType); + Round round; + round.spawn = game.transform(self); + auto resolve = [&](const char* field) { + const auto handle = game.find(fields.at(field).get()); + if (!game.valid(handle)) + throw std::runtime_error(std::string("Missing level reference: ") + field); + return handle; + }; + round.gate = resolve("gate"); + round.goal = resolve("goal"); + round.victory = resolve("win_marker"); + round.gatePose = game.transform(round.gate); + round.victoryPose = game.transform(round.victory); + for (std::size_t i = 0; i < 3; ++i) { + const auto field = "token_" + std::to_string(i + 1); + round.tokens[i] = resolve(field.c_str()); + round.tokenPoses[i] = game.transform(round.tokens[i]); + } + auto& stored = rounds->insert_or_assign(key(self), std::move(round)).first->second; + reset(game, self, stored); + }; + collector.onDestroy = [rounds](runtime::Runtime&, runtime::EntityHandle self, double) { + rounds->erase(key(self)); + }; + collector.fixedUpdate = [rounds](runtime::Runtime& game, runtime::EntityHandle self, double) { + auto& round = rounds->at(key(self)); + const auto input = game.input(); + const auto position = game.transform(self).position; + if (input.interactPressed || position[1] < -8) { + reset(game, self, round); + return; + } + const auto fields = game.fields(self, collectorType); + auto velocity = game.velocity(self); + float x = input.horizontal, z = is3D ? -input.vertical : 0; + const float length = std::sqrt(x * x + z * z); + if (length > 1) { + x /= length; + z /= length; + } + const auto speed = fields.value("speed", 4.0f); + velocity[0] = round.won ? 0 : x * speed; + if (is3D) + velocity[2] = round.won ? 0 : z * speed; + if (!round.won && input.jumpPressed && game.grounded(self)) + velocity[1] = fields.value("jump_speed", 6.0f); + game.setVelocity(self, velocity); + if (round.won) + return; + for (std::size_t i = 0; i < 3; ++i) + if (!round.collected[i] && distance(position, round.tokenPoses[i].position) < 0.95f) { + round.collected[i] = true; + auto display = round.tokenPoses[i]; + display.position = is3D ? runtime::Vec3{6, 2 + float(i) * 0.8f, -4} + : runtime::Vec3{-1.2f + float(i) * 1.2f, 4.5f, 0}; + game.setTransform(round.tokens[i], display); + std::cout << "Collected " + << std::count(round.collected.begin(), round.collected.end(), true) + << "/3\n"; + } + if (std::all_of(round.collected.begin(), round.collected.end(), + [](bool value) { return value; })) { + if (!round.gateOpened) { + auto open = round.gatePose; + open.position[1] = -30; + game.teleport(round.gate, open); + round.gateOpened = true; + } + if (distance(position, game.transform(round.goal).position) < 1.0f) { + round.won = true; + game.setTransform(round.victory, round.victoryPose); + std::cout << "Level complete! The gold victory marker is visible. Press E to play " + "again.\n"; + } + } + }; + world.registerBehavior(collectorType, std::move(collector)); +} + +nlohmann::json schema() { + nlohmann::json fields = {{"speed", + {{"id", "speed"}, + {"name", "Move speed"}, + {"type", "number"}, + {"default", 4.0}, + {"min", 0.0}, + {"units", "m/s"}}}, + {"jump_speed", + {{"id", "jump_speed"}, + {"name", "Jump speed"}, + {"type", "number"}, + {"default", 6.0}, + {"min", 0.0}, + {"units", "m/s"}}}}; + for (const auto* id : {"gate", "goal", "win_marker", "token_1", "token_2", "token_3"}) + fields[id] = {{"id", id}, {"name", id}, {"type", "entity_ref"}, {"default", id}}; + auto types = nlohmann::json::array({{{"id", collectorType}, + {"name", "Collect three and escape"}, + {"version", 1}, + {"fields", std::move(fields)}}}); + + return types; +} +} // namespace faset::gameplay diff --git a/examples/projects/collect-2d/Scripts/Gameplay.hpp b/examples/projects/collect-2d/Scripts/Gameplay.hpp new file mode 100644 index 0000000..d9caafe --- /dev/null +++ b/examples/projects/collect-2d/Scripts/Gameplay.hpp @@ -0,0 +1,7 @@ +#pragma once +#include + +namespace faset::gameplay { +void registerGameplay(runtime::Runtime& world); +nlohmann::json schema(); +} // namespace faset::gameplay diff --git a/examples/projects/collect-2d/project.faset.json b/examples/projects/collect-2d/project.faset.json new file mode 100644 index 0000000..7eed9d6 --- /dev/null +++ b/examples/projects/collect-2d/project.faset.json @@ -0,0 +1,8 @@ +{ + "format": "faset.project", + "version": 1, + "id": "example-collect-2d-project", + "name": "Collect & Escape 2D", + "dimension": 2, + "start_scene": "Scenes/main.scene.json" +} diff --git a/examples/projects/collect-3d/.gitignore b/examples/projects/collect-3d/.gitignore new file mode 100644 index 0000000..066358d --- /dev/null +++ b/examples/projects/collect-3d/.gitignore @@ -0,0 +1,2 @@ +.faset/ +Exports/ diff --git a/examples/projects/collect-3d/Assets/exit-arch/create.py b/examples/projects/collect-3d/Assets/exit-arch/create.py new file mode 100644 index 0000000..dbd8274 --- /dev/null +++ b/examples/projects/collect-3d/Assets/exit-arch/create.py @@ -0,0 +1,50 @@ +"""Recreate the demo's original exit arch with an unmodified Blender 4.5+. +Run: blender --background --factory-startup --python create.py -- ENGINE_ROOT +""" +import pathlib +import sys +import uuid +import bpy + +root = pathlib.Path(sys.argv[sys.argv.index('--') + 1]).resolve() +output = pathlib.Path(__file__).resolve().parent +sys.path.insert(0, str(root / 'tools')) +import blender_addon +from blender_addon.bundle import publish_bundle + +blender_addon.register() +bpy.ops.object.select_all(action='SELECT') +bpy.ops.object.delete(use_global=False) +material = bpy.data.materials.new('Weathered stone') +material.diffuse_color = (0.22, 0.29, 0.34, 1) +material.use_nodes = True +shader = material.node_tree.nodes.get('Principled BSDF') +shader.inputs['Base Color'].default_value = material.diffuse_color +shader.inputs['Metallic'].default_value = 0.08 +shader.inputs['Roughness'].default_value = 0.8 +material['faset_id'] = '08046276-106a-4aeb-80f1-d4f02a2ffdc1' +namespace = uuid.UUID('73023ab9-8fe6-4d56-b136-c25c51510b72') +for name, position, size in [ + ('Left post', (0, -1.3, 1.45), (0.45, 0.35, 2.9)), + ('Right post', (0, 1.3, 1.45), (0.45, 0.35, 2.9)), + ('Lintel', (0, 0, 3.0), (0.52, 3.0, 0.35)), +]: + bpy.ops.mesh.primitive_cube_add(location=position) + obj = bpy.context.object + obj.name = name + obj.dimensions = size + bpy.ops.object.transform_apply(location=False, rotation=False, scale=True) + obj.data.materials.append(material) + obj['faset_id'] = str(uuid.uuid5(namespace, name)) + obj.data['faset_id'] = str(uuid.uuid5(namespace, name + ' mesh')) + bevel = obj.modifiers.new('Small stone bevel', 'BEVEL') + bevel.width = 0.06 + bevel.segments = 1 +bpy.context.scene['faset_asset_id'] = '5832763b-3ed0-44d6-9088-0b524f196a91' +bpy.ops.wm.save_as_mainfile(filepath=str(output / 'source.blend')) +raw = output / 'arch.glb' +bpy.ops.export_scene.gltf(filepath=str(raw), export_format='GLB', export_extras=True, + export_yup=True, export_animations=False, export_materials='EXPORT', use_active_scene=True) +publish_bundle(raw, output, bpy.context.scene['faset_asset_id'], bpy.app.version_string, 'source.blend') +raw.unlink() +print('Faset exit arch recreated') diff --git a/examples/projects/collect-3d/Assets/exit-arch/manifest.json b/examples/projects/collect-3d/Assets/exit-arch/manifest.json new file mode 100644 index 0000000..e303569 --- /dev/null +++ b/examples/projects/collect-3d/Assets/exit-arch/manifest.json @@ -0,0 +1,69 @@ +{ + "asset_id": "5832763b-3ed0-44d6-9088-0b524f196a91", + "exporter": { + "addon_version": "0.1.0", + "blender_version": "4.5.3 LTS" + }, + "files": [ + { + "path": "payload/ee6c748a212905fc9c465cbe95c033e94b80be643624f4f240ad5353761205b3.glb", + "sha256": "ee6c748a212905fc9c465cbe95c033e94b80be643624f4f240ad5353761205b3", + "size": 5556 + } + ], + "generation": "7000c0ddc0ef38a87a6bfa1833b757df648aecfbdc3c304036028ba7f530a121", + "outputs": [ + { + "kind": "node", + "locator": "/nodes/0", + "name": "Left post", + "source_id": "4fbe8b04-1247-5088-a438-934d4e26c532" + }, + { + "kind": "node", + "locator": "/nodes/1", + "name": "Right post", + "source_id": "3f82eddf-7169-590e-9116-77f91d809972" + }, + { + "kind": "node", + "locator": "/nodes/2", + "name": "Lintel", + "source_id": "49b46a7c-9ae3-54c1-8e4f-ad4efe627330" + }, + { + "kind": "mesh", + "locator": "/meshes/0", + "name": "Cube.001", + "source_id": "b359b954-1c3e-5ae9-a127-ce251b05193e" + }, + { + "kind": "mesh", + "locator": "/meshes/1", + "name": "Cube.002", + "source_id": "0a83245a-e502-5fd8-978d-dd65931238a3" + }, + { + "kind": "mesh", + "locator": "/meshes/2", + "name": "Cube.003", + "source_id": "6f6587d4-1d8e-56b5-9ec6-afbd6ac51e55" + }, + { + "kind": "material", + "locator": "/materials/0", + "name": "Weathered stone", + "source_id": "08046276-106a-4aeb-80f1-d4f02a2ffdc1" + } + ], + "recipe": { + "export_animations": false, + "export_extras": true, + "export_yup": true, + "profile": "faset-gltf-static-v1" + }, + "schema_version": 1, + "source": { + "path_hint": "source.blend" + } +} \ No newline at end of file diff --git a/examples/projects/collect-3d/Assets/exit-arch/manifest.json.faset-import.json b/examples/projects/collect-3d/Assets/exit-arch/manifest.json.faset-import.json new file mode 100644 index 0000000..523fb1c --- /dev/null +++ b/examples/projects/collect-3d/Assets/exit-arch/manifest.json.faset-import.json @@ -0,0 +1,5 @@ +{ + "asset_id": "5832763b-3ed0-44d6-9088-0b524f196a91", + "schema_version": 1, + "settings": {} +} diff --git a/examples/projects/collect-3d/Assets/exit-arch/payload/ee6c748a212905fc9c465cbe95c033e94b80be643624f4f240ad5353761205b3.glb b/examples/projects/collect-3d/Assets/exit-arch/payload/ee6c748a212905fc9c465cbe95c033e94b80be643624f4f240ad5353761205b3.glb new file mode 100644 index 0000000000000000000000000000000000000000..93fe7ee2864a2ab3911a4111f165ed4364c0837d GIT binary patch literal 5556 zcmeHKTW{P%6du}gDYQU=!W&xodA-cV<4YdWOK3$P%~na&B2`u6%Q&&Lm&ogsR#BvV z;YYyl-~nC|ej4Y@dN#gnHVHf-)slT?&V1)P$1~r|diMr9kFOCz{mU>gkE%bA6z`p zm*j%E+;^b3?l~oi)aNQmQrly0V9S6iJ7CPUJueMd;?p4TDkZV`9BgHK`&X&SzDiL} z5IJt>#dZ)XVM`}wwy&Jj4q=v3<#JC5z0R|F;`5?5vQeQ13noc)sa~I9Sg1S;2Qx(^ z{lp@r$TyAn(uWP$ZuFCF?6&C9QyJ(W4=pWw`=95f-{sq<6uxTK=2;ttSsQtQC;m&ZD2#`u(l%Ur}p?!xqU#Nfu*>fKtm< zg_z^>l}GUFmxX z%y8nv47-uE0~Nb=m_~^k#*!&1+Xaiu7wnxC?AHqpmKF@^2xFN1$vB^Fr06hBRsJkf zzvyL)$HM~<{;1e_djRL9WE^A{j}J$1xO14LVfY45%^v5D7N{kynJr2 z5e#2f^pd`&(kH{f}LeEx19&Gukz@05G(-97@{%&z7ho1!MmOY0Tepx-In z*vE0LS8(q_8~xZvKaSrAOTdy!AIH(Zi(_z`zUBjL)8hEl@K!A1FurLKkN&#-^V?rf z@T>*=y$jmFJI9>YMxN6O&!RTQ8vmm9YNeiKZBqkc&TF5PxeO2HZMIDfhR0yEALgvQ zrZ|6a&9!hk>sOz1OaoiPlyOUW3}zWmW6b2P97q2yj=^pEnh&r|i{n$nTd|14_@+fX`s?-|%iNkY literal 0 HcmV?d00001 diff --git a/examples/projects/collect-3d/Assets/exit-arch/source.blend b/examples/projects/collect-3d/Assets/exit-arch/source.blend new file mode 100644 index 0000000000000000000000000000000000000000..0213b3b18b7abe15fbabb428e07c4651e20e08fc GIT binary patch literal 465057 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

|v9xh? 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

1S&Zmr(tI#NTnx?*g(j)fZ0u5e2@`8t(!fUJ* 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 + +namespace beacon { +inline nlohmann::json schema() { + return {{"id", "example.beacon"}, + {"name", "Beacon"}, + {"version", 1}, + {"fields", + {{"speed", + {{"id", "speed"}, + {"name", "Rotation speed"}, + {"type", "number"}, + {"default", 1.0}, + {"units", "rad/s"}}}}}}; +} +inline void register_behavior(faset::runtime::Runtime& runtime) { + faset::runtime::Behavior behavior; + behavior.fixedUpdate = [](faset::runtime::Runtime& world, faset::runtime::EntityHandle self, + double dt) { + auto pose = world.transform(self); + pose.rotation[1] += + world.fields(self, "example.beacon").value("speed", 1.0f) * static_cast(dt); + world.setTransform(self, pose); + }; + runtime.registerBehavior("example.beacon", std::move(behavior)); +} +} // namespace beacon diff --git a/examples/projects/collect-3d/Scripts/Gameplay.cpp b/examples/projects/collect-3d/Scripts/Gameplay.cpp new file mode 100644 index 0000000..08a598b --- /dev/null +++ b/examples/projects/collect-3d/Scripts/Gameplay.cpp @@ -0,0 +1,157 @@ +#include "Gameplay.hpp" +#include "Extensions/Beacon.hpp" +#include +#include +#include +#include +#include +#include +#include + +namespace faset::gameplay { +namespace { +constexpr bool is3D = true; +constexpr const char* collectorType = "example.collector_3d"; +using Key = std::tuple; +Key key(runtime::EntityHandle handle) { + return {handle.session, handle.slot, handle.generation}; +} +struct Round { + runtime::Transform spawn, gatePose, victoryPose; + runtime::EntityHandle gate, goal, victory; + std::array tokens; + std::array tokenPoses; + std::array collected{}; + bool won{}; + bool gateOpened{}; +}; +float distance(runtime::Vec3 a, runtime::Vec3 b) { + const float x = a[0] - b[0], y = a[1] - b[1], z = is3D ? a[2] - b[2] : 0; + return std::sqrt(x * x + y * y + z * z); +} +void reset(runtime::Runtime& game, runtime::EntityHandle self, Round& round) { + game.teleport(self, round.spawn); + game.setVelocity(self, {0, 0, 0}); + game.teleport(round.gate, round.gatePose); + for (std::size_t i = 0; i < 3; ++i) + game.setTransform(round.tokens[i], round.tokenPoses[i]); + auto hidden = round.victoryPose; + hidden.position[1] = -50; + game.setTransform(round.victory, hidden); + round.collected = {}; + round.won = false; + round.gateOpened = false; + std::cout << "New round: collect the three gold cubes, then reach the green exit. E resets.\n"; +} +} // namespace + +void registerGameplay(runtime::Runtime& world) { + beacon::register_behavior(world); + auto rounds = std::make_shared>(); + runtime::Behavior collector; + collector.onStart = [rounds](runtime::Runtime& game, runtime::EntityHandle self, double) { + const auto fields = game.fields(self, collectorType); + Round round; + round.spawn = game.transform(self); + auto resolve = [&](const char* field) { + const auto handle = game.find(fields.at(field).get()); + if (!game.valid(handle)) + throw std::runtime_error(std::string("Missing level reference: ") + field); + return handle; + }; + round.gate = resolve("gate"); + round.goal = resolve("goal"); + round.victory = resolve("win_marker"); + round.gatePose = game.transform(round.gate); + round.victoryPose = game.transform(round.victory); + for (std::size_t i = 0; i < 3; ++i) { + const auto field = "token_" + std::to_string(i + 1); + round.tokens[i] = resolve(field.c_str()); + round.tokenPoses[i] = game.transform(round.tokens[i]); + } + auto& stored = rounds->insert_or_assign(key(self), std::move(round)).first->second; + reset(game, self, stored); + }; + collector.onDestroy = [rounds](runtime::Runtime&, runtime::EntityHandle self, double) { + rounds->erase(key(self)); + }; + collector.fixedUpdate = [rounds](runtime::Runtime& game, runtime::EntityHandle self, double) { + auto& round = rounds->at(key(self)); + const auto input = game.input(); + const auto position = game.transform(self).position; + if (input.interactPressed || position[1] < -8) { + reset(game, self, round); + return; + } + const auto fields = game.fields(self, collectorType); + auto velocity = game.velocity(self); + float x = input.horizontal, z = is3D ? -input.vertical : 0; + const float length = std::sqrt(x * x + z * z); + if (length > 1) { + x /= length; + z /= length; + } + const auto speed = fields.value("speed", 4.0f); + velocity[0] = round.won ? 0 : x * speed; + if (is3D) + velocity[2] = round.won ? 0 : z * speed; + if (!round.won && input.jumpPressed && game.grounded(self)) + velocity[1] = fields.value("jump_speed", 6.0f); + game.setVelocity(self, velocity); + if (round.won) + return; + for (std::size_t i = 0; i < 3; ++i) + if (!round.collected[i] && distance(position, round.tokenPoses[i].position) < 0.95f) { + round.collected[i] = true; + auto display = round.tokenPoses[i]; + display.position = is3D ? runtime::Vec3{6, 2 + float(i) * 0.8f, -4} + : runtime::Vec3{-1.2f + float(i) * 1.2f, 4.5f, 0}; + game.setTransform(round.tokens[i], display); + std::cout << "Collected " + << std::count(round.collected.begin(), round.collected.end(), true) + << "/3\n"; + } + if (std::all_of(round.collected.begin(), round.collected.end(), + [](bool value) { return value; })) { + if (!round.gateOpened) { + auto open = round.gatePose; + open.position[1] = -30; + game.teleport(round.gate, open); + round.gateOpened = true; + } + if (distance(position, game.transform(round.goal).position) < 1.0f) { + round.won = true; + game.setTransform(round.victory, round.victoryPose); + std::cout << "Level complete! The gold victory marker is visible. Press E to play " + "again.\n"; + } + } + }; + world.registerBehavior(collectorType, std::move(collector)); +} + +nlohmann::json schema() { + nlohmann::json fields = {{"speed", + {{"id", "speed"}, + {"name", "Move speed"}, + {"type", "number"}, + {"default", 4.0}, + {"min", 0.0}, + {"units", "m/s"}}}, + {"jump_speed", + {{"id", "jump_speed"}, + {"name", "Jump speed"}, + {"type", "number"}, + {"default", 6.0}, + {"min", 0.0}, + {"units", "m/s"}}}}; + for (const auto* id : {"gate", "goal", "win_marker", "token_1", "token_2", "token_3"}) + fields[id] = {{"id", id}, {"name", id}, {"type", "entity_ref"}, {"default", id}}; + auto types = nlohmann::json::array({{{"id", collectorType}, + {"name", "Collect three and escape"}, + {"version", 1}, + {"fields", std::move(fields)}}}); + types.push_back(beacon::schema()); + return types; +} +} // namespace faset::gameplay diff --git a/examples/projects/collect-3d/Scripts/Gameplay.hpp b/examples/projects/collect-3d/Scripts/Gameplay.hpp new file mode 100644 index 0000000..d9caafe --- /dev/null +++ b/examples/projects/collect-3d/Scripts/Gameplay.hpp @@ -0,0 +1,7 @@ +#pragma once +#include + +namespace faset::gameplay { +void registerGameplay(runtime::Runtime& world); +nlohmann::json schema(); +} // namespace faset::gameplay diff --git a/examples/projects/collect-3d/project.faset.json b/examples/projects/collect-3d/project.faset.json new file mode 100644 index 0000000..11b8b4e --- /dev/null +++ b/examples/projects/collect-3d/project.faset.json @@ -0,0 +1,8 @@ +{ + "format": "faset.project", + "version": 1, + "id": "example-collect-3d-project", + "name": "Collect & Escape 3D", + "dimension": 3, + "start_scene": "Scenes/main.scene.json" +} diff --git a/include/faset/authoring/service.hpp b/include/faset/authoring/service.hpp index 461414f..cd0f27f 100644 --- a/include/faset/authoring/service.hpp +++ b/include/faset/authoring/service.hpp @@ -9,6 +9,7 @@ namespace faset::authoring { Json make_scene(std::string name, int dimension = 3); +Json default_simulation_settings(); Json make_entity(const SchemaRegistry& schemas, std::string name, const std::string& parent = ""); void validate_scene(const Json& scene, const SchemaRegistry& schemas); diff --git a/include/faset/editor/editor_ui.hpp b/include/faset/editor/editor_ui.hpp index e0e984e..a15db0e 100644 --- a/include/faset/editor/editor_ui.hpp +++ b/include/faset/editor/editor_ui.hpp @@ -20,6 +20,8 @@ class EditorUI { void select_document(const std::string& document); const std::string& selected_entity() const; void select_entity(const std::string& entity); + bool project_switch_requested() const; + void set_project_switch_enabled(bool enabled); private: struct Impl; diff --git a/include/faset/editor/mcp.hpp b/include/faset/editor/mcp.hpp index 931e834..bab2e32 100644 --- a/include/faset/editor/mcp.hpp +++ b/include/faset/editor/mcp.hpp @@ -23,6 +23,8 @@ class StdioTransport { bool closed() const noexcept { return closed_; } + // Write failure closes this transport; a disconnected client never exits + // the Editor process. A GUI can continue after closed() becomes true. void send(const Json& message); private: diff --git a/include/faset/editor/project_launcher.hpp b/include/faset/editor/project_launcher.hpp new file mode 100644 index 0000000..aca2fb7 --- /dev/null +++ b/include/faset/editor/project_launcher.hpp @@ -0,0 +1,34 @@ +#pragma once +#include +#include + +namespace faset::editor { +struct ProjectSelection { + std::filesystem::path path; + std::string name; + int dimension = 3; + bool create = false; +}; +// Records only existing, valid projects. Call after successful Session setup. +void remember_project(const std::filesystem::path& project); +class ProjectLauncher { + public: + ProjectLauncher(render::Renderer&, const std::filesystem::path& engine_root, + const std::filesystem::path& initial_project = {}, + const std::filesystem::path& recent_store = {}); + ~ProjectLauncher(); + void frame(const std::vector&); + const render::Snapshot& snapshot() const; + ui::Context& widgets(); + const std::optional& selection() const; + bool cancelled() const; + + private: + struct Impl; + std::unique_ptr impl_; +}; +std::optional +run_project_launcher(const std::filesystem::path& engine_root, + const std::filesystem::path& initial_project = {}, + std::uint64_t max_frames = 0, const std::filesystem::path& capture = {}); +} // namespace faset::editor diff --git a/include/faset/editor/session.hpp b/include/faset/editor/session.hpp index 93dc2ad..16ca103 100644 --- a/include/faset/editor/session.hpp +++ b/include/faset/editor/session.hpp @@ -46,6 +46,8 @@ class Session { void register_commands(); Json assets_list() const; Json jobs() const; + std::string source_signature() const; + Json schema_status() const; Json job(const std::string& id) const; void load_schema(const std::filesystem::path& path); void launch_player(Json scene, const std::filesystem::path& executable); @@ -65,5 +67,9 @@ class Session { std::string pending_play_job_; Json pending_play_scene_; std::unique_ptr plugins_; + std::map submitted_sources_; + std::string schema_source_signature_; + bool schema_loaded_ = false; + std::string schema_error_; }; } // namespace faset::editor diff --git a/include/faset/player/SceneView.hpp b/include/faset/player/SceneView.hpp index 6fac052..00e45a0 100644 --- a/include/faset/player/SceneView.hpp +++ b/include/faset/player/SceneView.hpp @@ -24,6 +24,11 @@ class SceneView { SceneView& operator=(const SceneView&) = delete; render::Snapshot build(const nlohmann::json& flatSceneOrRuntimeSnapshot, float aspect, CameraSettings camera = {}); + // Append box outlines from explicitly supplied physics poses/settings. The + // Player supplies current simulation poses, independent of visual interpolation. + // Supports the initial root-only Box2D/Box3D adapters; does not change the camera. + void appendPhysicsDebug(render::Snapshot&, const nlohmann::json& physicsScene, + float thickness = 0.025f) const; void clearCache(); const std::vector& diagnostics() const; diff --git a/include/faset/render/renderer.hpp b/include/faset/render/renderer.hpp index d3dec8b..3ec9008 100644 --- a/include/faset/render/renderer.hpp +++ b/include/faset/render/renderer.hpp @@ -79,11 +79,16 @@ struct Snapshot { std::vector ui_quads; std::vector ui_text; }; +// CPU-only validation used before publishing a game or creating Vulkan pipelines. +void validate_shader_bundle(const std::filesystem::path& directory); + struct RendererConfig { std::uint32_t width{1280}, height{720}; std::string title{"Faset Engine"}; bool headless{false}; bool validation{true}; + // Optional isolated shader bundle, useful for editor preview and shader reload tests. + std::filesystem::path shader_directory; }; struct Event { enum class Type { @@ -110,8 +115,12 @@ struct Event { }; struct FrameStats { std::uint64_t frame{}; + bool validation_enabled{}; + // Live VkDeviceMemory allocation sizes, including alignment; excludes driver internals. + std::uint64_t gpu_allocated_bytes{}; + std::uint32_t texture_count{}; std::uint32_t vertices{}, draw_calls{}, culled_meshes{}, validation_errors{}; - double cpu_ms{}, gpu_ms{}; + double cpu_ms{}, gpu_ms{}, readback_cpu_ms{}; std::string device; }; class Renderer { diff --git a/include/faset/ui/ui.hpp b/include/faset/ui/ui.hpp index 4768f88..6f2f878 100644 --- a/include/faset/ui/ui.hpp +++ b/include/faset/ui/ui.hpp @@ -118,6 +118,7 @@ struct Widget { bool visible = true, enabled = true, selected = false, checked = false; double value = 0, step = .01; int precision = 3, indent = 0; + float font_size = 0; // Zero inherits the theme typography. float scroll_y = 0, content_height = 0; std::string error, tooltip; Json drag_payload; @@ -159,6 +160,7 @@ class Context { const Theme& theme() const; // Reloads declarative widget properties; matching IDs retain callbacks and // edit state. + void validate_layout(const Json&) const; void apply_layout(const Json&); void layout(float drawable_width, float drawable_height, float dpi_scale = 1); bool handle(const render::Event&); diff --git a/mkdocs.yml b/mkdocs.yml index 2b04696..72f359a 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -39,7 +39,12 @@ nav: - Physics and grounded movement: scripting/physics.md - Runtime API: scripting/api.md - Compiled examples: scripting/examples.md - - Editor automation: + - Editor and assets: + - Editor workspace: editor/workspace.md + - Scene templates: editor/templates.md + - Assets and Blender: editor/assets.md + - Build, Play, and export: editor/export.md + - Profiling and measurements: editor/profiling.md - MCP and command line: editor/mcp.md - Native extensions: editor/extensions.md - Contributing to this manual: contributing.md diff --git a/src/assets/asset_data.cpp b/src/assets/asset_data.cpp index e57f48a..b01b579 100644 --- a/src/assets/asset_data.cpp +++ b/src/assets/asset_data.cpp @@ -168,6 +168,10 @@ CookedAsset AssetStore::load_asset(const std::string& id) const { asset.meshes.push_back(std::move(mesh)); } for (const auto& j : m.at("materials")) { + // Early development manifests embedded v1 materials without a tag. + // Preserve readability, but never interpret an explicitly unknown version. + if (j.value("format", "faset.material") != "faset.material" || j.value("version", 1) != 1) + throw std::runtime_error("Unsupported cooked material format or version"); Material material; material.id = j.at("id"); material.name = j.at("name"); diff --git a/src/assets/asset_pipeline.cpp b/src/assets/asset_pipeline.cpp index aec3e62..1cbfaf3 100644 --- a/src/assets/asset_pipeline.cpp +++ b/src/assets/asset_pipeline.cpp @@ -316,7 +316,9 @@ void validate_generation(const fs::path& directory, const Json& manifest) { } } Json material_json(const Material& m) { - return {{"id", m.id}, + return {{"format", "faset.material"}, + {"version", 1}, + {"id", m.id}, {"name", m.name}, {"base_color", m.base_color}, {"metallic", m.metallic}, @@ -407,6 +409,10 @@ ImportResult AssetPipeline::import_asset(const ImportRequest& request, ImportJob const auto source_hash = hash_bytes(source_bytes); const auto sidecar = fs::path(logical_source.string() + ".faset-import.json"); Json metadata = fs::exists(sidecar) ? read_json(sidecar) : Json::object(); + if (!metadata.is_object() || + (!metadata.empty() && metadata.value("schema_version", 0) != 1)) + throw std::runtime_error( + "Unsupported import settings version; source metadata is unchanged"); const auto settings = request.settings.is_null() ? metadata.value("settings", Json::object()) : request.settings; @@ -446,6 +452,17 @@ ImportResult AssetPipeline::import_asset(const ImportRequest& request, ImportJob throw std::runtime_error("Encoded image exceeds decoder limit"); const auto* encoded = reinterpret_cast(source_bytes.data()); const auto length = static_cast(source_bytes.size()); + const bool png_signature = + source_bytes.size() >= 8 && source_bytes[0] == std::byte{137} && + source_bytes[1] == std::byte{80} && source_bytes[2] == std::byte{78} && + source_bytes[3] == std::byte{71} && source_bytes[4] == std::byte{13} && + source_bytes[5] == std::byte{10} && source_bytes[6] == std::byte{26} && + source_bytes[7] == std::byte{10}; + const bool jpeg_signature = + source_bytes.size() >= 3 && source_bytes[0] == std::byte{255} && + source_bytes[1] == std::byte{216} && source_bytes[2] == std::byte{255}; + if ((extension == ".png" && !png_signature) || (extension != ".png" && !jpeg_signature)) + throw std::runtime_error("Image content does not match PNG/JPEG extension"); int width = 0, height = 0, channels = 0; if (!stbi_info_from_memory(encoded, length, &width, &height, &channels)) throw std::runtime_error("Invalid PNG/JPEG image header"); @@ -677,10 +694,13 @@ ImportResult AssetPipeline::import_asset(const ImportRequest& request, ImportJob asset.textures.push_back(std::move(out)); } } - Json key{{"source", source_hash}, - {"settings", settings}, - {"importer", recipe_version}, - {"dependencies", Json::object()}}; + Json key{ + {"source", source_hash}, + {"settings", settings}, + {"importer", recipe_version}, + {"target_profile", standalone_image ? "desktop-image-v1" : "desktop-static-pbr-v1"}, + {"toolchain", {{"cgltf", FASET_CGLTF_COMMIT}, {"stb", FASET_STB_COMMIT}}}, + {"dependencies", Json::object()}}; if (source != logical_source) key["bundle_sha256"] = logical_hash; for (const auto& [name, item] : dependencies) diff --git a/src/authoring/service.cpp b/src/authoring/service.cpp index 4688b71..ff297a6 100644 --- a/src/authoring/service.cpp +++ b/src/authoring/service.cpp @@ -48,6 +48,12 @@ bool valid_id(const Json& value) { std::string::npos; } } // namespace +Json default_simulation_settings() { + return {{"fixed_delta", 1.0 / 60.0}, + {"max_catch_up_ticks", 4}, + {"physics_substeps", 4}, + {"gravity", {0, -9.81, 0}}}; +} Json make_scene(std::string name, int dimension) { require(dimension == 2 || dimension == 3, "scene.dimension", "Scene dimension must be 2 or 3"); return {{"format", "faset.scene"}, {"version", 1}, {"id", new_id()}, @@ -77,6 +83,26 @@ void validate_scene(const Json& scene, const SchemaRegistry& schemas) { require(scene.contains("entities") && scene["entities"].is_array(), "scene.entities", "Scene entities must be an array"); require(finite_json(scene), "validation.finite", "Scene contains a non-finite number"); + if (scene.contains("simulation")) { + const auto& settings = scene.at("simulation"); + require(settings.is_object(), "simulation.object", "Simulation settings must be an object"); + if (settings.contains("fixed_delta")) + require(settings["fixed_delta"].is_number() && + settings["fixed_delta"].get() > 0 && + settings["fixed_delta"].get() <= 1, + "simulation.fixed_delta", + "Fixed delta must be greater than zero and at most one second"); + for (const auto& [name, maximum] : + std::map{{"max_catch_up_ticks", 1024}, {"physics_substeps", 128}}) + if (settings.contains(name)) { + const auto& value = settings[name]; + require(value.is_number_integer() && value.get() >= 1 && + value.get() <= maximum, + "simulation.integer", "Invalid simulation setting: " + name); + } + if (settings.contains("gravity")) + validate_field(settings["gravity"], {{"type", "vec3"}}); + } std::set ids; std::map parents; auto insert_id = [&](const Json& value) { @@ -120,6 +146,70 @@ void validate_scene(const Json& scene, const SchemaRegistry& schemas) { instance["source"].is_string(), "template.instance", "Invalid template instance"); insert_id(instance["id"]); + require(!instance["source"].get_ref().empty(), "template.source", + "Template source cannot be empty"); + auto address = [&](const Json& value, bool field) { + require(value.is_object() && value.contains("object") && valid_id(value["object"]), + "template.address", "Template address needs a stable object ID"); + if (value.contains("path")) { + require(value["path"].is_array(), "template.address", + "Instance path must be an array"); + for (const auto& part : value["path"]) + require(valid_id(part), "template.address", + "Instance path needs stable IDs"); + } + if (field) + require(value.contains("component") && valid_id(value["component"]) && + value.contains("field") && value["field"].is_string() && + !value["field"].get_ref().empty(), + "template.address", + "Field address needs stable component and field IDs"); + }; + for (const auto* collection : {"overrides", "suppressed", "reparents"}) + if (instance.contains(collection)) + require(instance[collection].is_array(), "template.records", + "Template records must be an array"); + for (const auto& record : instance.value("overrides", Json::array())) { + require(record.is_object() && record.contains("address") && + record.contains("value"), + "template.override", "Override needs an address and value"); + address(record["address"], true); + } + for (const auto& record : instance.value("suppressed", Json::array())) + address(record, false); + for (const auto& record : instance.value("reparents", Json::array())) { + require(record.is_object() && record.contains("object") && + record.contains("parent"), + "template.reparent", "Reparent needs object and parent addresses"); + address(record["object"], false); + if (!record["parent"].is_null()) + address(record["parent"], false); + if (record.contains("keep_world")) + require(record["keep_world"].is_boolean(), "template.reparent", + "keep_world must be a boolean"); + } + + if (instance.contains("additions")) { + require(instance["additions"].is_array(), "template.additions", + "Local additions must be an array"); + auto additions = make_scene("Local additions"); + additions["entities"] = instance["additions"]; + // Local cycles are rejected here; parents in the source are checked during + // resolution. + std::set local_ids; + for (const auto& item : additions["entities"]) + if (item.contains("id") && item["id"].is_string()) + local_ids.insert(item["id"].get()); + for (auto& item : additions["entities"]) { + if (item.contains("parent") && !item["parent"].is_null()) + require(valid_id(item["parent"]), "template.addition_parent", + "Local parent must be a stable object ID or null"); + if (!item.contains("parent") || item["parent"].is_null() || + !local_ids.contains(item["parent"].get())) + item["parent"] = nullptr; + } + validate_scene(additions, schemas); + } } } } @@ -239,6 +329,16 @@ void AuthoringService::apply(Json& scene, const Json& command) { scene["entities"].push_back(std::move(value)); } else if (op == "entity.rename") { entity(scene, command.at("entity").get())["name"] = command.at("name"); + } else if (op == "scene.simulation") { + const auto& value = command.at("value"); + require(value.is_object(), "simulation.object", "Simulation settings must be an object"); + const auto defaults = default_simulation_settings(); + for (const auto& [key, setting] : value.items()) + require(defaults.contains(key), "simulation.setting", + "Unknown simulation setting: " + key); + if (!scene.contains("simulation")) + scene["simulation"] = defaults; + scene["simulation"].update(value); } else if (op == "entity.delete") { const auto id = command.at("entity").get(); entity(scene, id); @@ -317,6 +417,8 @@ void AuthoringService::apply(Json& scene, const Json& command) { if (!schemas_.contains(type)) continue; const auto metadata = schemas_.schema(type); + if (component.value("version", 1) != metadata.value("version", 1)) + continue; for (auto& [field, value] : component["fields"].items()) if (metadata["fields"].contains(field) && metadata["fields"][field].value("type", std::string()) == @@ -338,12 +440,49 @@ void AuthoringService::apply(Json& scene, const Json& command) { scene["instances"] = Json::array(); scene["instances"].push_back(std::move(value)); } else if (op == "template.override" || op == "template.revert" || op == "template.suppress" || - op == "template.add" || op == "template.reparent") { + op == "template.add" || op == "template.reparent" || op == "template.remove" || + op == "template.restore" || op == "template.source_set" || + op == "template.addition_set") { auto& instances = scene["instances"]; const auto id = command.at("instance").get(); auto found = std::find_if(instances.begin(), instances.end(), [&](const Json& value) { return value.at("id") == id; }); require(found != instances.end(), "template.missing", "Instance not found"); + if (op == "template.addition_set") { + const auto& replacement = command.at("value"); + const auto addition_id = replacement.at("id"); + auto& additions = (*found)["additions"]; + require(additions.is_array(), "template.addition_missing", + "Instance has no local additions"); + auto addition = + std::find_if(additions.begin(), additions.end(), + [&](const Json& value) { return value.at("id") == addition_id; }); + require(addition != additions.end(), "template.addition_missing", + "Local addition not found"); + *addition = replacement; + return; + } + if (op == "template.remove") { + instances.erase(found); + return; + } + if (op == "template.source_set") { + const auto source = command.at("source").get(); + project_path(root_, source); + (*found)["source"] = source; + return; + } + if (op == "template.restore") { + auto& records = (*found)["suppressed"]; + require(records.is_array(), "template.suppression_missing", + "Instance has no suppressed objects"); + const auto address = command.at("address"); + const auto before = records.size(); + records.erase(std::remove(records.begin(), records.end(), address), records.end()); + require(records.size() != before, "template.suppression_missing", + "Suppressed object address not found"); + return; + } const std::string key = op == "template.suppress" ? "suppressed" : op == "template.add" ? "additions" : op == "template.reparent" ? "reparents" diff --git a/src/authoring/templates.cpp b/src/authoring/templates.cpp index 4843955..a2d9250 100644 --- a/src/authoring/templates.cpp +++ b/src/authoring/templates.cpp @@ -32,14 +32,30 @@ struct Resolver { return &item; return nullptr; } + void remap_references(Json& entity, const std::map& mapping) { + for (auto& component : entity["components"]) { + const auto type = component.at("type").get(); + if (!schemas.contains(type)) + continue; + const auto metadata = schemas.schema(type); + if (component.value("version", 1) != metadata.value("version", 1)) + continue; + for (auto& [field, value] : component["fields"].items()) + if (metadata["fields"].contains(field) && + metadata["fields"][field].value("type", std::string()) == "entity_ref" && + value.is_string() && mapping.contains(value.get())) + value = mapping.at(value.get()); + } + } Json expand(const Json& scene, const Json& path) { require(path.size() <= 32, "template.depth", "Maximum template nesting depth exceeded"); validate_scene(scene, schemas); Json output = Json::array(); - std::map ids; + std::map ids, entity_ids; for (const auto& item : scene["entities"]) { const auto id = item.at("id").get(); ids[id] = path.empty() ? id : scoped_id(root, path, id); + entity_ids[id] = ids[id]; for (const auto& component : item["components"]) { const auto cid = component.at("id").get(); ids[cid] = path.empty() ? cid : scoped_id(root, path, cid); @@ -56,16 +72,8 @@ struct Resolver { const auto source_id = component.at("id").get(); component["id"] = ids.at(source_id); component["source_id"] = source_id; - const auto type = component.at("type").get(); - if (!schemas.contains(type)) - continue; - const auto metadata = schemas.schema(type); - for (auto& [field, value] : component["fields"].items()) - if (metadata["fields"].contains(field) && - metadata["fields"][field].value("type", std::string()) == "entity_ref" && - value.is_string() && ids.contains(value.get())) - value = ids.at(value.get()); } + remap_references(item, entity_ids); output.push_back(std::move(item)); } for (const auto& instance : scene.value("instances", Json::array())) { @@ -89,19 +97,37 @@ struct Resolver { {{"source", source_name}, {"message", error.what()}}); continue; } + std::map local_ids; + for (const auto& entity : expanded) + if (entity.at("origin").at("path") == nested_path) + local_ids[entity.at("origin").at("object").get()] = + entity.at("id").get(); + for (const auto& addition : instance.value("additions", Json::array())) { + const auto id = addition.at("id").get(); + require(!local_ids.contains(id), "template.addition_id_collision", + "Local addition reuses a source object ID"); + local_ids[id] = scoped_id(root, nested_path, id); + } for (const auto& addition : instance.value("additions", Json::array())) { Json item = addition; const auto id = item.at("id").get(); item["id"] = scoped_id(root, nested_path, id); item["origin"] = {{"path", nested_path}, {"object", id}, {"local", true}}; - if (item.contains("parent") && !item["parent"].is_null()) - item["parent"] = - scoped_id(root, nested_path, item["parent"].get()); + if (item.contains("parent") && !item["parent"].is_null()) { + const auto parent = item["parent"].get(); + if (local_ids.contains(parent)) + item["parent"] = local_ids.at(parent); + else { + conflict(nested_path, "addition.parent_missing", addition); + item["parent"] = nullptr; + } + } for (auto& component : item["components"]) { const auto cid = component.at("id").get(); component["source_id"] = cid; component["id"] = scoped_id(root, nested_path, cid); } + remap_references(item, local_ids); expanded.push_back(std::move(item)); } for (const auto& change : instance.value("overrides", Json::array())) { @@ -126,9 +152,25 @@ struct Resolver { conflict(nested_path, "override.field_unavailable", change); continue; } + if (found->value("version", 1) != schemas.schema(type).value("version", 1)) { + conflict(nested_path, "override.schema_version", change); + continue; + } try { validate_field(change.at("value"), schemas.schema(type)["fields"][field]); - (*found)["fields"][field] = change.at("value"); + auto value = change.at("value"); + if (schemas.schema(type)["fields"][field].value("type", std::string()) == + "entity_ref" && + value.is_string()) { + for (const auto& target_entity : expanded) + if (target_entity.at("origin").at("path") == + item->at("origin").at("path") && + target_entity.at("origin").at("object") == value) { + value = target_entity.at("id"); + break; + } + } + (*found)["fields"][field] = std::move(value); } catch (const std::exception& error) { conflict(nested_path, "override.invalid", {{"change", change}, {"message", error.what()}}); diff --git a/src/editor/build_service.cpp b/src/editor/build_service.cpp index 8ec51d5..426e25c 100644 --- a/src/editor/build_service.cpp +++ b/src/editor/build_service.cpp @@ -306,7 +306,9 @@ struct BuildService::Impl { atomic_write_json(schema_file, schema); copy_required_file(player, staging / ("faset_player" + executable_suffix())); copy_required_file(exporter, staging / ("faset_schema_exporter" + executable_suffix())); - for (const auto* file : {"vertexMain.spv", "fragmentMain.spv", "shadowMain.spv"}) + for (const auto* file : {"vertexMain.spv", "fragmentMain.spv", "shadowMain.spv", + "vertexMain.reflection.json", "fragmentMain.reflection.json", + "shadowMain.reflection.json"}) copy_required_file(native_directory / "shaders" / file, staging / "shaders" / file); copy_runtime_libraries(job, player, staging, native_directory, configuration); Json manifest{{"format", "faset.build"}, @@ -520,7 +522,9 @@ struct BuildService::Impl { auto build_directory = fs::path(built.at("directory").get()); copy_required_file(build_directory / ("faset_player" + executable_suffix()), staging / ("faset_player" + executable_suffix())); - for (const auto* shader : {"vertexMain.spv", "fragmentMain.spv", "shadowMain.spv"}) + for (const auto* shader : {"vertexMain.spv", "fragmentMain.spv", "shadowMain.spv", + "vertexMain.reflection.json", "fragmentMain.reflection.json", + "shadowMain.reflection.json"}) copy_required_file(build_directory / "shaders" / shader, staging / "shaders" / shader); for (const auto& entry : fs::directory_iterator(build_directory)) { diff --git a/src/editor/commands.cpp b/src/editor/commands.cpp index 8f6be50..9086bc8 100644 --- a/src/editor/commands.cpp +++ b/src/editor/commands.cpp @@ -67,8 +67,13 @@ Json Commands::call(const std::string& name, const Json& arguments) { } Json Commands::resolved_scene(const std::string& id) const { const auto result = authoring::resolve_templates( - authoring_.query(id).at("scene"), authoring_.schemas(), - [&](const std::string& path) { return read_json(project_path(authoring_.root(), path)); }); + authoring_.query(id).at("scene"), authoring_.schemas(), [&](const std::string& path) { + const auto relative = std::filesystem::path(path).lexically_normal(); + for (const auto& document : authoring_.documents()) + if (document.at("path") == relative.generic_string()) + return authoring_.query(document.at("id")).at("scene"); + return read_json(project_path(authoring_.root(), relative)); + }); return {{"scene", result.scene}, {"conflicts", result.conflicts}}; } Commands::Commands(authoring::AuthoringService& authoring) : authoring_(authoring) { @@ -109,7 +114,10 @@ Commands::Commands(authoring::AuthoringService& authoring) : authoring_(authorin add("faset_scene_edit", "Apply one atomic authoring batch with optimistic revision checking and one Undo step. " "Operations: entity.create/rename/delete/duplicate/reparent; component.add/remove/set; " - "scene.rename; template.instance/override/revert/suppress/add/reparent. Use persistent IDs " + "scene.rename/simulation; " + "template.instance/override/revert/suppress/restore/add/addition_set/reparent/remove/" + "source_set. Use " + "persistent IDs " "from document_query and schema. An idempotency_key retries the same payload in this " "session.", object_schema({{"document", text}, @@ -138,6 +146,31 @@ Commands::Commands(authoring::AuthoringService& authoring) : authoring_(authorin "is not a live game query.", object_schema({{"document", text}}, {"document"}), [&](const Json& args) { return resolved_scene(args.at("document")); }, true); + add( + "faset_simulation_get", + "Read scene simulation settings with defaults: fixed_delta seconds, max_catch_up_ticks, " + "physics_substeps and gravity.", + object_schema({{"document", text}}, {"document"}), + [&](const Json& args) { + const auto document = authoring_.query(args.at("document")); + auto settings = authoring::default_simulation_settings(); + settings.update(document.at("scene").value("simulation", Json::object())); + return Json{{"document", document.at("id")}, + {"revision", document.at("revision")}, + {"settings", settings}}; + }, + true); + add("faset_simulation_set", + "Update scene simulation settings as one Undo transaction. Values apply when the Player " + "next starts.", + object_schema( + {{"document", text}, {"revision", integer}, {"settings", {{"type", "object"}}}}, + {"document", "revision", "settings"}), + [&](const Json& args) { + return authoring_.transact( + args.at("document"), args.at("revision"), + Json::array({{{"op", "scene.simulation"}, {"value", args.at("settings")}}})); + }); add("faset_recovery_restore", "Restore a recovery journal, including an unsaved new scene. If the document is already " "open, pass its current revision. External file changes are never overwritten.", diff --git a/src/editor/editor_ui.cpp b/src/editor/editor_ui.cpp index d137272..2eb0488 100644 --- a/src/editor/editor_ui.cpp +++ b/src/editor/editor_ui.cpp @@ -47,6 +47,15 @@ Vec3 vector(const Mat4& m, Vec3 p) { return {m[0] * p[0] + m[4] * p[1] + m[8] * p[2], m[1] * p[0] + m[5] * p[1] + m[9] * p[2], m[2] * p[0] + m[6] * p[1] + m[10] * p[2]}; } +Vec3 euler_xyz(const Mat4& rotation) { + // The authoring transform is Rz * Ry * Rx. Reconstruct that convention + // after composing an intrinsic rotation instead of adding Euler channels. + const auto cy = std::hypot(rotation[0], rotation[1]); + if (cy > .00001f) + return {std::atan2(rotation[6], rotation[10]), std::atan2(-rotation[2], cy), + std::atan2(rotation[1], rotation[0])}; + return {std::atan2(-rotation[9], rotation[5]), std::atan2(-rotation[2], cy), 0}; +} bool inverse(const Mat4& m, Mat4& out) { double a[4][8]{}; for (int r = 0; r < 4; ++r) { @@ -109,7 +118,7 @@ Mat4 world(const Json& scene, const Json& e, int depth = 0) { if (depth > 256) return render::identity; Mat4 local = render::identity; - if (auto* t = component(e, "faset.transform")) { + if (auto* t = component(e, "faset.transform"); t && t->value("version", 1) == 1) { const auto& f = t->at("fields"); local = render::transform(vec(f.value("position", Json{})), vec(f.value("rotation", Json{})), @@ -154,7 +163,9 @@ struct EditorUI::Impl { ui::DockLayout dock; player::SceneView view; render::Snapshot rendered; - std::string picks_key; + std::string picks_key, resolved_stamp, last_document; + std::set seen_view_diagnostics; + Json instance_selection = Json::array(), template_conflicts = Json::array(); std::string document, selected, source_file, asset_filter, active_bottom = "assets", menu, command_name = "faset_documents", status = "Ready", gizmo_mode = "Move"; @@ -164,6 +175,17 @@ struct EditorUI::Impl { std::map edit_revisions; std::map preview_fields; std::filesystem::path layout_path; + std::filesystem::path theme_source_path, layout_source_path; + std::string attempted_theme, attempted_layout, applied_theme, applied_layout, + presentation_error; + std::chrono::steady_clock::time_point last_presentation_poll{}; + bool simulation_open = false; + bool project_settings_open = false; + Json project_settings_state; + int project_settings_dimension = 3; + std::string project_settings_error; + bool project_switch_enabled = true, project_switch_requested = false, + project_switch_warning = false; bool palette = false, component_menu = false, assets_dirty = true, paused = false; float yaw = .65f, pitch = .42f, distance = 12, ortho = 12, mouse_x = 0, mouse_y = 0, last_x = 0, last_y = 0; @@ -188,12 +210,18 @@ struct EditorUI::Impl { Impl(Session& s, render::Renderer& r, const std::filesystem::path& font, const std::filesystem::path& styles) : session(s), renderer(r), ui(font), view(s.config().project_root / ".faset/cache") { - ui.set_theme(ui::Theme::load(styles)); - ui.apply_layout(read_json(styles.parent_path() / "editor-layout.json")); + theme_source_path = styles; + layout_source_path = styles.parent_path() / "editor-layout.json"; + attempted_theme = applied_theme = read_text(theme_source_path); + attempted_layout = applied_layout = read_text(layout_source_path); + ui.set_theme(ui::Theme::from_json(Json::parse(applied_theme))); + ui.apply_layout(Json::parse(applied_layout)); + last_presentation_poll = std::chrono::steady_clock::now(); layout_path = session.config().project_root / ".faset/editor-layout.json"; dock.move("assets", "bottom", 0); dock.move("console", "bottom", 1); dock.move("jobs", "bottom", 2); + dock.move("conflicts", "bottom", 3); if (std::filesystem::exists(layout_path)) try { dock.load(layout_path); @@ -237,6 +265,45 @@ struct EditorUI::Impl { report(e.what()); } } + void poll_presentation() { + const auto now = std::chrono::steady_clock::now(); + if (now - last_presentation_poll < std::chrono::milliseconds(500)) + return; + last_presentation_poll = now; + try { + const auto theme_text = read_text(theme_source_path); + const auto layout_text = read_text(layout_source_path); + if (theme_text == attempted_theme && layout_text == attempted_layout) { + if (!presentation_error.empty() && theme_text == applied_theme && + layout_text == applied_layout) { + presentation_error.clear(); + report("UI theme/layout sources restored"); + } + return; + } + attempted_theme = theme_text; + attempted_layout = layout_text; + const auto theme = ui::Theme::from_json(Json::parse(theme_text)); + const auto layout = Json::parse(layout_text); + // Both candidates are fully validated before changing either. Retained + // IDs, callbacks and dirty field edits stay in the existing Context. + ui.validate_layout(layout); + if (layout_text != applied_layout) + ui.apply_layout(layout); + if (theme_text != applied_theme) + ui.set_theme(theme); + applied_theme = theme_text; + applied_layout = layout_text; + presentation_error.clear(); + report("UI theme/layout reloaded"); + } catch (const std::exception& error) { + const auto message = std::string("UI reload kept last working styles: ") + error.what(); + if (message != presentation_error) { + presentation_error = message; + report(message); + } + } + } void report(const std::string& message) { status = message; session.log(message); @@ -321,7 +388,7 @@ struct EditorUI::Impl { {"version", 1}, {"fields", session.authoring().schemas().default_fields("faset.sprite")}}); if (transaction(Json::array({{{"op", "entity.create"}, {"entity", object}}}))) - selected = id; + select(id); } void build_static() { auto& menurow = ui.find("menubar")->add(Kind::Row, "menuitems"); @@ -362,6 +429,9 @@ struct EditorUI::Impl { button( toolbar, "export", "Export", [this] { call("faset_export", {{"document", document}, {"output", "Exports"}}); }, 64); + button( + toolbar, "simulation-settings", "Simulation", + [this] { simulation_open = !simulation_open; }, 96); auto& space = toolbar.add(Kind::Label, "toolbar-space", ""); space.layout.flex = 1; button(toolbar, "command-palette", "Commands", [this] { palette = !palette; }, 104); @@ -380,10 +450,7 @@ struct EditorUI::Impl { tree.layout.gap = 0; tree.on_drop = [this](Widget&, const Json& payload) { if (payload.value("kind", std::string()) == "entity") - transaction(Json::array({{{"op", "entity.reparent"}, - {"entity", payload.at("id")}, - {"parent", nullptr}, - {"keep_world", true}}})); + reparent(payload.at("id"), ""); }; auto& inspector = *ui.find("inspector_panel"); inspector.add(Kind::Tab, "inspector-tab", "Inspector").selected = true; @@ -401,6 +468,14 @@ struct EditorUI::Impl { vptools.layout.width = 300; for (const std::string mode : {"Move", "Rotate", "Scale"}) button(vptools, "gizmo-" + mode, mode, [this, mode] { gizmo_mode = mode; }, 64); + button( + vptools, "back-document", "Back", + [this] { + if (!last_document.empty()) + choose_document(last_document); + }, + 54); + vptools.layout.width = 360; button(vptools, "frame-selection", "Frame", [this] { frame_selection(); }, 64); vp.on_drop = [this](Widget&, const Json& data) { if (data.value("kind", std::string()) == "asset") @@ -411,7 +486,7 @@ struct EditorUI::Impl { auto& tabs = bottom.add(Kind::Row, "bottom-tabs"); tabs.layout.height = 29; tabs.layout.gap = 0; - for (const std::string id : {"assets", "console", "jobs"}) { + for (const std::string id : {"assets", "console", "jobs", "conflicts"}) { auto& tab = tabs.add(Kind::Tab, "tab-" + id, id == "assets" ? "Assets" : id == "console" ? "Console" @@ -460,6 +535,10 @@ struct EditorUI::Impl { jobs.layout.flex = 1; jobs.layout.scroll = true; jobs.layout.gap = 1; + auto& conflicts = bottom.add(Kind::Column, "conflict-items"); + conflicts.layout.flex = 1; + conflicts.layout.scroll = true; + conflicts.layout.gap = 3; auto& statusrow = ui.find("statusbar")->add(Kind::Row, "status-row"); auto& statuslabel = statusrow.add(Kind::Label, "status", "Ready"); statuslabel.layout.flex = 1; @@ -479,6 +558,25 @@ struct EditorUI::Impl { label(pop, "menu-title", "File"); button(pop, "new-3d", "New 3D scene", [this] { new_scene(3); }); button(pop, "new-2d", "New 2D scene", [this] { new_scene(2); }); + button(pop, "project-settings", "Project settings", [this] { open_project_settings(); }); + button(pop, "open-project", "Open / create another project", [this] { + if (!project_switch_enabled) + return; + ui.clear_focus(); + if (ui.editing()) + return; + bool warn = session.playing(); + for (const auto& doc : session.authoring().documents()) + warn = warn || doc.value("dirty", false); + const auto jobs = call("faset_jobs"); + if (!jobs.is_null()) + for (const auto& job : jobs.at("jobs")) + warn = warn || job.value("state", std::string()) == "running" || + job.value("state", std::string()) == "queued"; + project_switch_warning = warn; + project_switch_requested = !warn; + menu.clear(); + }); pop.add(Kind::TextField, "open-path", "Scenes/Main.scene.json"); button(pop, "open-path-button", "Open project-relative scene", [this] { auto result = call("faset_document_open", {{"path", ui.find("open-path")->text}}); @@ -506,6 +604,13 @@ struct EditorUI::Impl { delete_selected(); menu.clear(); }); + pop.add(Kind::TextField, "template-path", "Assets/Templates/Template.scene.json"); + button(pop, "save-template", "Save selection as template", + [this] { save_selection_template(ui.find("template-path")->text); }); + button(pop, "instance-template", "Instance scene at this path", [this] { + instance_scene(ui.find("template-path")->text); + menu.clear(); + }); label(pop, "help-one", "Orbit: right drag. Pan: middle drag. Wheel: zoom."); label(pop, "help-two", "W / E / R: gizmos. F: frame. Ctrl+P: commands."); label(pop, "help-three", "Ctrl+S save. Ctrl+Z / Shift+Z undo / redo."); @@ -538,6 +643,39 @@ struct EditorUI::Impl { } }); button(command, "palette-close", "Close", [this] { palette = false; }); + auto& settings = ui.root().add(Kind::Panel, "simulation-panel"); + settings.layout.absolute = true; + settings.layout.width = 470; + settings.layout.height = 350; + settings.layout.padding = 12; + settings.layout.gap = 5; + settings.visible = false; + label(settings, "simulation-title", "Scene simulation"); + label(settings, "simulation-scope", "Used by the next Player snapshot"); + for (const std::string field : {"tick-rate", "max_catch_up_ticks", "physics_substeps"}) { + auto& row = settings.add(Kind::Row, "simulation-row-" + field); + row.layout.height = 32; + label(row, "simulation-label-" + field, + field == "tick-rate" ? "Fixed tick rate (Hz)" + : field == "max_catch_up_ticks" ? "Maximum catch-up ticks" + : "Physics substeps", + 235); + auto& input = row.add(Kind::NumberField, "simulation-" + field); + input.layout.flex = 1; + input.precision = field == "tick-rate" ? 3 : 0; + input.step = 1; + } + label(settings, "simulation-gravity-label", "Gravity (units / second squared)"); + auto& gravity = settings.add(Kind::Row, "simulation-gravity"); + gravity.layout.height = 32; + for (int axis = 0; axis < 3; ++axis) { + auto& input = + gravity.add(Kind::NumberField, "simulation-gravity-" + std::to_string(axis)); + input.layout.flex = 1; + input.precision = 3; + input.step = .05; + } + button(settings, "simulation-close", "Close", [this] { simulation_open = false; }); auto& recover = ui.root().add(Kind::Panel, "recovery-panel"); recover.layout.absolute = true; recover.layout.width = 470; @@ -545,6 +683,79 @@ struct EditorUI::Impl { recover.layout.padding = 12; recover.layout.gap = 5; recover.visible = false; + auto& switching = ui.root().add(Kind::Panel, "project-switch-dialog"); + switching.layout.absolute = true; + switching.layout.width = 500; + switching.layout.height = 220; + switching.layout.padding = 16; + switching.layout.gap = 8; + switching.visible = false; + label(switching, "project-switch-title", "Switch project?"); + label(switching, "project-switch-dirty", "Unsaved changes remain in recovery journals."); + label(switching, "project-switch-jobs", "Active jobs and the Player stop on switching."); + label(switching, "project-switch-save", "Cancel to save your scenes first."); + auto& actions = switching.add(Kind::Row, "project-switch-actions"); + actions.layout.height = 32; + button( + actions, "project-switch-continue", "Switch project", + [this] { + project_switch_warning = false; + project_switch_requested = project_switch_enabled; + }, + 180); + button( + actions, "project-switch-cancel", "Cancel", [this] { project_switch_warning = false; }, + 90); + auto& project = ui.root().add(Kind::Panel, "project-settings-panel"); + project.layout.absolute = true; + project.layout.width = 610; + project.layout.height = 550; + project.layout.padding = 16; + project.layout.gap = 6; + project.layout.scroll = true; + project.visible = false; + auto& project_title = + project.add(Kind::Label, "project-settings-title", "Project settings"); + project_title.font_size = 20; + project_title.layout.height = 36; + label(project, "project-settings-name-label", "Project name"); + project.add(Kind::TextField, "project-settings-name"); + label(project, "project-settings-dimension-label", "Initial scene type"); + auto& dimensions = project.add(Kind::Row, "project-settings-dimensions"); + dimensions.layout.height = 30; + for (const auto value : {2, 3}) { + auto& choice = + dimensions.add(Kind::Tab, "project-settings-" + std::to_string(value) + "d", + std::to_string(value) + "D"); + choice.layout.width = 110; + choice.on_click = [this, value](Widget&) { project_settings_dimension = value; }; + } + label(project, "project-settings-start-label", "Start scene (saved project-relative path)"); + project.add(Kind::TextField, "project-settings-start"); + auto& scenes = project.add(Kind::Column, "project-settings-scenes"); + scenes.layout.height = 104; + scenes.layout.scroll = true; + scenes.layout.gap = 1; + label(project, "project-settings-note", + "Applies on next project open. Scene Undo is unchanged."); + auto& project_actions = project.add(Kind::Row, "project-settings-actions"); + project_actions.layout.height = 32; + button( + project_actions, "project-settings-save", "Save project", + [this] { save_project_settings(); }, 145) + .selected = true; + button( + project_actions, "project-settings-reload", "Reload saved", + [this] { open_project_settings(); }, 130); + button( + project_actions, "project-settings-cancel", "Cancel", + [this] { + project_settings_open = false; + ui.clear_focus(false); + }, + 85); + label(project, "project-settings-error", ""); + label(project, "project-settings-reload-note", "Reload saved discards this form's edits."); } void new_scene(int dimension) { auto result = @@ -553,7 +764,10 @@ struct EditorUI::Impl { choose_document(result.at("id")); menu.clear(); } - void choose_document(const std::string& id) { + void choose_document(std::string id) { + if (document != id) + last_document = document; + instance_selection = Json::array(); ui.clear_focus(false); document = id; selected.clear(); @@ -563,17 +777,285 @@ struct EditorUI::Impl { edit_revisions.clear(); gizmo_axis = -1; } - void delete_selected() { - if (selected.empty()) + bool inherited(const Json& object) const { + return object.contains("origin") && + !object.at("origin").value("path", Json::array()).empty(); + } + bool owned_addition(const Json& object) const { + return inherited(object) && object.at("origin").value("local", false) && + object.at("origin").at("path").size() == 1; + } + Json addition_record(const Json& object) const { + for (const auto& instance : current.at("scene").value("instances", Json::array())) + if (instance.at("id") == object.at("origin").at("path").front()) + for (const auto& item : instance.value("additions", Json::array())) + if (item.at("id") == object.at("origin").at("object")) + return item; + throw std::runtime_error("Instance-local addition is unavailable"); + } + void update_addition(const Json& object, Json addition, + std::uint64_t revision = std::numeric_limits::max()) { + transaction(Json::array({{{"op", "template.addition_set"}, + {"instance", object.at("origin").at("path").front()}, + {"value", std::move(addition)}}}), + revision); + } + void add_component(const std::string& type) { + const auto* object = entity(resolved, selected); + if (!object) return; - if (transaction(Json::array({{{"op", "entity.delete"}, {"entity", selected}}}))) + if (owned_addition(*object)) { + auto addition = addition_record(*object); + addition["components"].push_back( + {{"id", new_id()}, + {"type", type}, + {"version", session.authoring().schemas().schema(type).value("version", 1)}, + {"fields", session.authoring().schemas().default_fields(type)}}); + update_addition(*object, std::move(addition)); + component_menu = false; + } else if (!inherited(*object) && + transaction(Json::array( + {{{"op", "component.add"}, {"entity", selected}, {"type", type}}}))) + component_menu = false; + } + void remove_component(const std::string& cid) { + const auto* object = entity(resolved, selected); + if (!object) + return; + if (owned_addition(*object)) { + std::string source; + for (const auto& c : object->at("components")) + if (c.at("id") == cid) + source = c.at("source_id"); + auto addition = addition_record(*object); + auto& components = addition["components"]; + components.erase(std::remove_if(components.begin(), components.end(), + [&](const Json& c) { return c.at("id") == source; }), + components.end()); + update_addition(*object, std::move(addition)); + } else if (!inherited(*object)) + transaction(Json::array( + {{{"op", "component.remove"}, {"entity", selected}, {"component", cid}}})); + } + Json relative_address(const Json& object, const std::string& component_id = {}, + const std::string& field = {}) const { + const auto& origin = object.at("origin"); + auto path = origin.at("path"); + path.erase(path.begin()); + Json address = {{"path", path}, {"object", origin.at("object")}}; + if (!component_id.empty()) { + for (const auto& c : object.at("components")) + if (c.at("id") == component_id) { + address["component"] = c.value("source_id", component_id); + break; + } + address["field"] = field; + } + return address; + } + Json field_operation(const Json& object, const std::string& component_id, + const std::string& field, Json value) const { + if (inherited(object)) + return {{"op", "template.override"}, + {"instance", object.at("origin").at("path").front()}, + {"address", relative_address(object, component_id, field)}, + {"value", std::move(value)}}; + return {{"op", "component.set"}, + {"entity", object.at("id")}, + {"component", component_id}, + {"field", field}, + {"value", std::move(value)}}; + } + bool overridden(const Json& object, const std::string& component_id, + const std::string& field) const { + if (!inherited(object)) + return false; + const auto address = relative_address(object, component_id, field); + for (const auto& instance : current.at("scene").value("instances", Json::array())) + if (instance.at("id") == object.at("origin").at("path").front()) + for (const auto& change : instance.value("overrides", Json::array())) + if (change.at("address") == address) + return true; + return false; + } + std::string instance_source(const Json& path) const { + auto source_scene = current.at("scene"); + std::string source; + for (const auto& id : path) { + const auto instances = source_scene.value("instances", Json::array()); + auto found = std::find_if(instances.begin(), instances.end(), + [&](const Json& item) { return item.at("id") == id; }); + if (found == instances.end()) + return {}; + source = found->at("source"); + bool open = false; + for (const auto& doc : session.authoring().documents()) + if (doc.value("path", std::string()) == source) { + source_scene = session.authoring().query(doc.at("id"))["scene"]; + open = true; + break; + } + if (!open) + try { + source_scene = read_json(project_path(session.config().project_root, source)); + } catch (...) { + return source; + } + } + return source; + } + void open_template_source(const Json& path, const std::string& object = {}) { + const auto source = instance_source(path); + if (source.empty()) + return; + const auto opened = call("faset_document_open", {{"path", source}}); + if (!opened.is_null()) { + choose_document(opened.at("id")); + selected = object; + } + } + void select_instance(const Json& path) { + ui.clear_focus(); + selected.clear(); + instance_selection = path; + preview_fields.clear(); + edit_revisions.clear(); + } + void delete_selected() { + if (!instance_selection.empty()) { + if (instance_selection.size() != 1) { + report("Open the source scene to remove this nested instance"); + return; + } + if (transaction(Json::array( + {{{"op", "template.remove"}, {"instance", instance_selection.front()}}}))) + instance_selection = Json::array(); + return; + } + const auto* object = entity(resolved, selected); + if (!object) + return; + const Json operation = inherited(*object) + ? Json{{"op", "template.suppress"}, + {"instance", object->at("origin").at("path").front()}, + {"value", relative_address(*object)}} + : Json{{"op", "entity.delete"}, {"entity", selected}}; + if (transaction(Json::array({operation}))) selected.clear(); } + void reparent(const std::string& id, const std::string& parent) { + const auto* object = entity(resolved, id); + const auto* target = parent.empty() ? nullptr : entity(resolved, parent); + if (!object) + return; + if (inherited(*object)) { + const auto path = object->at("origin").at("path"); + if (target && (!inherited(*target) || target->at("origin").at("path") != path)) { + report("Instance reparenting stays within the same instance path"); + return; + } + transaction( + Json::array({{{"op", "template.reparent"}, + {"instance", path.front()}, + {"value", + {{"object", relative_address(*object)}, + {"parent", target ? relative_address(*target) : Json(nullptr)}, + {"keep_world", true}}}}})); + } else { + if (target && inherited(*target)) { + report("Add a local child through the instance Inspector"); + return; + } + transaction(Json::array({{{"op", "entity.reparent"}, + {"entity", id}, + {"parent", parent.empty() ? Json(nullptr) : Json(parent)}, + {"keep_world", true}}})); + } + } + void add_instance_child(const Json& path, const std::string& parent = {}) { + if (path.size() != 1) { + report("Open the nested source to add a child there"); + return; + } + auto object = authoring::make_entity(session.authoring().schemas(), "Local Object", parent); + transaction( + Json::array({{{"op", "template.add"}, {"instance", path.front()}, {"value", object}}})); + } + void instance_scene(const std::string& path) { + try { + auto data = read_json(project_path(session.config().project_root, path)); + authoring::validate_scene(data, session.authoring().schemas()); + if (data.at("id") == document) + throw std::runtime_error("A scene cannot instance itself"); + const auto id = new_id(); + if (transaction(Json::array({{{"op", "template.instance"}, + {"instance", + {{"id", id}, + {"source", path}, + {"overrides", Json::array()}, + {"suppressed", Json::array()}, + {"additions", Json::array()}, + {"reparents", Json::array()}}}}}))) + select_instance(Json::array({id})); + } catch (const std::exception& e) { + report(e.what()); + } + } + void save_selection_template(const std::string& path) { + const auto* object = entity(resolved, selected); + if (!object) { + report("Select an object subtree to create a template"); + return; + } + try { + std::set subtree{selected}; + bool changed = true; + while (changed) { + changed = false; + for (const auto& item : resolved.at("entities")) + if (item.at("parent").is_string() && + subtree.contains(item.at("parent").get())) + changed = + subtree.insert(item.at("id").get()).second || changed; + } + auto result = call("faset_document_create", + {{"name", std::filesystem::path(path).stem().string()}, + {"dimension", current.at("scene").value("dimension", 3)}}); + if (result.is_null()) + return; + Json operations = Json::array(); + for (auto item : resolved.at("entities")) + if (subtree.contains(item.at("id").get())) { + item.erase("origin"); + for (auto& c : item["components"]) + c.erase("source_id"); + if (item.at("id") == selected) + item["parent"] = nullptr; + operations.push_back({{"op", "entity.create"}, {"entity", item}}); + } + const auto id = result.at("id"); + result = call("faset_scene_edit", {{"document", id}, + {"revision", result.at("revision")}, + {"operations", operations}}); + if (result.is_null()) + return; + result = call("faset_document_save", {{"document", id}, {"path", path}}); + if (!result.is_null()) { + status = "Saved template: " + path; + source_file = path; + assets_dirty = true; + menu.clear(); + } + } catch (const std::exception& e) { + report(e.what()); + } + } void select(const std::string& id) { - if (selected == id) + if (selected == id && instance_selection.empty()) return; ui.clear_focus(); selected = id; + instance_selection = Json::array(); preview_fields.clear(); edit_revisions.clear(); component_menu = false; @@ -618,22 +1100,31 @@ struct EditorUI::Impl { {"version", 1}, {"fields", {{"asset", id}, {"primitive", "asset"}, {"color", {1, 1, 1, 1}}}}}); if (transaction(Json::array({{{"op", "entity.create"}, {"entity", object}}}))) - selected = entity_id; + select(entity_id); } void refresh() { if (document.empty()) return; current = session.authoring().query(document); schemas = session.authoring().schemas().manifest(); - if (shown_revision != current.at("revision").get()) { + const auto document_stamp = session.authoring().documents().dump(); + if (shown_revision != current.at("revision").get() || + resolved_stamp != document_stamp) { + resolved_stamp = document_stamp; auto result = call("faset_template_preview", {{"document", document}}); resolved = result.is_null() ? current.at("scene") : result.at("scene"); + template_conflicts = result.is_null() ? Json::array() : result.at("conflicts"); + for (auto& object : resolved["entities"]) + if (!object.contains("origin")) + object["origin"] = {{"path", Json::array()}, {"object", object.at("id")}}; if (!result.is_null() && !result.at("conflicts").empty()) status = "Template conflicts: " + std::to_string(result.at("conflicts").size()); shown_revision = current.at("revision"); } - if (!selected.empty() && !entity(current.at("scene"), selected)) + if (!selected.empty() && !entity(resolved, selected)) selected.clear(); + if (!instance_selection.empty() && instance_source(instance_selection).empty()) + instance_selection = Json::array(); refresh_tree(); refresh_inspector(); refresh_assets(); @@ -644,60 +1135,108 @@ struct EditorUI::Impl { ui.find("pause")->enabled = session.playing(); ui.find("step")->enabled = session.playing(); ui.find("pause")->text = paused ? "Resume" : "Pause"; + const auto schema_state = call("faset_schema_status"); + if (!schema_state.is_null()) { + const bool stale = schema_state.value("stale", false); + ui.find("build")->text = stale ? "Build C++ !" : "Build C++"; + ui.find("build")->tooltip = + stale ? "Gameplay schema is stale: " + schema_state.value("error", std::string()) + : "Build gameplay and refresh metadata"; + if (stale && status == "Ready") + status = "Gameplay schema is stale; Build C++ to refresh"; + } + ui.find("project-title")->text = session.project().value("name", std::string("Project")) + " / " + current.at("name").get() + (current.value("dirty", false) ? " *" : ""); ui.find("status")->text = status; ui.find("renderer-status")->text = - "Vulkan 1.3 | " + std::to_string(current.at("scene").at("entities").size()) + - " objects"; + "Vulkan 1.3 | " + std::to_string(resolved.at("entities").size()) + " objects"; } void refresh_tree() { auto& tree = *ui.find("scene-tree"); std::set keep; - const auto& scene = current.at("scene"); - auto& root = tree.add(Kind::TreeRow, "scene-root", scene.at("name")); - root.selected = selected.empty(); + std::map order; + std::size_t sequence = 0; + auto touch = [&](Widget& row) { + keep.insert(row.id); + order[row.id] = sequence++; + }; + auto& root = tree.add(Kind::TreeRow, "scene-root", current.at("scene").at("name")); + root.selected = selected.empty() && instance_selection.empty(); root.on_click = [this](Widget&) { select(""); }; - keep.insert(root.id); - std::function append = [&](std::string parent, int depth) { - for (const auto& e : scene.at("entities")) { - const auto p = e.at("parent").is_string() ? e.at("parent").get() : ""; - if (p != parent) + touch(root); + std::vector groups; + for (const auto& instance : current.at("scene").value("instances", Json::array())) + groups.push_back(Json::array({instance.at("id")})); + for (const auto& object : resolved.at("entities")) { + const auto path = object.at("origin").at("path"); + Json prefix = Json::array(); + for (const auto& part : path) { + prefix.push_back(part); + if (std::find(groups.begin(), groups.end(), prefix) == groups.end()) + groups.push_back(prefix); + } + } + for (const auto& conflict : template_conflicts) { + Json prefix = Json::array(); + for (const auto& part : conflict.at("instance_path")) { + prefix.push_back(part); + if (std::find(groups.begin(), groups.end(), prefix) == groups.end()) + groups.push_back(prefix); + } + } + std::function objects = [&](const Json& path, + std::string parent, + int depth) { + for (const auto& object : resolved.at("entities")) { + if (object.at("origin").at("path") != path) continue; - const auto id = e.at("id").get(); - auto& row = tree.add(Kind::TreeRow, "entity-" + id, e.at("name")); - keep.insert(row.id); + const auto parent_id = + object.at("parent").is_string() ? object.at("parent").get() : ""; + const auto* parent_object = + parent_id.empty() ? nullptr : entity(resolved, parent_id); + const bool own_parent = + parent_object && parent_object->at("origin").at("path") == path; + if ((own_parent ? parent_id : "") != parent) + continue; + const auto id = object.at("id").get(); + auto& row = tree.add(Kind::TreeRow, "entity-" + id, object.at("name")); row.indent = depth; row.selected = selected == id; - row.drag_payload = {{"kind", "entity"}, {"id", id}, {"label", e.at("name")}}; + row.drag_payload = {{"kind", "entity"}, {"id", id}, {"label", object.at("name")}}; row.on_click = [this, id](Widget&) { select(id); }; row.on_drop = [this, id](Widget&, const Json& payload) { if (payload.value("kind", std::string()) == "entity") - transaction(Json::array({{{"op", "entity.reparent"}, - {"entity", payload.at("id")}, - {"parent", id}, - {"keep_world", true}}})); + reparent(payload.at("id"), id); }; - append(id, depth + 1); + touch(row); + objects(path, id, depth + 1); } }; - append("", 1); - trim_children(tree, keep); - // Match retained children to hierarchy order after a reparent without - // changing widget IDs. - std::map order; - std::size_t n = 0; - std::function visit = [&](std::string p) { - for (const auto& e : scene.at("entities")) - if ((e.at("parent").is_string() ? e.at("parent").get() : "") == p) { - const auto id = e.at("id").get(); - order["entity-" + id] = ++n; - visit(id); - } + objects(Json::array(), "", 1); + std::function append_group = [&](Json path, int depth) { + const auto source = instance_source(path); + auto& row = tree.add(Kind::TreeRow, "instance-" + path.dump(), + "[T] " + std::filesystem::path(source).filename().string()); + row.indent = depth; + row.selected = instance_selection == path; + row.on_click = [this, path](Widget&) { select_instance(path); }; + touch(row); + objects(path, "", depth + 1); + for (const auto& candidate : groups) { + if (candidate.size() != path.size() + 1) + continue; + auto prefix = candidate; + prefix.erase(prefix.end() - 1); + if (prefix == path) + append_group(candidate, depth + 1); + } }; - order["scene-root"] = 0; - visit(""); + for (const auto& group : groups) + if (group.size() == 1) + append_group(group, 1); + trim_children(tree, keep); std::stable_sort(tree.children.begin(), tree.children.end(), [&](const auto& a, const auto& b) { return order[a->id] < order[b->id]; }); } @@ -707,12 +1246,10 @@ struct EditorUI::Impl { const auto revision = found == edit_revisions.end() ? current.at("revision").get() : found->second; - transaction(Json::array({{{"op", "component.set"}, - {"entity", selected}, - {"component", component_id}, - {"field", field}, - {"value", std::move(value)}}}), - revision); + if (const auto* object = entity(resolved, selected)) + transaction( + Json::array({field_operation(*object, component_id, field, std::move(value))}), + revision); edit_revisions.erase(widget); preview_fields.erase(component_id + "/" + field); } @@ -769,10 +1306,61 @@ struct EditorUI::Impl { set_field(cid, field, payload.at("id"), id); }; } + void refresh_instance_inspector(Widget& body, std::set& keep) { + const auto path = instance_selection; + const auto source = instance_source(path); + label(body, "instance-heading", "Scene instance"); + keep.insert("instance-heading"); + auto& field = body.add(Kind::TextField, "instance-source"); + ui.update_text(field.id, source); + field.enabled = path.size() == 1; + field.on_commit = [this, path](Widget& w) { + transaction(Json::array( + {{{"op", "template.source_set"}, {"instance", path.front()}, {"source", w.text}}})); + }; + keep.insert(field.id); + button(body, "instance-open-source", "Open source", + [this, path] { open_template_source(path); }); + keep.insert("instance-open-source"); + auto& remove = + button(body, "instance-remove", "Remove instance", [this] { delete_selected(); }); + remove.enabled = path.size() == 1; + keep.insert(remove.id); + auto& add = button(body, "instance-add-local", "Add local object", + [this, path] { add_instance_child(path); }); + add.enabled = path.size() == 1; + keep.insert(add.id); + if (path.size() != 1) { + label(body, "instance-nested-note", "Open source for nested structural changes"); + keep.insert("instance-nested-note"); + return; + } + for (const auto& instance : current.at("scene").value("instances", Json::array())) + if (instance.at("id") == path.front()) { + std::size_t i = 0; + for (const auto& address : instance.value("suppressed", Json::array())) { + const auto id = "instance-restore-" + std::to_string(i++); + button(body, id, + "Restore suppressed object " + + address.at("object").get().substr(0, 8), + [this, path, address] { + transaction(Json::array({{{"op", "template.restore"}, + {"instance", path.front()}, + {"address", address}}})); + }); + keep.insert(id); + } + } + } void refresh_inspector() { auto& body = *ui.find("properties"); std::set keep; - const auto* e = entity(current.at("scene"), selected); + const auto* e = entity(resolved, selected); + if (!instance_selection.empty()) { + refresh_instance_inspector(body, keep); + trim_children(body, keep); + return; + } if (!e) { label(body, "inspector-empty", "Select an object to edit its components"); keep.insert("inspector-empty"); @@ -781,24 +1369,53 @@ struct EditorUI::Impl { } auto& name = body.add(Kind::TextField, "object-name"); ui.update_text(name.id, e->at("name")); + const bool source_object = inherited(*e), local_addition = owned_addition(*e); + name.enabled = !source_object || local_addition; + if (local_addition) { + label(body, "object-origin", "Local addition to this instance"); + keep.insert("object-origin"); + } else if (source_object) { + const auto path = e->at("origin").at("path"); + const auto object = e->at("origin").at("object").get(); + label(body, "object-origin", + "Source: " + std::filesystem::path(instance_source(path)).filename().string()); + keep.insert("object-origin"); + button(body, "object-open-source", "Open source", + [this, path, object] { open_template_source(path, object); }); + keep.insert("object-open-source"); + } keep.insert(name.id); name.on_preview = [this](Widget&) { edit_revisions.try_emplace("object-name", current.at("revision").get()); }; name.on_cancel = [this](Widget& w) { edit_revisions.erase(w.id); }; name.on_commit = [this](Widget& w) { - transaction( - Json::array({{{"op", "entity.rename"}, {"entity", selected}, {"name", w.text}}}), - edit_revisions.contains(w.id) ? edit_revisions[w.id] - : current.at("revision").get()); + const auto revision = edit_revisions.contains(w.id) + ? edit_revisions[w.id] + : current.at("revision").get(); + if (const auto* object = entity(resolved, selected)) { + if (owned_addition(*object)) { + auto addition = addition_record(*object); + addition["name"] = w.text; + update_addition(*object, std::move(addition), revision); + } else + transaction( + Json::array( + {{{"op", "entity.rename"}, {"entity", selected}, {"name", w.text}}}), + revision); + } edit_revisions.erase(w.id); }; for (const auto& c : e->at("components")) { const auto cid = c.at("id").get(), type = c.at("type").get(); - const bool known = session.authoring().schemas().contains(type); - const auto metadata = - known ? session.authoring().schemas().schema(type) - : Json{{"name", type + " (schema missing)"}, {"fields", Json::object()}}; + const bool has_schema = session.authoring().schemas().contains(type); + const bool known = + has_schema && c.value("version", 1) == + session.authoring().schemas().schema(type).value("version", 1); + const auto metadata = known ? session.authoring().schemas().schema(type) + : Json{{"name", type + (has_schema ? " (version mismatch)" + : " (schema missing)")}, + {"fields", Json::object()}}; auto& header = body.add(Kind::Row, "component-header-" + cid); keep.insert(header.id); header.layout.height = 28; @@ -806,12 +1423,20 @@ struct EditorUI::Impl { header.add(Kind::Label, "component-title-" + cid, metadata.value("name", type)); title.layout.flex = 1; button( - header, "component-remove-" + cid, "x", - [this, cid] { - transaction(Json::array( - {{{"op", "component.remove"}, {"entity", selected}, {"component", cid}}})); - }, - 25); + header, "component-remove-" + cid, "x", [this, cid] { remove_component(cid); }, 25) + .enabled = !source_object || local_addition; + if (!known) { + label(body, "opaque-note-" + cid, "Schema unavailable. Data is preserved."); + keep.insert("opaque-note-" + cid); + auto& raw = + body.add(Kind::TextField, "opaque-fields-" + cid, c.at("fields").dump()); + raw.enabled = false; + keep.insert(raw.id); + button(body, "opaque-copy-" + cid, "Copy raw fields", + [this, fields = c.at("fields")] { renderer.set_clipboard(fields.dump(2)); }); + keep.insert("opaque-copy-" + cid); + continue; + } for (const auto& [fid, value] : c.at("fields").items()) { const auto descriptor = metadata.at("fields").value(fid, Json::object()); const auto key = "field-" + cid + "-" + fid; @@ -837,7 +1462,23 @@ struct EditorUI::Impl { ui.clear_focus(false); row.remove(input_id); } - trim_children(row, {key + "-label", input_id}); + if (source_object) { + const auto address = relative_address(*e, cid, fid); + const auto instance = e->at("origin").at("path").front(); + const bool local_override = overridden(*e, cid, fid); + row.find(key + "-label")->text += local_override ? " · Override" : " · Source"; + auto& revert = + button(row, key + "-revert", "Revert", [this, instance, address] { + transaction(Json::array({{{"op", "template.revert"}, + {"instance", instance}, + {"address", address}}})); + }); + revert.enabled = local_override; + revert.layout.height = 23; + } + trim_children(row, source_object ? std::set{key + "-label", input_id, + key + "-revert"} + : std::set{key + "-label", input_id}); if (!options.empty()) { auto& input = button(row, key + "-value", @@ -858,6 +1499,7 @@ struct EditorUI::Impl { } else if (vector_value) { auto& vectorrow = row.add(Kind::Row, key + "-vector"); vectorrow.layout.gap = 3; + std::set axis_ids; for (std::size_t axis = 0; axis < value.size(); ++axis) { auto& input = vectorrow.add(Kind::NumberField, key + "-" + std::to_string(axis)); @@ -866,7 +1508,9 @@ struct EditorUI::Impl { ui.update_number(input.id, value[axis].get()); input.step = .02; bind_field(input, cid, fid, value, int(axis)); + axis_ids.insert(input.id); } + trim_children(vectorrow, axis_ids); } else if (value.is_number()) { auto& input = row.add(Kind::NumberField, key + "-value"); input.step = value.is_number_integer() ? 1 : .05; @@ -883,16 +1527,21 @@ struct EditorUI::Impl { } auto& add = button(body, "add-component", "+ Add Component", [this] { component_menu = !component_menu; }); + add.enabled = !source_object || local_addition; keep.insert(add.id); - if (component_menu) + if (source_object) { + const auto path = e->at("origin").at("path"); + const auto object = e->at("origin").at("object").get(); + auto& child = button(body, "instance-add-child", "Add local child", + [this, path, object] { add_instance_child(path, object); }); + child.enabled = path.size() == 1; + keep.insert(child.id); + } + if (component_menu && (!source_object || local_addition)) for (const auto& schema : schemas.at("types")) { const auto type = schema.at("id").get(); - auto& choice = button( - body, "component-choice-" + type, schema.value("name", type), [this, type] { - if (transaction(Json::array( - {{{"op", "component.add"}, {"entity", selected}, {"type", type}}}))) - component_menu = false; - }); + auto& choice = button(body, "component-choice-" + type, schema.value("name", type), + [this, type] { add_component(type); }); keep.insert(choice.id); } trim_children(body, keep); @@ -1018,12 +1667,61 @@ struct EditorUI::Impl { return std::find(order.begin(), order.end(), a->dock_panel) < std::find(order.begin(), order.end(), b->dock_panel); }); - for (const std::string id : {"assets", "console", "jobs"}) + for (const std::string id : {"assets", "console", "jobs", "conflicts"}) ui.find("tab-" + id)->selected = active_bottom == id; ui.find("asset-toolbar")->visible = active_bottom == "assets"; ui.find("asset-items")->visible = active_bottom == "assets"; ui.find("console-items")->visible = active_bottom == "console"; ui.find("job-items")->visible = active_bottom == "jobs"; + ui.find("conflict-items")->visible = active_bottom == "conflicts"; + ui.find("tab-conflicts")->text = + "Conflicts (" + std::to_string(template_conflicts.size()) + ")"; + auto& conflict_list = *ui.find("conflict-items"); + std::set conflict_keep; + std::size_t conflict_index = 0; + for (const auto& conflict : template_conflicts) { + const auto id = "conflict-" + std::to_string(conflict_index++); + auto& row = conflict_list.add(Kind::Row, id); + row.layout.height = 28; + const auto code = conflict.at("code").get(); + const auto path = conflict.at("instance_path"); + auto& text = row.add( + Kind::Label, id + "-text", + code + " · " + std::filesystem::path(instance_source(path)).filename().string()); + text.layout.flex = 1; + button( + row, id + "-source", "Open source", [this, path] { open_template_source(path); }, + 106); + const auto record = conflict.at("record"); + const auto change = record.contains("change") ? record.at("change") : record; + if (path.size() == 1 && code.starts_with("override.") && change.contains("address")) { + const auto address = change.at("address"); + button( + row, id + "-discard", "Discard override", + [this, path, address] { + transaction(Json::array({{{"op", "template.revert"}, + {"instance", path.front()}, + {"address", address}}})); + }, + 140); + } else if (path.size() == 1 && code == "suppression.object_missing") { + button( + row, id + "-discard", "Discard suppression", + [this, path, record] { + transaction(Json::array({{{"op", "template.restore"}, + {"instance", path.front()}, + {"address", record}}})); + }, + 155); + } + conflict_keep.insert(id); + } + if (conflict_keep.empty()) { + label(conflict_list, "conflicts-empty", + "No template conflicts. Missing targets preserve their overrides here."); + conflict_keep.insert("conflicts-empty"); + } + trim_children(conflict_list, conflict_keep); auto& console = *ui.find("console-items"); std::set keep; const auto& logs = session.logs(); @@ -1072,17 +1770,33 @@ struct EditorUI::Impl { popup.visible = !menu.empty(); ui.find("menu-title")->text = menu; refresh_recovery(); + refresh_simulation(); + refresh_project_settings(); + const bool modal = palette || !recovery.empty() || simulation_open || + project_switch_warning || project_settings_open; + for (const auto* id : {"menubar", "toolbar", "workspace", "bottom_panel"}) + ui.find(id)->enabled = !modal; const bool file = menu == "File" || menu == "Faset", edit = menu == "Edit" || menu == "Scene", help = menu == "Help" || menu == "View"; - for (const auto* id : - {"new-3d", "new-2d", "open-path", "open-path-button", "save-path", "save-as-button"}) + for (const auto* id : {"new-3d", "new-2d", "project-settings", "open-project", "open-path", + "open-path-button", "save-path", "save-as-button"}) ui.find(id)->visible = file; + ui.find("open-project")->enabled = project_switch_enabled; + ui.find("open-project")->tooltip = + project_switch_enabled ? "Return to project launcher" + : "Project switching is unavailable while MCP is connected"; + auto* switching = ui.find("project-switch-dialog"); + switching->visible = project_switch_warning; + switching->layout.x = std::max(0.f, (float(renderer.width()) - 500) * .5f); + switching->layout.y = std::max(0.f, (float(renderer.height()) - 220) * .5f); for (const auto* id : {"menu-duplicate", "menu-delete"}) ui.find(id)->visible = edit; for (const auto* id : {"help-one", "help-two", "help-three"}) ui.find(id)->visible = help; - popup.layout.height = file ? 260 : edit ? 112 : 150; + for (const auto* id : {"template-path", "save-template", "instance-template"}) + ui.find(id)->visible = menu == "Scene"; + popup.layout.height = file ? 335 : menu == "Scene" ? 220 : edit ? 112 : 150; popup.layout.x = menu == "File" ? 70 : menu == "Edit" ? 126 : menu == "Scene" ? 182 @@ -1107,6 +1821,168 @@ struct EditorUI::Impl { } trim_children(list, keep); } + void open_project_settings() { + ui.clear_focus(false); + auto result = call("faset_project_settings_get"); + if (result.is_null()) + return; + project_settings_state = result; + const auto& settings = result.at("settings"); + project_settings_dimension = settings.value("dimension", 3); + ui.update_text("project-settings-name", settings.value("name", std::string()), true); + ui.update_text("project-settings-start", settings.value("start_scene", std::string()), + true); + project_settings_error.clear(); + project_settings_open = true; + menu.clear(); + auto& choices = *ui.find("project-settings-scenes"); + choices.children.clear(); + choices.scroll_y = 0; + std::set saved; + for (const auto& doc : session.authoring().documents()) { + const auto path = doc.value("path", std::string()); + if (!path.empty()) + saved.insert(path); + } + try { + for (const auto* folder : {"Scenes", "Assets"}) { + const auto directory = session.config().project_root / folder; + if (!std::filesystem::is_directory(directory)) + continue; + std::size_t visited = 0; + for (const auto& entry : std::filesystem::recursive_directory_iterator( + directory, std::filesystem::directory_options::skip_permission_denied)) { + if (++visited > 4000) + break; + if (entry.is_regular_file() && + entry.path().filename().string().ends_with(".scene.json")) + saved.insert( + std::filesystem::relative(entry.path(), session.config().project_root) + .generic_string()); + } + } + } catch (const std::exception& error) { + project_settings_error = error.what(); + } + std::size_t index = 0; + for (const auto& path : saved) { + try { + const auto scene = read_json(project_path(session.config().project_root, path)); + if (scene.value("format", "") != "faset.scene" || scene.value("version", 0) != 1) + continue; + } catch (...) { + continue; + } + auto& choice = + choices.add(Kind::TreeRow, "project-scene-choice-" + std::to_string(index++), path); + choice.layout.height = 27; + choice.on_click = [this, path](Widget&) { + ui.update_text("project-settings-start", path, true); + project_settings_error.clear(); + }; + } + if (index == 0) + choices.add(Kind::Label, "project-settings-no-scenes", + "Save a scene to choose it here."); + } + void save_project_settings() { + ui.clear_focus(); + if (ui.editing()) + return; + const auto name = ui.find("project-settings-name")->text; + const auto start = ui.find("project-settings-start")->text; + if (name.find_first_not_of(" \t\r\n") == std::string::npos) { + project_settings_error = "Enter a project name."; + return; + } + Json changes = {{"name", name}, {"dimension", project_settings_dimension}}; + if (!start.empty() || + !project_settings_state.at("settings").value("start_scene", std::string()).empty()) + changes["start_scene"] = start; + const auto result = + call("faset_project_settings_set", + {{"revision", project_settings_state.at("revision")}, {"settings", changes}}); + if (result.is_null()) { + project_settings_error = status; + return; + } + project_settings_state = result; + project_settings_open = false; + project_settings_error.clear(); + status = "Project settings saved for the next project open"; + } + void refresh_project_settings() { + auto* panel = ui.find("project-settings-panel"); + panel->visible = project_settings_open; + panel->layout.width = std::min(610.f, std::max(340.f, float(renderer.width()) - 40)); + panel->layout.height = std::min(550.f, std::max(300.f, float(renderer.height()) - 40)); + panel->layout.x = std::max(0.f, (float(renderer.width()) - panel->layout.width) * .5f); + panel->layout.y = std::max(0.f, (float(renderer.height()) - panel->layout.height) * .5f); + ui.find("project-settings-2d")->selected = project_settings_dimension == 2; + ui.find("project-settings-3d")->selected = project_settings_dimension == 3; + ui.find("project-settings-error")->text = project_settings_error; + for (auto& choice : ui.find("project-settings-scenes")->children) + if (choice->kind == Kind::TreeRow) + choice->selected = choice->text == ui.find("project-settings-start")->text; + } + void refresh_simulation() { + auto& panel = *ui.find("simulation-panel"); + panel.visible = simulation_open; + panel.layout.x = std::max(0.f, (float(renderer.width()) - 470) / 2); + panel.layout.y = 90; + if (!simulation_open) + return; + const auto response = call("faset_simulation_get", {{"document", document}}); + if (response.is_null()) + return; + const auto settings = response.at("settings"); + auto bind = [&, this](Widget& input, const std::string& field, int axis = -1) { + const auto id = input.id; + input.on_preview = [this, id](Widget&) { + edit_revisions.try_emplace(id, current.at("revision").get()); + }; + input.on_cancel = [this, id](Widget&) { edit_revisions.erase(id); }; + input.on_commit = [this, id, field, axis, settings](Widget& w) { + Json patch; + if (axis >= 0) { + auto gravity = settings.at("gravity"); + gravity[axis] = w.value; + patch = {{"gravity", gravity}}; + } else if (field == "tick-rate") { + if (w.value <= 0) { + report("Tick rate must be positive"); + edit_revisions.erase(id); + return; + } + patch = {{"fixed_delta", 1.0 / w.value}}; + } else + patch = {{field, std::int64_t(std::llround(w.value))}}; + const auto revision = edit_revisions.contains(id) + ? edit_revisions[id] + : current.at("revision").get(); + const auto result = + call("faset_simulation_set", + {{"document", document}, {"revision", revision}, {"settings", patch}}); + edit_revisions.erase(id); + if (!result.is_null()) { + current = result; + status = "Scene simulation updated for the next Play"; + } + }; + }; + for (const std::string field : {"tick-rate", "max_catch_up_ticks", "physics_substeps"}) { + auto& input = *ui.find("simulation-" + field); + ui.update_number(input.id, field == "tick-rate" + ? 1.0 / settings.at("fixed_delta").get() + : settings.at(field).get()); + bind(input, field); + } + for (int axis = 0; axis < 3; ++axis) { + auto& input = *ui.find("simulation-gravity-" + std::to_string(axis)); + ui.update_number(input.id, settings.at("gravity")[axis].get()); + bind(input, "gravity", axis); + } + } void refresh_recovery() { auto& panel = *ui.find("recovery-panel"); panel.visible = !recovery.empty(); @@ -1193,6 +2069,9 @@ struct EditorUI::Impl { } viewport = ui.find("viewport")->rect; rendered = view.build(scene, viewport.width / std::max(1.f, viewport.height), camera()); + for (const auto& diagnostic : view.diagnostics()) + if (seen_view_diagnostics.insert(diagnostic).second) + session.log("Viewport: " + diagnostic); rendered.scene_rect = {viewport.x, viewport.y, viewport.width, viewport.height}; rendered.clear_color = ui.theme().background; const auto key = scene.dump() + assets.dump(); @@ -1246,7 +2125,7 @@ struct EditorUI::Impl { render::DrawItem grid; grid.mesh = render::cube_mesh(); grid.cast_shadow = false; - grid.color = {.12f, .12f, .13f, 1}; + grid.color = {.035f, .035f, .04f, 1}; grid.model = render::transform({float(i), 0, 0}, {}, {.012f, .002f, 20}); rendered.draws.push_back(grid); grid.model = render::transform({0, 0, float(i)}, {}, {20, .002f, .012f}); @@ -1254,13 +2133,19 @@ struct EditorUI::Impl { } } gizmo_valid = false; - if (auto* e = entity(scene, selected)) { + if (auto* e = entity(scene, selected); + e && component(*e, "faset.transform") && + component(*e, "faset.transform")->value("version", 1) == 1) { gizmo_origin = point(world(scene, *e), {}); gizmo_valid = project(gizmo_origin, gizmo_screen[0]); const auto length = is2d ? ortho * .12f : distance * .12f; for (int axis = 0; axis < 3; ++axis) { Vec3 p = gizmo_origin; - p[axis] += length; + Vec3 direction{}; + direction[axis] = 1; + if (gizmo_mode != "Move") + direction = normalize(vector(world(scene, *e), direction)); + p = add(p, mul(direction, length)); gizmo_valid = project(p, gizmo_screen[axis + 1]) && gizmo_valid; } if (gizmo_valid) { @@ -1305,11 +2190,11 @@ struct EditorUI::Impl { bool start_gizmo(float x, float y) { if (!gizmo_valid) return false; - const auto* e = entity(current.at("scene"), selected); + const auto* e = entity(resolved, selected); if (!e) return false; const auto* c = component(*e, "faset.transform"); - if (!c) + if (!c || c->value("version", 1) != 1) return false; float best = 8; int axis = -1; @@ -1351,21 +2236,23 @@ struct EditorUI::Impl { delta[gizmo_axis] = amount * gizmo_world_length; if (snap) delta[gizmo_axis] = std::round(delta[gizmo_axis] * 4) / 4; - const auto* e = entity(current.at("scene"), selected); + const auto* e = entity(resolved, selected); if (e && e->at("parent").is_string()) - if (auto* parent = - entity(current.at("scene"), e->at("parent").get())) { + if (auto* parent = entity(resolved, e->at("parent").get())) { Mat4 inv; - if (inverse(world(current.at("scene"), *parent), inv)) + if (inverse(world(resolved, *parent), inv)) delta = vector(inv, delta); } auto position = vec(gizmo_original.at("position")); position = add(position, delta); preview_fields[gizmo_component + "/position"] = position; } else if (gizmo_mode == "Rotate") { - auto rotation = vec(gizmo_original.at("rotation")); - rotation[gizmo_axis] += snap ? std::round(amount * 12) * .261799f : amount * 3.141593f; - preview_fields[gizmo_component + "/rotation"] = rotation; + Vec3 delta{}; + delta[gizmo_axis] = snap ? std::round(amount * 12) * .261799f : amount * 3.141593f; + const auto composed = + render::multiply(render::transform({}, vec(gizmo_original.at("rotation"))), + render::transform({}, delta)); + preview_fields[gizmo_component + "/rotation"] = euler_xyz(composed); } else { auto scale = vec(gizmo_original.at("scale")); scale[gizmo_axis] *= std::max(.01f, 1 + amount); @@ -1432,12 +2319,10 @@ struct EditorUI::Impl { : "scale"; const auto key = gizmo_component + "/" + field; if (preview_fields.contains(key)) - transaction(Json::array({{{"op", "component.set"}, - {"entity", selected}, - {"component", gizmo_component}, - {"field", field}, - {"value", preview_fields[key]}}}), - gizmo_revision); + if (const auto* object = entity(resolved, selected)) + transaction(Json::array({field_operation(*object, gizmo_component, field, + preview_fields[key])}), + gizmo_revision); preview_fields.erase(key); gizmo_axis = -1; return true; @@ -1454,11 +2339,26 @@ struct EditorUI::Impl { using Type = render::Event::Type; for (const auto& event : input) { if (event.type == Type::KeyDown && event.key == "Escape") { + if (project_settings_open) { + project_settings_open = false; + ui.clear_focus(false); + continue; + } + if (project_switch_warning) { + project_switch_warning = false; + ui.clear_focus(false); + continue; + } if (gizmo_axis >= 0) { gizmo_axis = -1; preview_fields.clear(); continue; } + if (simulation_open) { + simulation_open = false; + ui.clear_focus(false); + continue; + } if (palette || !menu.empty()) { palette = false; menu.clear(); @@ -1473,8 +2373,14 @@ struct EditorUI::Impl { mouse_x = event.x; mouse_y = event.y; } - if ((palette || !recovery.empty()) && event.type == Type::MouseDown) { - auto* modal = ui.find(!recovery.empty() ? "recovery-panel" : "palette"); + if ((palette || !recovery.empty() || simulation_open || project_switch_warning || + project_settings_open) && + event.type == Type::MouseDown) { + auto* modal = ui.find(project_settings_open ? "project-settings-panel" + : project_switch_warning ? "project-switch-dialog" + : !recovery.empty() ? "recovery-panel" + : simulation_open ? "simulation-panel" + : "palette"); if (!modal->rect.contains(event.x, event.y)) continue; } @@ -1484,6 +2390,10 @@ struct EditorUI::Impl { } if (ui.handle(event)) continue; + if ((project_switch_warning || !recovery.empty() || simulation_open || + project_settings_open) && + event.type == Type::KeyDown) + continue; if (event.type == Type::KeyDown) { if (event.control && (event.key == "S" || event.key == "s")) { save(); @@ -1494,6 +2404,9 @@ struct EditorUI::Impl { continue; } if (event.control && (event.key == "P" || event.key == "p")) { + ui.clear_focus(); + if (ui.editing()) + continue; palette = !palette; continue; } @@ -1515,6 +2428,7 @@ struct EditorUI::Impl { } void frame(const std::vector& events_) { session.poll(); + poll_presentation(); refresh(); ui.layout(float(renderer.width()), float(renderer.height())); if (rendered.scene_rect[2] == 0) @@ -1550,4 +2464,14 @@ const std::string& EditorUI::selected_entity() const { void EditorUI::select_entity(const std::string& id) { impl_->select(id); } +bool EditorUI::project_switch_requested() const { + return impl_->project_switch_requested; +} +void EditorUI::set_project_switch_enabled(bool enabled) { + impl_->project_switch_enabled = enabled; + if (!enabled) { + impl_->project_switch_requested = false; + impl_->project_switch_warning = false; + } +} } // namespace faset::editor diff --git a/src/editor/mcp.cpp b/src/editor/mcp.cpp index 7f0e475..6cbf9ed 100644 --- a/src/editor/mcp.cpp +++ b/src/editor/mcp.cpp @@ -1,11 +1,13 @@ +#include #include -#include #ifdef _WIN32 #define NOMINMAX #include #else #include +#include #include +#include #include #endif @@ -126,7 +128,6 @@ std::vector StdioTransport::poll() { if (type == FILE_TYPE_PIPE) { if (!PeekNamedPipe(input, nullptr, 0, nullptr, &available, nullptr)) { closed_ = true; - return lines; } } else if (type == FILE_TYPE_DISK) available = sizeof(bytes); @@ -169,7 +170,51 @@ std::vector StdioTransport::poll() { return lines; } void StdioTransport::send(const Json& value) { - std::cout << value.dump() << '\n'; - std::cout.flush(); + const auto bytes = value.dump() + '\n'; + std::size_t offset = 0; +#ifdef _WIN32 + const auto output = GetStdHandle(STD_OUTPUT_HANDLE); + while (offset < bytes.size()) { + DWORD written = 0; + const auto count = static_cast(std::min(bytes.size() - offset, 65536)); + if (!WriteFile(output, bytes.data() + offset, count, &written, nullptr) || written == 0) { + closed_ = true; + return; + } + offset += written; + } +#else + // A disconnected MCP client must not terminate the GUI with SIGPIPE. Block + // it only on this thread during the write, preserving the process signal + // policy and any SIGPIPE that was already pending for the caller. + sigset_t blocked, previous, pending; + sigemptyset(&blocked); + sigaddset(&blocked, SIGPIPE); + if (pthread_sigmask(SIG_BLOCK, &blocked, &previous) != 0) { + closed_ = true; + return; + } + sigpending(&pending); + const bool alreadyPending = sigismember(&pending, SIGPIPE) == 1; + bool brokenPipe = false; + while (offset < bytes.size()) { + const auto written = ::write(STDOUT_FILENO, bytes.data() + offset, bytes.size() - offset); + if (written > 0) + offset += static_cast(written); + else if (written < 0 && errno == EINTR) + continue; + else { + brokenPipe = written < 0 && errno == EPIPE; + closed_ = true; + break; + } + } + if (brokenPipe && !alreadyPending) { + const timespec noWait{}; + while (sigtimedwait(&blocked, nullptr, &noWait) == -1 && errno == EINTR) { + } + } + pthread_sigmask(SIG_SETMASK, &previous, nullptr); +#endif } } // namespace faset::editor diff --git a/src/editor/plugins.cpp b/src/editor/plugins.cpp index 63e97f9..b8105c6 100644 --- a/src/editor/plugins.cpp +++ b/src/editor/plugins.cpp @@ -14,11 +14,25 @@ namespace faset::editor { namespace { -void append(void* context, const char* bytes, std::uint64_t size) { - auto& output = *static_cast(context); - require(size <= 8 * 1024 * 1024 && output.size() + size <= 8 * 1024 * 1024, - "plugin.output_limit", "Plugin response exceeds 8 MiB"); - output.append(bytes, static_cast(size)); +struct ResponseBuffer { + std::string bytes; + bool failed = false; +}; +void append(void* context, const char* bytes, std::uint64_t size) noexcept { + auto& output = *static_cast(context); + if (output.failed) + return; + if ((!bytes && size) || size > 8 * 1024 * 1024 || + output.bytes.size() + size > 8 * 1024 * 1024) { + output.failed = true; + return; + } + try { + if (size) + output.bytes.append(bytes, static_cast(size)); + } catch (...) { + output.failed = true; + } } Json response(const std::string& bytes) { auto value = Json::parse(bytes); @@ -237,11 +251,13 @@ struct PluginManager::Impl { commands.add( name, descriptor.at("description"), descriptor.at("inputSchema"), [registration](const Json& arguments) { - std::string output; + ResponseBuffer output; const auto input = arguments.dump(); const int result = registration.callback(registration.user, input.c_str(), append, &output); - const auto value = response(output); + require(!output.failed, "plugin.output_limit", + "Cannot collect plugin response (maximum 8 MiB)"); + const auto value = response(output.bytes); if (result != 0) throw Error(value.value("code", std::string("plugin.failed")), value.value("message", std::string("Plugin command failed")), diff --git a/src/editor/session.cpp b/src/editor/session.cpp index 5cf1710..c6a5457 100644 --- a/src/editor/session.cpp +++ b/src/editor/session.cpp @@ -58,6 +58,10 @@ Session::Session(SessionConfig config) if (std::filesystem::exists(schema)) try { load_schema(schema); + const auto state = config_.project_root / ".faset/schema-state.json"; + if (std::filesystem::exists(state)) + schema_source_signature_ = + read_json(state).value("source_signature", std::string()); } catch (const std::exception& error) { log(std::string("Schema load failed: ") + error.what()); } @@ -77,8 +81,26 @@ void Session::log(std::string value) { } Json Session::project() const { const auto path = config_.project_root / "project.faset.json"; - if (std::filesystem::exists(path)) - return read_json(path); + if (std::filesystem::exists(path)) { + const auto value = read_json(path); + require(value.is_object() && value.value("format", "") == "faset.project" && + value.value("version", 0) == 1, + "project.version", "Unsupported project format or version"); + require(value.contains("name") && value.at("name").is_string() && + !value.at("name").get().empty(), + "project.name", "Project name must be a nonempty string"); + const auto dimension = value.value("dimension", 3); + require(dimension == 2 || dimension == 3, "project.dimension", + "Project dimension must be 2 or 3"); + if (value.contains("start_scene")) { + require(value.at("start_scene").is_string(), "project.start_scene", + "Project start_scene must be a relative path"); + const auto scene = value.at("start_scene").get(); + if (!scene.empty()) + project_path(config_.project_root, scene); + } + return value; + } return {{"format", "faset.project"}, {"version", 1}, {"name", config_.project_root.filename().string()}, @@ -105,6 +127,26 @@ Json Session::assets_list() const { } return {{"assets", list}}; } +std::string Session::source_signature() const { + const auto directory = config_.project_root / "Scripts"; + std::vector files; + if (std::filesystem::exists(directory)) + for (const auto& file : std::filesystem::recursive_directory_iterator(directory)) + if (file.is_regular_file()) + files.push_back(file.path()); + std::sort(files.begin(), files.end()); + std::string contents; + for (const auto& file : files) + contents += + file.lexically_relative(directory).generic_string() + ":" + sha256_file(file) + "\n"; + return sha256(contents); +} +Json Session::schema_status() const { + return {{"loaded", schema_loaded_}, + {"stale", !schema_loaded_ || schema_source_signature_ != source_signature() || + !schema_error_.empty()}, + {"error", schema_error_}}; +} Json Session::jobs() const { Json list = Json::array(); for (const auto& item : builds_.jobs()) @@ -124,6 +166,8 @@ void Session::load_schema(const std::filesystem::path& path) { const auto output = config_.project_root / ".faset/schema.json"; if (std::filesystem::weakly_canonical(path) != std::filesystem::weakly_canonical(output)) atomic_write_json(output, value); + schema_loaded_ = true; + schema_error_.clear(); log("Gameplay schema loaded"); } void Session::launch_player(Json scene, const std::filesystem::path& executable) { @@ -170,20 +214,35 @@ void Session::poll() { if (observed_jobs_[value.id] == value.state) continue; observed_jobs_[value.id] = value.state; - if (value.state == "failed") - log(value.kind + " failed: " + value.error); + bool schema_valid = true; + if (value.state == "failed") { + schema_error_ = value.error; + log(value.kind + " failed: " + value.error + + "; previous gameplay metadata remains available and is marked stale"); + } if (value.state == "succeeded") { log(value.kind + " completed"); if (value.result.contains("schema")) try { load_schema(value.result.at("schema").get()); + // This signature represents the sources submitted with this job, not later + // edits. + if (value.result.contains("source_signature")) + schema_source_signature_ = + value.result.at("source_signature").get(); + else if (submitted_sources_.contains(value.id)) + schema_source_signature_ = submitted_sources_.at(value.id); + atomic_write_json(config_.project_root / ".faset/schema-state.json", + {{"source_signature", schema_source_signature_}}); } catch (const std::exception& error) { + schema_valid = false; + schema_error_ = error.what(); log(std::string("Schema update failed: ") + error.what()); } } if (value.id == pending_play_job_ && value.finished()) { pending_play_job_.clear(); - if (value.state == "succeeded") + if (value.state == "succeeded" && schema_valid) try { const auto executable = value.result.value("player", (builds_.config().build_directory / @@ -242,67 +301,125 @@ void Session::register_commands() { commands_.add( "faset_project", "Read the authoring project's settings.", schema(Json::object()), [&](const Json&) { return project(); }, true); + commands_.add( + "faset_project_settings_get", "Read project settings and their content revision.", + schema(Json::object()), + [&](const Json&) { + const auto value = project(); + return Json{{"settings", value}, {"revision", sha256(value.dump())}}; + }, + true); + commands_.add( + "faset_project_settings_set", + "Save project name, initial scene dimension or start scene with an expected content " + "revision. Applies on the next project open; does not change the active scene or its Undo " + "history.", + schema({{"revision", text}, {"settings", {{"type", "object"}}}}, {"revision", "settings"}), + [&](const Json& args) { + auto value = project(); + require(args.at("revision") == sha256(value.dump()), "revision.conflict", + "Project settings changed; reload them before saving"); + const auto& changes = args.at("settings"); + for (const auto& [key, field] : changes.items()) { + require(key == "name" || key == "dimension" || key == "start_scene", + "project.setting", "Unknown editable project setting: " + key); + if (key == "name") + require(field.is_string() && !field.get().empty(), "project.name", + "Project name must be a nonempty string"); + else if (key == "dimension") + require(field.is_number_integer() && (field == 2 || field == 3), + "project.dimension", "Initial scene dimension must be 2 or 3"); + else { + require(field.is_string() && !field.get().empty(), + "project.start_scene", "Choose a saved scene inside the project"); + const auto file = project_path(config_.project_root, field.get()); + require(std::filesystem::is_regular_file(file), "project.start_scene", + "Save the start scene before selecting it in Project settings"); + const auto scene = read_json(file); + require(scene.value("format", "") == "faset.scene" && + scene.value("version", 0) == 1, + "project.start_scene", + "The start scene must be a supported Faset scene"); + } + value[key] = field; + } + if (!value.contains("id")) + value["id"] = new_id(); + atomic_write_json(config_.project_root / "project.faset.json", value); + log("Project settings saved; changes apply on next project open"); + return Json{{"settings", value}, {"revision", sha256(value.dump())}}; + }); commands_.add( "faset_assets", "List imported asset manifests and resource identities.", schema(Json::object()), [&](const Json&) { return assets_list(); }, true); - commands_.add("faset_import", - "Import GLB/glTF or a Blender export manifest relative to this project. Returns " - "a cancellable job ID; failure retains the last successful generation.", - schema({{"path", text}, - {"settings", {{"type", "object"}}}, - {"allow_removed_outputs", boolean}}, - {"path"}), - [&](const Json& args) { - assets::ImportRequest request; - request.source = - project_path(config_.project_root, args.at("path").get()); - request.settings = args.value("settings", Json(nullptr)); - request.allow_removed_outputs = args.value("allow_removed_outputs", false); - auto task = std::make_shared(); - task->id = "import-" + new_id(); - imports_[task->id] = task; - workers_.emplace_back([this, task, request] { - { - std::lock_guard lock(task->mutex); - task->state = "running"; - } - try { - const auto result = assets_.import_asset(request, *task->job); - std::lock_guard lock(task->mutex); - task->state = - result.status == assets::ImportStatus::succeeded ? "succeeded" + commands_.add( + "faset_import", + "Import PNG/JPEG, GLB/glTF, or a Blender export manifest relative to this project. Returns " + "a cancellable job ID; failure retains the last successful generation.", + schema({{"path", text}, + {"settings", {{"type", "object"}}}, + {"allow_removed_outputs", boolean}}, + {"path"}), + [&](const Json& args) { + assets::ImportRequest request; + request.source = project_path(config_.project_root, args.at("path").get()); + request.settings = args.value("settings", Json(nullptr)); + request.allow_removed_outputs = args.value("allow_removed_outputs", false); + auto task = std::make_shared(); + task->id = "import-" + new_id(); + imports_[task->id] = task; + workers_.emplace_back([this, task, request] { + { + std::lock_guard lock(task->mutex); + task->state = "running"; + } + try { + const auto result = assets_.import_asset(request, *task->job); + std::lock_guard lock(task->mutex); + task->state = result.status == assets::ImportStatus::succeeded ? "succeeded" : result.status == assets::ImportStatus::cancelled ? "cancelled" : result.status == assets::ImportStatus::conflict ? "conflict" : "failed"; - task->result = {{"asset_id", result.asset_id}, - {"generation", result.generation}, - {"diagnostics", result.diagnostics}, - {"cache_hit", result.cache_hit}, - {"manifest", result.manifest}}; - for (const auto& message : result.diagnostics) - task->error += message + "\n"; - } catch (const std::exception& error) { - std::lock_guard lock(task->mutex); - task->state = "failed"; - task->error = error.what(); - } - }); - return Json{{"job", task->id}}; - }); + task->result = {{"asset_id", result.asset_id}, + {"generation", result.generation}, + {"diagnostics", result.diagnostics}, + {"cache_hit", result.cache_hit}, + {"manifest", result.manifest}}; + for (const auto& message : result.diagnostics) + task->error += message + "\n"; + } catch (const std::exception& error) { + std::lock_guard lock(task->mutex); + task->state = "failed"; + task->error = error.what(); + } + }); + return Json{{"job", task->id}}; + }); + commands_.add( + "faset_schema_status", + "Report whether the last successful gameplay schema matches current project scripts. " + "Failed builds retain metadata but mark it stale.", + schema(Json::object()), [&](const Json&) { return schema_status(); }, true); commands_.add("faset_build", "Incrementally compile C++ gameplay and export its metadata in separate native " "processes. Returns a job ID.", - schema(Json::object()), - [&](const Json&) { return Json{{"job", builds_.start_build()}}; }); + schema(Json::object()), [&](const Json&) { + const auto signature = source_signature(); + const auto id = builds_.start_build(); + submitted_sources_[id] = signature; + return Json{{"job", id}}; + }); commands_.add("faset_export", "Build, validate and export a resolved authoring snapshot to a project-relative " "output directory. Returns a job ID.", schema({{"document", text}, {"output", text}}, {"document", "output"}), [&](const Json& args) { - return Json{{"job", builds_.start_export( - resolved_or_throw(commands_, args.at("document")), - project_path(config_.project_root, - args.at("output").get()))}}; + const auto signature = source_signature(); + const auto id = builds_.start_export( + resolved_or_throw(commands_, args.at("document")), + project_path(config_.project_root, args.at("output").get())); + submitted_sources_[id] = signature; + return Json{{"job", id}}; }); commands_.add( "faset_jobs", "List editor import/build/export jobs and their progress.", @@ -326,7 +443,9 @@ void Session::register_commands() { schema({{"document", text}}, {"document"}), [&](const Json& args) { stop_player(); pending_play_scene_ = resolved_or_throw(commands_, args.at("document")); + const auto signature = source_signature(); pending_play_job_ = builds_.start_build(); + submitted_sources_[pending_play_job_] = signature; return Json{{"job", pending_play_job_}, {"play_pending", true}}; }); commands_.add( diff --git a/src/player/SceneView.cpp b/src/player/SceneView.cpp index 5f7d6a1..3d249d4 100644 --- a/src/player/SceneView.cpp +++ b/src/player/SceneView.cpp @@ -17,12 +17,19 @@ namespace faset::player { namespace { using Json = nlohmann::json; Json properties(const Json& entity, const std::string& name) { + if (entity.contains("components")) { + for (const auto& component : entity["components"]) + if (component.at("type") == "faset." + name) { + // Future authoring schemas remain opaque until an explicit migration. + if (component.value("version", 1) != 1) + return Json{}; + return component.at("fields"); + } + return Json{}; + } + // Runtime presentation snapshots already contain validated typed components. if (entity.contains(name)) return entity.at(name); - if (entity.contains("components")) - for (const auto& c : entity["components"]) - if (c.at("type") == "faset." + name) - return c.at("fields"); return Json{}; } template @@ -235,9 +242,21 @@ render::Snapshot SceneView::build(const Json& scene, float aspect, CameraSetting if (!entities.is_array()) throw std::invalid_argument("Scene entities must be an array"); std::unordered_map byId; - for (const auto& entity : entities) - if (!byId.emplace(entity.at("id").get(), &entity).second) + for (const auto& entity : entities) { + const auto id = entity.at("id").get(); + if (!byId.emplace(id, &entity).second) throw std::invalid_argument("Duplicate scene ID"); + for (const auto& component : entity.value("components", Json::array())) { + const auto type = component.at("type").get(); + if (component.value("version", 1) != 1 && + (type == "faset.transform" || type == "faset.sprite" || type == "faset.mesh" || + type == "faset.camera" || type == "faset.light")) + impl_->messages.push_back("warning: preview skips unsupported " + type + + " version " + + std::to_string(component.at("version").get()) + + " on entity " + id + "; opaque data is preserved"); + } + } std::unordered_map matrices; std::set active; auto world = [&](auto&& self, const Json& entity) -> render::Mat4 { @@ -375,4 +394,77 @@ render::Snapshot SceneView::build(const Json& scene, float aspect, CameraSetting impl_->messages.end()); return out; } +void SceneView::appendPhysicsDebug(render::Snapshot& snapshot, const Json& scene, + float thickness) const { + if (!std::isfinite(thickness) || thickness <= 0) + throw std::invalid_argument("Physics debug thickness must be positive"); + const int dimension = scene.at("dimension"); + if (dimension != 2 && dimension != 3) + throw std::invalid_argument("Physics debug dimension must be 2 or 3"); + static const auto edgeMesh = [] { + auto mesh = std::make_shared(*render::cube_mesh()); + for (auto& vertex : mesh->vertices) + vertex.normal = {0, 0, 0}; // Unlit debug color. + return mesh; + }(); + for (const auto& entity : scene.at("entities")) { + const auto body = properties(entity, dimension == 2 ? "rigid_body_2d" : "rigid_body_3d"); + if (body.is_null()) + continue; + if (entity.contains("parent") && !entity.at("parent").is_null()) + throw std::invalid_argument( + "Physics debug bodies must be roots, like the runtime adapters"); + const auto pose = properties(entity, "transform"); + const auto position = vec<3>(pose, "position", {0, 0, 0}); + const auto rotation = vec<3>(pose, "rotation", {0, 0, 0}); + const auto scale = vec<3>(pose, "scale", {1, 1, 1}); + if (dimension == 2 && (rotation[0] != 0 || rotation[1] != 0)) + throw std::invalid_argument("2D physics debug rotates only around Z"); + render::Vec3 half{}; + if (dimension == 2) { + const auto value = vec<2>(body, "half_extents", {.5f, .5f}); + half = {value[0], value[1], 0}; + } else + half = vec<3>(body, "half_extents", {.5f, .5f, .5f}); + for (int axis = 0; axis < dimension; ++axis) { + if (half[axis] <= 0 || std::abs(scale[axis]) <= .00001f) + throw std::invalid_argument("Invalid physics debug box extent/scale"); + half[axis] *= std::abs(scale[axis]); + if (!std::isfinite(half[axis])) + throw std::invalid_argument("Nonfinite physics debug box"); + } + const auto type = body.value("body_type", std::string("dynamic")); + const render::Color color = type == "static" ? render::Color{.2f, 1, .3f, 1} + : type == "kinematic" ? render::Color{1, .7f, .15f, 1} + : render::Color{.15f, .85f, 1, 1}; + const auto model = render::transform(position, rotation); + auto edge = [&](render::Vec3 center, render::Vec3 size) { + snapshot.draws.push_back({edgeMesh, + render::multiply(model, render::transform(center, {}, size)), + color, + .65f, + 0, + false, + {}}); + }; + if (dimension == 2) { + for (float side : {-1.0f, 1.0f}) { + edge({0, side * half[1], 0}, {2 * half[0], thickness, thickness}); + edge({side * half[0], 0, 0}, {thickness, 2 * half[1], thickness}); + } + } else { + for (int axis = 0; axis < 3; ++axis) { + const int first = (axis + 1) % 3, second = (axis + 2) % 3; + for (float a : {-1.0f, 1.0f}) + for (float b : {-1.0f, 1.0f}) { + render::Vec3 center{}, size{thickness, thickness, thickness}; + center[first] = a * half[first]; + center[second] = b * half[second]; + size[axis] = 2 * half[axis]; + edge(center, size); + } + } + } + } +} } // namespace faset::player diff --git a/src/render/renderer.cpp b/src/render/renderer.cpp index afb6e76..9c9a0d2 100644 --- a/src/render/renderer.cpp +++ b/src/render/renderer.cpp @@ -1,3 +1,4 @@ +#include "shader_contract.hpp" #include #include #include @@ -41,13 +42,14 @@ std::array point(const Mat4& m, std::array p) { struct Buffer { VkBuffer handle{}; VkDeviceMemory memory{}; - VkDeviceSize size{}; + VkDeviceSize size{}, allocation_size{}; }; struct Image { VkImage handle{}; VkDeviceMemory memory{}; VkImageView view{}; VkImageLayout layout{VK_IMAGE_LAYOUT_UNDEFINED}; + VkDeviceSize allocation_size{}; }; struct Batch { std::uint32_t first{}, count{}; @@ -74,6 +76,7 @@ struct Renderer::Impl { float timestamp_period{}; std::uint32_t timestamp_bits{}; VkSemaphore acquired{}, present_ready{}; + std::array shader_layouts{}; VkSwapchainKHR swapchain{}; VkFormat swap_format{}; VkExtent2D swap_extent{}; @@ -186,16 +189,22 @@ struct Renderer::Impl { if (sdl) SDL_QuitSubSystem(SDL_INIT_VIDEO); } - std::uint32_t memory_type(std::uint32_t bits, VkMemoryPropertyFlags properties) { + std::uint32_t memory_type(std::uint32_t bits, VkMemoryPropertyFlags properties, + VkMemoryPropertyFlags preferred = 0) { VkPhysicalDeviceMemoryProperties p{}; vkGetPhysicalDeviceMemoryProperties(physical, &p); + if (preferred) + for (std::uint32_t i = 0; i < p.memoryTypeCount; ++i) + if ((bits & (1u << i)) && (p.memoryTypes[i].propertyFlags & + (properties | preferred)) == (properties | preferred)) + return i; for (std::uint32_t i = 0; i < p.memoryTypeCount; ++i) if ((bits & (1u << i)) && (p.memoryTypes[i].propertyFlags & properties) == properties) return i; throw std::runtime_error("Required Vulkan memory type is unavailable"); } Buffer make_buffer(VkDeviceSize bytes, VkBufferUsageFlags usage, - VkMemoryPropertyFlags properties) { + VkMemoryPropertyFlags properties, VkMemoryPropertyFlags preferred = 0) { Buffer b{}; b.size = bytes; VkBufferCreateInfo info{VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO}; @@ -208,8 +217,9 @@ struct Renderer::Impl { vkGetBufferMemoryRequirements(device, b.handle, &req); VkMemoryAllocateInfo alloc{VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO}; alloc.allocationSize = req.size; - alloc.memoryTypeIndex = memory_type(req.memoryTypeBits, properties); + alloc.memoryTypeIndex = memory_type(req.memoryTypeBits, properties, preferred); check(vkAllocateMemory(device, &alloc, nullptr, &b.memory), "Allocate buffer memory"); + b.allocation_size = req.size; check(vkBindBufferMemory(device, b.handle, b.memory, 0), "Bind buffer memory"); } catch (...) { destroy(b); @@ -240,6 +250,7 @@ struct Renderer::Impl { memory_type(req.memoryTypeBits, VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT); check(vkAllocateMemory(device, &alloc, nullptr, &image.memory), "Allocate image memory"); + image.allocation_size = req.size; check(vkBindImageMemory(device, image.handle, image.memory, 0), "Bind image memory"); VkImageViewCreateInfo view{VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO}; view.image = image.handle; @@ -338,6 +349,7 @@ struct Renderer::Impl { bool validation = c.validation && std::any_of(layers.begin(), layers.end(), [](auto& p) { return std::strcmp(p.layerName, "VK_LAYER_KHRONOS_validation") == 0; }); + statistics.validation_enabled = validation; if (c.validation && !validation) std::cerr << "[Faset] Vulkan validation layer not installed; diagnostics disabled.\n"; if (validation) @@ -488,9 +500,11 @@ struct Renderer::Impl { VK_IMAGE_ASPECT_COLOR_BIT); depth = make_image(width, height, VK_FORMAT_D32_SFLOAT, VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT, VK_IMAGE_ASPECT_DEPTH_BIT); + // CPU reads this allocation every frame. Prefer cached coherent memory when available. readback = make_buffer(VkDeviceSize(width) * height * 4, VK_BUFFER_USAGE_TRANSFER_DST_BIT, - VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT | VK_MEMORY_PROPERTY_HOST_COHERENT_BIT); + VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT | VK_MEMORY_PROPERTY_HOST_COHERENT_BIT, + VK_MEMORY_PROPERTY_HOST_CACHED_BIT); last_pixels.clear(); } void make_swapchain() { @@ -680,37 +694,34 @@ struct Renderer::Impl { auto [inserted, _] = textures.emplace(source.get(), std::move(texture)); return inserted->second.descriptor; } - VkShaderModule shader(const char* name) { + std::filesystem::path shader_directory() const { + if (!config.shader_directory.empty()) + return config.shader_directory; std::vector roots; const char* base = SDL_GetBasePath(); if (base) roots.emplace_back(std::filesystem::path(base) / "shaders"); roots.emplace_back(std::filesystem::current_path() / "shaders"); roots.emplace_back(FASET_SHADER_DIRECTORY); - std::ifstream file; - for (const auto& root : roots) { - file.open(root / (std::string(name) + ".spv"), std::ios::binary | std::ios::ate); - if (file) - break; - file.clear(); - } - if (!file) - throw std::runtime_error(std::string("Compiled Slang shader missing: ") + name + - ".spv"); - auto size = file.tellg(); - if (size <= 0 || size % 4 != 0) - throw std::runtime_error("Invalid SPIR-V byte length"); - std::vector bytes(static_cast(size) / 4); - file.seekg(0); - file.read(reinterpret_cast(bytes.data()), size); + for (const auto& root : roots) + if (std::filesystem::is_regular_file(root / "vertexMain.spv")) + return root; + throw std::runtime_error("Compiled Slang shader bundle is missing"); + } + VkShaderModule shader(const detail::ShaderCode& code) { VkShaderModuleCreateInfo ci{VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO}; - ci.codeSize = static_cast(size); - ci.pCode = bytes.data(); + ci.codeSize = code.words.size() * sizeof(std::uint32_t); + ci.pCode = code.words.data(); VkShaderModule result{}; check(vkCreateShaderModule(device, &ci, nullptr, &result), "Create shader module"); return result; } void make_pipelines() { + const auto shaders = detail::load_shader_bundle(shader_directory()); + for (std::size_t i = 0; i < shaders.size(); ++i) + if (!shader_layouts[i].empty() && shader_layouts[i] != shaders[i].layout_fingerprint) + throw std::runtime_error( + "Shader layout changed; the current pipeline was preserved"); VkPushConstantRange push{VK_SHADER_STAGE_VERTEX_BIT | VK_SHADER_STAGE_FRAGMENT_BIT, 0, sizeof(Push)}; VkPipelineLayoutCreateInfo li{VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO}; @@ -722,9 +733,9 @@ struct Renderer::Impl { "Create pipeline layout"); VkShaderModule vertex{}, fragment{}, shadow_vertex{}; try { - vertex = shader("vertexMain"); - fragment = shader("fragmentMain"); - shadow_vertex = shader("shadowMain"); + vertex = shader(shaders[0]); + fragment = shader(shaders[1]); + shadow_vertex = shader(shaders[2]); for (int mode = 0; mode < 3; ++mode) { bool shadow_pass = mode == 2, ui = mode == 1; VkPipelineShaderStageCreateInfo stages[2]{}; @@ -821,6 +832,8 @@ struct Renderer::Impl { vkDestroyShaderModule(device, shadow_vertex, nullptr); throw; } + for (std::size_t i = 0; i < shaders.size(); ++i) + shader_layouts[i] = shaders[i].layout_fingerprint; vkDestroyShaderModule(device, vertex, nullptr); vkDestroyShaderModule(device, fragment, nullptr); vkDestroyShaderModule(device, shadow_vertex, nullptr); @@ -953,12 +966,17 @@ struct Renderer::Impl { void render(const Snapshot& snapshot) { auto start = std::chrono::steady_clock::now(); statistics.draw_calls = statistics.culled_meshes = 0; + bool can_present = surface != VK_NULL_HANDLE; if (surface) { + // A capture may render between normal event-loop iterations. Keep the window + // system progressing without consuming events intended for the editor. + SDL_PumpEvents(); int w{}, h{}; SDL_GetWindowSizeInPixels(window, &w, &h); - if (w <= 0 || h <= 0) - return; - if (dirty_swapchain || !swapchain) + can_present = + w > 0 && h > 0 && + !(SDL_GetWindowFlags(window) & (SDL_WINDOW_HIDDEN | SDL_WINDOW_MINIMIZED)); + if (can_present && (dirty_swapchain || !swapchain)) make_swapchain(); } // Retire atlas/image resources no longer retained by a caller. @@ -1077,19 +1095,21 @@ struct Renderer::Impl { {direction[0], direction[1], direction[2], 0}, {snapshot.eye[0], snapshot.eye[1], snapshot.eye[2], 1}}; std::optional swap_index; - if (surface) { + if (can_present) { std::uint32_t index{}; - auto result = vkAcquireNextImageKHR(device, swapchain, UINT64_MAX, acquired, - VK_NULL_HANDLE, &index); + // Compositors can withhold images while a window is occluded. Rendering and + // editor capture must remain available even when presentation cannot advance. + const auto result = + vkAcquireNextImageKHR(device, swapchain, 0, acquired, VK_NULL_HANDLE, &index); if (result == VK_ERROR_OUT_OF_DATE_KHR) { dirty_swapchain = true; - return; - } - if (result == VK_SUBOPTIMAL_KHR) - dirty_swapchain = true; - else + } else if (result == VK_SUCCESS || result == VK_SUBOPTIMAL_KHR) { + swap_index = index; + if (result == VK_SUBOPTIMAL_KHR) + dirty_swapchain = true; + } else if (result != VK_NOT_READY && result != VK_TIMEOUT) { check(result, "Acquire swapchain image"); - swap_index = index; + } } begin(); if (timestamp_pool) { @@ -1255,12 +1275,22 @@ struct Renderer::Impl { check(result, "Present frame"); check(vkQueueWaitIdle(queue), "Wait presentation"); } + const auto readback_started = std::chrono::steady_clock::now(); last_pixels.resize(std::size_t(width) * height * 4); check(vkMapMemory(device, readback.memory, 0, readback.size, 0, &mapped), "Map captured frame"); std::memcpy(last_pixels.data(), mapped, last_pixels.size()); vkUnmapMemory(device, readback.memory); + statistics.readback_cpu_ms = std::chrono::duration( + std::chrono::steady_clock::now() - readback_started) + .count(); ++statistics.frame; + statistics.gpu_allocated_bytes = vertices.allocation_size + readback.allocation_size + + color.allocation_size + depth.allocation_size + + shadow.allocation_size; + statistics.texture_count = static_cast(textures.size()); + for (const auto& [_, texture] : textures) + statistics.gpu_allocated_bytes += texture.image.allocation_size; statistics.validation_errors = validation_errors.load(); statistics.cpu_ms = std::chrono::duration(std::chrono::steady_clock::now() - start) diff --git a/src/render/shader_contract.cpp b/src/render/shader_contract.cpp new file mode 100644 index 0000000..616582d --- /dev/null +++ b/src/render/shader_contract.cpp @@ -0,0 +1,140 @@ +#include "shader_contract.hpp" +#include +#include +#include +#include +#include +#include + +namespace faset::render { +namespace { +using faset::Json; +void require(bool value, const std::string& message) { + if (!value) + throw std::runtime_error("Shader contract: " + message); +} +std::string read_bounded(const std::filesystem::path& path, std::uintmax_t maximum) { + require(std::filesystem::is_regular_file(path), "missing " + path.string()); + require(std::filesystem::file_size(path) <= maximum, "oversized " + path.string()); + return faset::read_text(path); +} +void locations(const Json& fields, std::initializer_list types, const char* label) { + require(fields.is_array() && fields.size() == types.size(), + std::string(label) + " count changed"); + std::size_t index{}; + for (const auto* type : types) { + require(fields[index].at("location") == index && fields[index].at("type") == type, + std::string(label) + " location/type changed"); + ++index; + } +} +void validate_layout(const Json& layout, std::string_view entry) { + const bool fragment = entry == "fragmentMain"; + require(layout.at("stage") == (fragment ? "fragment" : "vertex"), "shader stage changed"); + const auto& descriptors = layout.at("descriptors"); + require(descriptors.is_array() && descriptors.size() == 4, "descriptor count changed"); + for (std::size_t i = 0; i < descriptors.size(); ++i) { + const auto& binding = descriptors[i]; + require(binding.at("set") == 0 && binding.at("binding") == i && binding.at("count") == 1, + "descriptor set, binding or array count changed"); + require(binding.at("type") == (i % 2 ? "sampler" : "sampled_image_2d"), + "descriptor type changed"); + require(fragment || !binding.at("used").get(), + "vertex texture bindings are unsupported"); + } + const auto& constants = layout.at("push_constants"); + require(constants.is_array() && constants.size() == 1 && constants[0].at("offset") == 0 && + constants[0].at("size") == 96, + "push-constant block changed"); + const auto& members = constants[0].at("members"); + require(members.is_array() && members.size() == 3, "push-constant member count changed"); + const int offsets[] = {0, 64, 80}, sizes[] = {64, 16, 16}; + const char* types[] = {"float32x4x4", "float32x4", "float32x4"}; + for (std::size_t i = 0; i < 3; ++i) + require(members[i].at("offset") == offsets[i] && members[i].at("size") == sizes[i] && + members[i].at("type") == types[i], + "push-constant member layout changed"); + const auto& blocks = layout.at("spirv_push_constants"); + require(blocks.is_array() && blocks.size() <= 1, "SPIR-V push-constant block count changed"); + for (const auto& block : blocks) { + const auto& actual = block.at("members"); + require(actual.is_array() && actual.size() == 3, "SPIR-V push-constant members changed"); + for (std::size_t i = 0; i < 3; ++i) + require(actual[i].at("member") == i && actual[i].at("offset") == offsets[i], + "SPIR-V push-constant offsets changed"); + // Slang lowers column-major host matrices to a transposed SPIR-V matrix type. + require(actual[0].at("matrix_layout") == "row-major" && actual[0].at("matrix_stride") == 16, + "SPIR-V matrix storage convention changed"); + } + if (fragment) { + locations(layout.at("inputs"), + {"float32x3", "float32x3", "float32x4", "float32x2", "float32x2"}, + "fragment inputs"); + locations(layout.at("outputs"), {"float32x4"}, "fragment outputs"); + } else { + locations(layout.at("inputs"), + {"float32x4", "float32x3", "float32x3", "float32x4", "float32x2", "float32x2"}, + "vertex inputs"); + if (entry == "vertexMain") + locations(layout.at("outputs"), + {"float32x3", "float32x3", "float32x4", "float32x2", "float32x2"}, + "vertex outputs"); + else + locations(layout.at("outputs"), {}, "shadow outputs"); + } +} +void validate_spirv(const std::vector& words, bool fragment) { + require(words.size() >= 5 && words[0] == 0x07230203 && words[1] >= 0x00010000 && + words[1] <= 0x00010600 && words[3] > 0 && words[3] < (1u << 20) && words[4] == 0, + "invalid SPIR-V header"); + bool entry_found{}; + for (std::size_t offset = 5; offset < words.size();) { + const auto count = words[offset] >> 16; + const auto opcode = words[offset] & 0xffff; + require(count > 0 && count <= words.size() - offset, "malformed SPIR-V instruction"); + if (opcode == 15) { // OpEntryPoint + require(count >= 4, "malformed SPIR-V entry point"); + const char* name = reinterpret_cast(&words[offset + 3]); + const auto available = (count - 3) * sizeof(std::uint32_t); + const auto* terminator = static_cast(std::memchr(name, 0, available)); + require(terminator != nullptr, "unterminated SPIR-V entry name"); + if (std::string_view(name, terminator - name) == "main") { + require(words[offset + 1] == (fragment ? 4u : 0u), "SPIR-V entry stage changed"); + entry_found = true; + } + } + offset += count; + } + require(entry_found, "SPIR-V main entry point missing"); +} +detail::ShaderCode load(const std::filesystem::path& directory, const char* entry) { + const auto bytes = read_bounded(directory / (std::string(entry) + ".spv"), 16 * 1024 * 1024); + require(bytes.size() >= 20 && bytes.size() % 4 == 0, "invalid SPIR-V byte length"); + const auto metadata = Json::parse( + read_bounded(directory / (std::string(entry) + ".reflection.json"), 1024 * 1024)); + require(metadata.at("format") == "faset.shader-reflection" && metadata.at("version") == 1, + "unsupported reflection version"); + require(metadata.at("source_entry") == entry && metadata.at("entry_point") == "main", + "reflection entry point mismatch"); + require(metadata.at("spirv_sha256") == faset::sha256(bytes), "SPIR-V/reflection hash mismatch"); + const auto& layout = metadata.at("layout"); + const auto fingerprint = faset::sha256(layout.dump()); + require(metadata.at("layout_fingerprint") == fingerprint, "layout fingerprint mismatch"); + validate_layout(layout, entry); + detail::ShaderCode result; + result.layout_fingerprint = fingerprint; + result.words.resize(bytes.size() / 4); + std::memcpy(result.words.data(), bytes.data(), bytes.size()); + validate_spirv(result.words, std::string_view(entry) == "fragmentMain"); + return result; +} +} // namespace +std::array +detail::load_shader_bundle(const std::filesystem::path& directory) { + return {load(directory, "vertexMain"), load(directory, "fragmentMain"), + load(directory, "shadowMain")}; +} +void validate_shader_bundle(const std::filesystem::path& directory) { + (void)detail::load_shader_bundle(directory); +} +} // namespace faset::render diff --git a/src/render/shader_contract.hpp b/src/render/shader_contract.hpp new file mode 100644 index 0000000..c0154ea --- /dev/null +++ b/src/render/shader_contract.hpp @@ -0,0 +1,14 @@ +#pragma once +#include +#include +#include +#include +#include + +namespace faset::render::detail { +struct ShaderCode { + std::vector words; + std::string layout_fingerprint; +}; +std::array load_shader_bundle(const std::filesystem::path& directory); +} // namespace faset::render::detail diff --git a/src/ui/ui.cpp b/src/ui/ui.cpp index ff57c77..4e54ade 100644 --- a/src/ui/ui.cpp +++ b/src/ui/ui.cpp @@ -115,6 +115,8 @@ Layout parse_layout(const Json& j, Layout l = {}) { } } // namespace Theme Theme::from_json(const Json& j) { + if (!j.is_object()) + throw std::runtime_error("Theme must be an object"); Theme t; #define UI_COLOR(name) t.name = color(j, #name, t.name) UI_COLOR(background); @@ -277,7 +279,9 @@ struct Context::Impl { return 5 * scale; if (horizontal) { if (w.kind == Kind::Label || w.kind == Kind::Button || w.kind == Kind::Tab) - return font.measure(w.text, theme.font_size * scale) + theme.padding * 2 * scale; + return font.measure(w.text, + (w.font_size > 0 ? w.font_size : theme.font_size) * scale) + + theme.padding * 2 * scale; return 80 * scale; } if (w.kind == Kind::Panel || w.kind == Kind::Column || w.kind == Kind::Row) { @@ -367,6 +371,8 @@ struct Context::Impl { Widget* hit(Widget& w, float x, float y) { if (!w.visible || !w.clip.contains(x, y)) return nullptr; + if (!w.enabled) + return w.rect.contains(x, y) ? &w : nullptr; for (auto child = w.children.rbegin(); child != w.children.rend(); ++child) if (auto* target = hit(**child, x, y)) return target; @@ -463,8 +469,9 @@ struct Context::Impl { while (i < e.buffer.text().size() && (static_cast(e.buffer.text()[i]) & 0xc0) == 0x80) ++i; - const auto width = font.measure(std::string_view(e.buffer.text()).substr(0, i), - theme.font_size * scale); + const auto width = + font.measure(std::string_view(e.buffer.text()).substr(0, i), + (w.font_size > 0 ? w.font_size : theme.font_size) * scale); if (local < (previous_width + width) * .5f) return previous_byte; previous_width = width; @@ -518,7 +525,11 @@ struct Context::Impl { fill(frame, rect, theme.surface, w.clip); outline(frame, rect, theme.border, w.clip); } else if (w.kind == Kind::Button) { - fill(frame, rect, hover && w.enabled ? theme.hover : theme.raised, w.clip); + fill(frame, rect, + hover && w.enabled ? theme.hover + : w.selected ? theme.selection + : theme.raised, + w.clip); outline(frame, rect, focus ? theme.accent : theme.border, w.clip); } else if (w.kind == Kind::Tab || w.kind == Kind::TreeRow) { if (w.selected || hover) @@ -543,7 +554,7 @@ struct Context::Impl { fill(frame, rect, hover || w.id == captured ? theme.accent : theme.background, w.clip); } float tx = rect.x + theme.padding * scale + w.indent * 14 * scale; - const auto font_size = theme.font_size * scale; + const auto font_size = (w.font_size > 0 ? w.font_size : theme.font_size) * scale; const auto ty = rect.y + std::max(0.f, (rect.height - font_size * 1.45f) * .5f); if (w.kind == Kind::Checkbox) { Rect box{tx, rect.y + (rect.height - 14 * scale) / 2, 14 * scale, 14 * scale}; @@ -666,30 +677,55 @@ const Theme& Context::theme() const { FontAtlas& Context::font() { return impl_->font; } -void Context::apply_layout(const Json& document) { +void Context::validate_layout(const Json& document) const { + if (!document.is_object()) + throw std::runtime_error("Layout must be an object"); const auto& definition = document.contains("root") ? document.at("root") : document; + if (definition.at("id") != impl_->root.id) + throw std::runtime_error("Layout root ID must match retained root"); std::set ids; - std::function validate = [&](const Json& j) { + std::function validate = [&](const Json& j, + const std::string& parent) { const auto id = j.at("id").get(); if (id.empty() || !ids.insert(id).second) throw std::runtime_error("Duplicate layout widget ID"); + const auto* existing = impl_->find(id); + if (existing && ((existing->parent ? existing->parent->id : std::string()) != parent)) + throw std::runtime_error("Hot layout cannot reparent existing widget: " + id); if (j.contains("kind")) { const auto type = kind_from_string(j.at("kind")); - if (auto* existing = find(id); existing && existing->kind != type) + if (existing && existing->kind != type) throw std::runtime_error("Hot layout cannot replace widget kind"); } + if (j.contains("text") && + (!j.at("text").is_string() || !TextBuffer::valid_utf8(j.at("text").get()))) + throw std::runtime_error("Widget text must be valid UTF-8"); if (j.contains("layout")) - parse_layout(j.at("layout")); - if (j.contains("children")) + parse_layout(j.at("layout"), existing ? existing->layout : Layout{}); + if (j.contains("font_size")) { + const auto size = j.at("font_size").get(); + if (!std::isfinite(size) || size < 0 || size > 128) + throw std::runtime_error("Invalid widget font size"); + } + if (j.contains("children")) { + if (!j.at("children").is_array()) + throw std::runtime_error("Layout children must be an array"); for (const auto& child : j.at("children")) - validate(child); + validate(child, id); + } }; - validate(definition); + validate(definition, ""); +} +void Context::apply_layout(const Json& document) { + validate_layout(document); + const auto& definition = document.contains("root") ? document.at("root") : document; std::function apply = [&](Widget& w, const Json& j) { if (j.contains("text")) update_text(w.id, j.at("text")); if (j.contains("layout")) w.layout = parse_layout(j.at("layout"), w.layout); + if (j.contains("font_size")) + w.font_size = j.at("font_size"); if (j.contains("children")) for (const auto& child : j.at("children")) { const auto id = child.at("id").get(); @@ -700,8 +736,6 @@ void Context::apply_layout(const Json& document) { apply(target, child); } }; - if (definition.at("id") != root().id) - throw std::runtime_error("Layout root ID must match retained root"); apply(root(), definition); } void Context::layout(float width, float height, float scale) { diff --git a/tests/assets_image_fixtures.hpp b/tests/assets_image_fixtures.hpp new file mode 100644 index 0000000..46add82 --- /dev/null +++ b/tests/assets_image_fixtures.hpp @@ -0,0 +1,34 @@ +#pragma once +#include +// Deterministic two-pixel test images generated locally; no external media. +namespace faset::test_images { +inline const std::vector png_red_green = { + 137, 80, 78, 71, 13, 10, 26, 10, 0, 0, 0, 13, 73, 72, 68, 82, 0, 0, 0, + 2, 0, 0, 0, 1, 8, 6, 0, 0, 0, 244, 34, 127, 138, 0, 0, 0, 17, 73, + 68, 65, 84, 120, 218, 99, 248, 207, 192, 240, 159, 225, 63, 67, 3, 0, 16, 121, 3, + 126, 92, 47, 98, 147, 0, 0, 0, 0, 73, 69, 78, 68, 174, 66, 96, 130}; +inline const std::vector png_blue_white = { + 137, 80, 78, 71, 13, 10, 26, 10, 0, 0, 0, 13, 73, 72, 68, 82, 0, 0, 0, + 2, 0, 0, 0, 1, 8, 6, 0, 0, 0, 244, 34, 127, 138, 0, 0, 0, 17, 73, + 68, 65, 84, 120, 218, 99, 100, 96, 248, 255, 255, 255, 127, 6, 6, 0, 18, 0, 3, + 254, 224, 181, 163, 188, 0, 0, 0, 0, 73, 69, 78, 68, 174, 66, 96, 130}; +inline const std::vector jpeg_red_green = { + 255, 216, 255, 224, 0, 16, 74, 70, 73, 70, 0, 1, 1, 0, 0, 1, 0, 1, 0, + 0, 255, 219, 0, 67, 0, 2, 1, 1, 1, 1, 1, 2, 1, 1, 1, 2, 2, 2, + 2, 2, 4, 3, 2, 2, 2, 2, 5, 4, 4, 3, 4, 6, 5, 6, 6, 6, 5, + 6, 6, 6, 7, 9, 8, 6, 7, 9, 7, 6, 6, 8, 11, 8, 9, 10, 10, 10, + 10, 10, 6, 8, 11, 12, 11, 10, 12, 9, 10, 10, 10, 255, 219, 0, 67, 1, 2, + 2, 2, 2, 2, 2, 5, 3, 3, 5, 10, 7, 6, 7, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 255, 192, 0, 17, 8, 0, 1, 0, 2, 3, 1, 34, 0, + 2, 17, 1, 3, 17, 1, 255, 196, 0, 21, 0, 1, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 255, 196, 0, 27, 16, 1, 0, 0, 7, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 4, 6, 7, 55, 118, + 180, 255, 196, 0, 20, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 9, 255, 196, 0, 32, 17, 0, 0, 3, 9, 1, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 2, 4, 1, 3, 5, 7, 52, 55, 114, 116, 177, 179, + 255, 218, 0, 12, 3, 1, 0, 2, 17, 3, 17, 0, 63, 0, 179, 179, 24, 122, 147, + 214, 164, 57, 224, 0, 92, 174, 173, 123, 145, 186, 208, 70, 205, 27, 153, 28, 220, 83, + 236, 113, 255, 217}; +} // namespace faset::test_images diff --git a/tests/assets_pipeline.cpp b/tests/assets_pipeline.cpp index 7f122aa..882d3bf 100644 --- a/tests/assets_pipeline.cpp +++ b/tests/assets_pipeline.cpp @@ -1,3 +1,4 @@ +#include "assets_image_fixtures.hpp" #include #include #include @@ -111,6 +112,16 @@ int main() { glb(source); auto first = pipeline.import_asset({source}); success(first); + require(first.manifest.at("input_key").at("target_profile") == "desktop-static-pbr-v1" && + first.manifest.at("input_key") + .at("toolchain") + .at("cgltf") + .get() + .size() == 40, + "cache recipe omits the desktop profile or pinned importer toolchain"); + require(first.manifest.at("materials").at(0).at("format") == "faset.material" && + first.manifest.at("materials").at(0).at("version") == 1, + "material data is not explicitly versioned"); require(!first.asset_id.empty(), "persistent identity missing"); auto asset = pipeline.load_asset(first.asset_id); require(asset.meshes.size() == 1 && asset.nodes.size() == 1, "mesh/node extraction"); @@ -125,6 +136,13 @@ int main() { {"physics", {{"mass", 12}}}, {"material", "custom-brass"}}}}; pipeline.set_overrides(first.asset_id, custom); + AssetPipeline rebuilt_cache(root / "rebuilt-cache"); + const auto recovered = rebuilt_cache.import_asset({source}); + success(recovered); + require(recovered.asset_id == first.asset_id && recovered.generation == first.generation && + rebuilt_cache.load_asset(first.asset_id).nodes[0].id == node_id && + rebuilt_cache.overrides(first.asset_id) == custom, + "fresh cache changed source identity, outputs, or authoring overrides"); auto unchanged = pipeline.import_asset({source}); success(unchanged); require(unchanged.cache_hit && unchanged.generation == first.generation, @@ -258,6 +276,99 @@ int main() { "concurrent dependency edit accepted"); require(pipeline.load_asset(ext.asset_id).generation == dependency_active, "concurrent edit changed active"); + // Standalone images share the same identity, generation and failure guarantees. + const auto picture = root / "sprite.PNG"; + save(picture, faset::test_images::png_red_green); + ImportRequest image_request{picture}; + image_request.settings = {{"pixels_per_unit", 20.0}}; + auto image_first = pipeline.import_asset(image_request); + success(image_first); + auto image_asset = pipeline.load_asset(image_first.asset_id); + require(image_asset.meshes.empty() && image_asset.textures.size() == 1, + "Standalone PNG should produce one owned texture"); + require(image_asset.textures[0].mime_type == "image/png" && + image_first.manifest["kind"] == "image", + "PNG kind/MIME"); + require(image_first.manifest["image"]["width"] == 2 && + image_first.manifest["image"]["height"] == 1 && + image_first.manifest["image"]["pixels_per_unit"] == 20.0, + "PNG dimensions and sprite scale recipe"); + const auto texture_id = image_asset.textures[0].id; + pipeline.set_overrides(image_first.asset_id, {{texture_id, {{"gameplay", "preserved"}}}}); + auto image_cache = pipeline.import_asset({picture}); + success(image_cache); + require(image_cache.cache_hit && image_cache.generation == image_first.generation, + "PNG cache/recipe persistence"); + save(picture, faset::test_images::png_blue_white); + auto image_changed = pipeline.import_asset({picture}); + success(image_changed); + require(image_changed.asset_id == image_first.asset_id && + image_changed.generation != image_first.generation, + "PNG reimport content invalidation"); + require(pipeline.load_asset(image_first.asset_id).textures[0].id == texture_id, + "Image subasset ID changed after content edit"); + image_request.settings = {{"pixels_per_unit", 40.0}}; + auto image_recipe = pipeline.import_asset(image_request); + success(image_recipe); + require(image_recipe.generation != image_changed.generation, + "Image settings omitted from recipe hash"); + save(picture, std::string("broken PNG")); + require(pipeline.import_asset({picture}).status == ImportStatus::failed, + "Broken PNG published"); + require(pipeline.load_asset(image_first.asset_id).generation == image_recipe.generation, + "Broken PNG replaced successful generation"); + save(picture, faset::test_images::jpeg_red_green); + require(pipeline.import_asset({picture}).status == ImportStatus::failed, + "Mismatched JPEG content accepted as PNG"); + auto oversized = faset::test_images::png_red_green; + oversized[16] = 0; + oversized[17] = 1; + oversized[18] = 0; + oversized[19] = 0; + save(picture, oversized); + require(pipeline.import_asset({picture}).status == ImportStatus::failed, + "Oversized image accepted"); + save(picture, faset::test_images::png_red_green); + ImportJob* image_job_pointer = nullptr; + ImportJob image_job([&](const ImportProgress& progress) { + if (progress.fraction >= .5f) + image_job_pointer->cancel(); + }); + image_job_pointer = &image_job; + require(pipeline.import_asset({picture}, image_job).status == ImportStatus::cancelled, + "PNG cancellation ignored"); + require(pipeline.load_asset(image_first.asset_id).generation == image_recipe.generation, + "Cancelled PNG replaced active generation"); + image_request.settings = {{"pixels_per_unit", 0}}; + require(pipeline.import_asset(image_request).status == ImportStatus::failed, + "Zero pixels_per_unit accepted"); + save(picture, faset::test_images::png_blue_white); + const auto renamed = root / "renamed.PNG"; + fs::rename(picture, renamed); + fs::rename(picture.string() + ".faset-import.json", + renamed.string() + ".faset-import.json"); + fs::rename(picture.string() + ".faset-overrides.json", + renamed.string() + ".faset-overrides.json"); + auto image_rename = pipeline.import_asset({renamed}); + success(image_rename); + require(image_rename.cache_hit && image_rename.asset_id == image_first.asset_id, + "Image source rename with sidecar lost identity/cache"); + require(pipeline.current_manifest(image_first.asset_id)["source"] == renamed.string(), + "Image rename retained old source pointer"); + require(pipeline.overrides(image_first.asset_id).contains(texture_id), + "Image rename/reimport lost overrides"); + const auto jpeg = root / "sprite.JPEG"; + save(jpeg, faset::test_images::jpeg_red_green); + auto jpeg_import = pipeline.import_asset({jpeg}); + success(jpeg_import); + require(jpeg_import.manifest["image"]["width"] == 2 && + pipeline.load_asset(jpeg_import.asset_id).textures[0].mime_type == "image/jpeg", + "JPEG decoding/dimensions"); + save(root / "same.png", faset::test_images::png_blue_white); + auto other_image = pipeline.import_asset({root / "same.png"}); + success(other_image); + require(other_image.asset_id != image_first.asset_id, + "Independent same-content source must have independent AssetId"); fs::remove_all(root / "cache"); auto restored = pipeline.import_asset({source}); success(restored); @@ -268,7 +379,7 @@ int main() { "cleared cache lost authoring overrides"); fs::remove_all(root); std::cout << "assets: geometry/PBR/texture, GLB/glTF, cache, rename, deletion, overrides, " - "failure, cancellation OK\n"; + "failure, cancellation, standalone PNG/JPEG OK\n"; return 0; } catch (const std::exception& e) { std::cerr << e.what() << "\nFixtures retained: " << root << '\n'; diff --git a/tests/authoring_tests.cpp b/tests/authoring_tests.cpp index 20b4d5c..05b5e6d 100644 --- a/tests/authoring_tests.cpp +++ b/tests/authoring_tests.cpp @@ -80,6 +80,28 @@ int main() { atomic_write(root / "Scenes/courtyard.scene.json", read_text(root / "Scenes/courtyard.scene.json") + "\n"); fails([&] { restarted.save(id); }, "save.disk_conflict"); + const auto configured = service.create("Configured scene"); + const std::string configured_id = configured.at("id"); + const auto setting = service.transact( + configured_id, 0, + Json::array({{{"op", "scene.simulation"}, + {"value", {{"fixed_delta", 0.02}, {"gravity", {0, -10, 0}}}}}})); + CHECK(setting["scene"]["simulation"]["fixed_delta"] == 0.02); + fails( + [&] { + service.transact(configured_id, 1, + Json::array({{{"op", "scene.simulation"}, + {"value", {{"max_catch_up_ticks", 1.5}}}}})); + }, + "simulation.integer"); + fails( + [&] { + service.transact( + configured_id, 1, + Json::array({{{"op", "scene.simulation"}, {"value", {{"fixed_delta", 0}}}}})); + }, + "simulation.fixed_delta"); + CHECK(!service.undo(configured_id, 1)["scene"].contains("simulation")); // Parent cycles are rejected atomically; names never provide identity. fails( [&] { @@ -90,6 +112,25 @@ int main() { }, "entity.cycle"); CHECK(service.query(id)["revision"] == 5); + // A failed recovery publication rejects the entire mutation and its Undo record. + const auto fault = service.create("Journal failure"); + const std::string fault_id = fault["id"]; + const auto journal = root / ".faset/recovery" / (fault_id + ".json"); + const auto saved_journal = read_text(journal); + std::filesystem::remove(journal); + std::filesystem::create_directory(journal); + bool journal_failed = false; + try { + service.transact( + fault_id, 0, + Json::array({{{"op", "entity.create"}, {"name", "Must not publish"}}})); + } catch (const std::exception&) { + journal_failed = true; + } + CHECK(journal_failed); + CHECK(service.query(fault_id) == fault); + std::filesystem::remove(journal); + atomic_write(journal, saved_journal); // Unavailable extension data is retained, including fields unknown to this SDK. auto unknown = make_entity(schemas, "Plugin object"); unknown["components"].push_back({{"id", new_id()}, @@ -127,6 +168,82 @@ int main() { source["entities"] = Json::array(); CHECK(resolve_templates(outer, schemas, loader).conflicts.size() == 1); CHECK(outer["instances"][0]["overrides"].size() == 1); + // Template deletion, suppression restore and source repair are normal Undo transactions. + auto template_doc = service.create("Template management"); + const std::string template_id = template_doc["id"]; + service.transact( + template_id, 0, + Json::array({{{"op", "template.instance"}, + {"instance", {{"id", "inst"}, {"source", "Scenes/absent.json"}}}}})); + const Json suppressed = {{"path", Json::array()}, {"object", entity_id}}; + service.transact( + template_id, 1, + Json::array( + {{{"op", "template.suppress"}, {"instance", "inst"}, {"value", suppressed}}})); + auto restored = service.transact( + template_id, 2, + Json::array( + {{{"op", "template.restore"}, {"instance", "inst"}, {"address", suppressed}}, + {{"op", "template.source_set"}, + {"instance", "inst"}, + {"source", "Scenes/courtyard.scene.json"}}})); + CHECK(restored["scene"]["instances"][0]["suppressed"].empty()); + CHECK(service + .transact(template_id, 3, + Json::array({{{"op", "template.remove"}, + {"instance", "inst"}}}))["scene"]["instances"] + .empty()); + CHECK(service.undo(template_id, 4)["scene"]["instances"].size() == 1); + const auto added = make_entity(schemas, "Local object"); + service.transact( + template_id, 5, + Json::array({{{"op", "template.add"}, {"instance", "inst"}, {"value", added}}})); + auto replacement = added; + replacement["name"] = "Edited local object"; + replacement["components"].push_back({{"id", new_id()}, + {"type", "faset.mesh"}, + {"version", 1}, + {"fields", schemas.default_fields("faset.mesh")}}); + const auto replaced = service.transact( + template_id, 6, + Json::array( + {{{"op", "template.addition_set"}, {"instance", "inst"}, {"value", replacement}}})); + CHECK(replaced["scene"]["instances"][0]["additions"][0]["components"].size() == 2); + auto malformed = replacement; + malformed["components"][1]["fields"]["primitive"] = "unsupported"; + fails( + [&] { + service.transact(template_id, 7, + Json::array({{{"op", "template.addition_set"}, + {"instance", "inst"}, + {"value", malformed}}})); + }, + "validation.enum"); + // Malformed address records never reach journals; valid unresolved targets stay + // recoverable. + for (const auto& broken : Json::array( + {{{"id", "bad"}, + {"source", "missing"}, + {"overrides", Json::array({{{"address", "oops"}, {"value", 42}}})}}, + {{"id", "bad"}, + {"source", "missing"}, + {"suppressed", Json::array({{{"object", "ok"}, {"path", 42}}})}}, + {{"id", "bad"}, + {"source", "missing"}, + {"reparents", + Json::array({{{"object", {{"object", "ok"}}}, {"parent", false}}})}}})) { + const auto before = service.query(template_id); + bool rejected = false; + try { + service.transact( + template_id, before["revision"], + Json::array({{{"op", "template.instance"}, {"instance", broken}}})); + } catch (const Error&) { + rejected = true; + } + CHECK(rejected); + CHECK(service.query(template_id) == before); + } // Stable FieldId survives a label rename; incompatible migrations require an explicit // decision. SchemaRegistry newer; @@ -147,6 +264,53 @@ int main() { CHECK(migrated["fields"]["speed"] == 3.0); CHECK(migrated["fields"]["enabled"] == true); CHECK(migrated["fields"]["unrecognized"] == "preserve"); + // Local additions and overrides remap references within their own instance; future schemas + // stay opaque. + auto refs = builtin_schemas(); + refs.register_schema({{"id", "ref"}, + {"version", 1}, + {"fields", {{"target", {{"type", "entity_ref"}, {"default", ""}}}}}}); + auto ref_entity = [&](const std::string& name, const std::string& target, int version = 1) { + return Json{ + {"id", name}, + {"name", name}, + {"parent", nullptr}, + {"components", + Json::array({{{"id", name + "-ref"}, + {"type", "ref"}, + {"version", version}, + {"fields", {{"target", target}, {"opaque", {{"saved", true}}}}}}})}}; + }; + auto ref_source = make_scene("References"); + ref_source["entities"] = + Json::array({ref_entity("a", "b"), ref_entity("b", "a"), ref_entity("future", "a", 2)}); + auto ref_outer = make_scene("Instances"); + ref_outer["instances"] = Json::array( + {{{"id", "ref-instance"}, + {"source", "ref-source"}, + {"additions", Json::array({ref_entity("local", "b")})}, + {"overrides", + Json::array( + {{{"address", {{"object", "a"}, {"component", "a-ref"}, {"field", "target"}}}, + {"value", "local"}}})}}}); + const auto ref_result = + resolve_templates(ref_outer, refs, [&](const std::string&) { return ref_source; }); + CHECK(ref_result.conflicts.empty()); + const auto& re = ref_result.scene["entities"]; + CHECK(re[0]["components"][0]["fields"]["target"] == re[3]["id"]); + CHECK(re[3]["components"][0]["fields"]["target"] == re[1]["id"]); + CHECK(re[2]["components"][0]["fields"] == + ref_source["entities"][2]["components"][0]["fields"]); + AuthoringService opaque(root / "opaque", refs); + const auto opaque_doc = opaque.create("Future"); + const std::string opaque_id = opaque_doc["id"]; + opaque.transact( + opaque_id, 0, + Json::array({{{"op", "entity.create"}, {"entity", ref_entity("a", "a", 2)}}})); + const auto duplicated = opaque.transact( + opaque_id, 1, Json::array({{{"op", "entity.duplicate"}, {"entity", "a"}}})); + CHECK(duplicated["scene"]["entities"][1]["components"][0]["fields"] == + duplicated["scene"]["entities"][0]["components"][0]["fields"]); // Full TRS reparent, including parent rotation/scale, preserves world placement. auto hierarchy = make_scene("Transforms"); auto parent = make_entity(schemas, "Parent"); diff --git a/tests/editor_gui_mcp_test.py b/tests/editor_gui_mcp_test.py new file mode 100644 index 0000000..b87d578 --- /dev/null +++ b/tests/editor_gui_mcp_test.py @@ -0,0 +1,110 @@ +"""Real native Editor + stdio MCP regression; requires a desktop and Vulkan. + +Repeated fresh captures cover presentation back-pressure in hidden/occluded windows. +The test deliberately terminates its owned GUI process after assertions; closing a +client must not close the user's interactive Editor. +""" +import base64 +import json +from pathlib import Path +import queue +import subprocess +import sys +import tempfile +import threading + + +def run(executable, project): + process = subprocess.Popen( + [executable, "--project", str(project), "--new", "GUI MCP acceptance", + "--dimension", "3", "--mcp", "--gui"], + stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE, + text=True, encoding="utf-8") + replies, diagnostics = queue.Queue(), [] + + def read_stdout(): + try: + for line in process.stdout: + replies.put(json.loads(line)) + except Exception as error: + replies.put(error) + finally: + replies.put(None) + + def read_stderr(): + for line in process.stderr: + diagnostics.append(line) + + readers = [threading.Thread(target=read_stdout, daemon=True), + threading.Thread(target=read_stderr, daemon=True)] + for reader in readers: + reader.start() + sequence = 0 + + def request(method, params): + nonlocal sequence + sequence += 1 + process.stdin.write(json.dumps({"jsonrpc": "2.0", "id": sequence, + "method": method, "params": params}) + "\n") + process.stdin.flush() + response = replies.get(timeout=60) + assert isinstance(response, dict) and response.get("id") == sequence, response + assert "error" not in response, response + return response["result"] + + def call(name, arguments=None, error=False): + result = request("tools/call", {"name": name, "arguments": arguments or {}}) + assert result.get("isError", False) == error, result + return result + + try: + request("initialize", {"protocolVersion": "2025-06-18", "capabilities": {}, + "clientInfo": {"name": "faset-gui-acceptance", "version": "1"}}) + process.stdin.write('{"jsonrpc":"2.0","method":"notifications/initialized"}\n') + process.stdin.flush() + document = call("faset_documents")["structuredContent"]["documents"][0] + edited = call("faset_scene_edit", { + "document": document["id"], "revision": document["revision"], + "operations": [{"op": "entity.create", "entity": { + "id": "mcp-cube", "name": "Shared GUI and MCP cube 世界", "parent": None, + "components": [ + {"id": "cube-transform", "type": "faset.transform", "version": 1, + "fields": {"position": [0, 1, 0], "rotation": [0, 0, 0], "scale": [1, 1, 1]}}, + {"id": "cube-mesh", "type": "faset.mesh", "version": 1, + "fields": {"primitive": "cube", "asset": "", "color": [0.65, 0.5, 0.85, 1]}} + ]}}]})["structuredContent"] + call("faset_scene_edit", {"document": document["id"], "revision": document["revision"], + "operations": [{"op": "scene.rename", "name": "Stale"}]}, True) + images = [] + for index in range(12): + relative = ".faset/screenshots/full.png" if index == 0 else ".faset/screenshots/view.png" + result = call("faset_editor_capture", {"path": relative, "viewport_only": index != 0}) + image = next(item for item in result["content"] if item["type"] == "image") + data = base64.b64decode(image["data"], validate=True) + assert data.startswith(b"\x89PNG\r\n\x1a\n") and len(data) > 1000 + assert (project / relative).read_bytes() == data + images.append(data) + assert call("faset_capabilities")["structuredContent"]["viewport_capture"] + call("faset_editor_capture", {"path": "../outside.png"}, True) + call("faset_editor_capture", {"path": "wrong.jpg"}, True) + undone = call("faset_undo", {"document": document["id"], + "revision": edited["revision"]})["structuredContent"] + assert all(entity["id"] != "mcp-cube" for entity in undone["scene"]["entities"]) + assert process.poll() is None + finally: + process.stdin.close() + process.terminate() + try: + process.wait(timeout=20) + except subprocess.TimeoutExpired: + process.kill() + process.wait(timeout=10) + for reader in readers: + reader.join(timeout=5) + errors = "".join(diagnostics) + assert "Validation Error" not in errors, errors + + +with tempfile.TemporaryDirectory(prefix="faset-gui-mcp-") as directory: + run(sys.argv[1], Path(directory)) +print("Native GUI + MCP shared authoring, revision conflict, Undo, 12 fresh PNG captures and continued responsiveness passed") diff --git a/tests/editor_session_tests.cpp b/tests/editor_session_tests.cpp new file mode 100644 index 0000000..77bcf72 --- /dev/null +++ b/tests/editor_session_tests.cpp @@ -0,0 +1,75 @@ +#include +#include +#include + +int main() { + using namespace faset; + const auto root = std::filesystem::temp_directory_path() / ("faset-session-" + new_id()); + try { + editor::Session session({root, FASET_TEST_ENGINE, {}}); + session.scaffold("Settings", 3); + auto document = session.authoring().create("Start", 3); + session.authoring().save(document.at("id"), "Scenes/main.scene.json"); + auto& commands = session.commands(); + const auto initial = commands.call("faset_project_settings_get", Json::object()); + auto changed = commands.call("faset_project_settings_set", + {{"revision", initial.at("revision")}, + {"settings", + {{"name", "Проект 世界"}, + {"dimension", 2}, + {"start_scene", "Scenes/main.scene.json"}}}}); + require(changed.at("settings").at("name") == "Проект 世界" && + session.project().at("dimension") == 2, + "test", "Project settings were not saved"); + require(session.authoring().query(document.at("id")).at("scene").at("dimension") == 3, + "test", "Project defaults changed the existing scene"); + auto rejects = [&](const Json& request, const std::string& code) { + try { + commands.call("faset_project_settings_set", request); + } catch (const Error& error) { + require(error.json().at("code") == code, "test", "Wrong project error"); + return; + } + throw std::runtime_error("Invalid project edit was accepted"); + }; + rejects({{"revision", initial.at("revision")}, {"settings", {{"name", "Stale"}}}}, + "revision.conflict"); + for (const auto& [field, value, code] : + std::vector>{ + {"name", "", "project.name"}, + {"dimension", 4, "project.dimension"}, + {"id", "replace-id", "project.setting"}, + {"start_scene", "Scenes/missing.scene.json", "project.start_scene"}}) { + rejects({{"revision", changed.at("revision")}, {"settings", {{field, value}}}}, code); + require(commands.call("faset_project_settings_get", Json::object()) == changed, "test", + "Rejected project edit changed state"); + } + auto external = session.project(); + external["custom_tool"] = {{"keep", true}}; + atomic_write_json(root / "project.faset.json", external); + rejects({{"revision", changed.at("revision")}, {"settings", {{"name", "Race"}}}}, + "revision.conflict"); + const auto reloaded = commands.call("faset_project_settings_get", Json::object()); + changed = + commands.call("faset_project_settings_set", {{"revision", reloaded.at("revision")}, + {"settings", {{"name", "Preserved"}}}}); + require(changed.at("settings").at("custom_tool").at("keep") == true, "test", + "Saving settings erased unknown project metadata"); + external["version"] = 999; + atomic_write_json(root / "project.faset.json", external); + bool rejected = false; + try { + session.project(); + } catch (const Error& error) { + rejected = error.json().at("code") == "project.version"; + } + require(rejected, "test", "Future project version was reinterpreted"); + std::filesystem::remove_all(root); + std::cout << "Project settings validation, save, external revision conflicts and opaque " + "metadata passed\n"; + return 0; + } catch (const std::exception& error) { + std::cerr << error.what() << "\nFixture retained at " << root << '\n'; + return 1; + } +} diff --git a/tests/editor_ui_gizmos.cpp b/tests/editor_ui_gizmos.cpp new file mode 100644 index 0000000..90fd246 --- /dev/null +++ b/tests/editor_ui_gizmos.cpp @@ -0,0 +1,167 @@ +#include +#include +#include +#include +using namespace faset; +namespace { +void check(bool value, const char* message) { + if (!value) + throw std::runtime_error(message); +} +render::Event mouse(render::Event::Type type, render::Vec2 p) { + render::Event result; + result.type = type; + result.button = 1; + result.x = p[0]; + result.y = p[1]; + return result; +} +void click(editor::EditorUI& ui, const std::string& id) { + const auto* widget = ui.widgets().find(id); + check(widget, "Missing gizmo test widget"); + const auto r = widget->rect.intersection(widget->clip); + check(r.width > 0 && r.height > 0, "Clipped gizmo test widget"); + const render::Vec2 p{r.x + r.width * .5f, r.y + r.height * .5f}; + ui.frame({mouse(render::Event::Type::MouseDown, p), mouse(render::Event::Type::MouseUp, p)}); +} +render::Vec2 project(editor::EditorUI& ui, render::Vec3 p) { + const auto& s = ui.snapshot(); + const auto& m = s.view_projection; + const float w = m[3] * p[0] + m[7] * p[1] + m[11] * p[2] + m[15]; + return {s.scene_rect[0] + + ((m[0] * p[0] + m[4] * p[1] + m[8] * p[2] + m[12]) / w + 1) * s.scene_rect[2] * .5f, + s.scene_rect[1] + ((m[1] * p[0] + m[5] * p[1] + m[9] * p[2] + m[13]) / w + 1) * + s.scene_rect[3] * .5f}; +} +render::Vec2 along(render::Vec2 a, render::Vec2 b, float t) { + return {a[0] + (b[0] - a[0]) * t, a[1] + (b[1] - a[1]) * t}; +} +void near(float a, float b, const char* message) { + check(std::abs(a - b) < .002f, message); +} +} // namespace +int main() { + const auto root = std::filesystem::temp_directory_path() / ("faset-gizmo-ui-" + new_id()); + try { + editor::Session session({root, FASET_TEST_ENGINE, root}); + render::Renderer renderer({1280, 900, "Parented gizmo acceptance", true, true}); + editor::EditorUI ui(session, renderer, + std::filesystem::path(FASET_TEST_ENGINE) / "assets/fonts/NotoSans.ttf", + std::filesystem::path(FASET_TEST_ENGINE) / "assets/ui/dark.json"); + ui.frame({}); + auto query = [&] { return session.authoring().query(ui.current_document()); }; + auto parent = + authoring::make_entity(session.authoring().schemas(), "Rotated scaled parent"); + parent["components"][0]["fields"] = { + {"position", {.5, .6, 0}}, {"rotation", {0, .8, 0}}, {"scale", {2, 2, 2}}}; + auto child = + authoring::make_entity(session.authoring().schemas(), "Child", parent.at("id")); + child["components"].push_back( + {{"id", new_id()}, + {"type", "faset.mesh"}, + {"version", 1}, + {"fields", {{"asset", ""}, {"primitive", "cube"}, {"color", {.6, .6, .65, 1.}}}}}); + session.authoring().transact(ui.current_document(), query().at("revision"), + Json::array({{{"op", "entity.create"}, {"entity", parent}}, + {{"op", "entity.create"}, {"entity", child}}})); + ui.select_entity(child.at("id")); + ui.frame({}); + const auto original_world = render::transform({.5f, .6f, 0}, {0, .8f, 0}, {2, 2, 2}); + auto check_parent = [&] { + check(query()["scene"]["entities"][0] == parent, "Child gizmo must not mutate parent"); + }; + auto check_world = [&](render::Mat4 expected) { + check(!ui.snapshot().draws.empty(), "Rendered child mesh missing"); + for (std::size_t i = 0; i < 16; ++i) + near(ui.snapshot().draws[0].model[i], expected[i], + "Rendered child world transform mismatch"); + }; + check_world(original_world); + const auto center = project(ui, {.5f, .6f, 0}); + const auto tip = project(ui, {1.94f, .6f, 0}); + const auto before = query()["revision"].get(); + ui.frame({mouse(render::Event::Type::MouseDown, along(center, tip, .65f))}); + ui.frame({mouse(render::Event::Type::MouseMove, along(center, tip, .9f))}); + ui.frame({mouse(render::Event::Type::MouseMove, along(center, tip, 1.15f))}); + check(query()["revision"] == before, "Multi-frame Move only previews before release"); + auto moved = original_world; + moved[12] += .72f; + check_world(moved); + ui.frame({mouse(render::Event::Type::MouseUp, along(center, tip, 1.15f))}); + check(query()["revision"] == before + 1, "Move commits exactly one transaction"); + check_world(moved); + check_parent(); + click(ui, "undo"); + check_world(original_world); + + // Rotate and Scale expose the selected object's local axes, including its parent. + const render::Vec3 local_x{std::cos(.8f), 0, -std::sin(.8f)}; + const auto local_tip = project(ui, {.5f + local_x[0] * 1.44f, .6f, local_x[2] * 1.44f}); + for (const std::string mode : {"Rotate", "Scale"}) { + click(ui, "gizmo-" + mode); + const auto revision = query()["revision"].get(); + ui.frame({mouse(render::Event::Type::MouseDown, along(center, local_tip, .7f))}); + ui.frame({mouse(render::Event::Type::MouseMove, along(center, local_tip, .85f))}); + ui.frame({mouse(render::Event::Type::MouseMove, along(center, local_tip, 1.f))}); + check(query()["revision"] == revision, "Local-axis gizmo preview does not author"); + ui.frame({mouse(render::Event::Type::MouseUp, along(center, local_tip, 1.f))}); + check(query()["revision"] == revision + 1, "Local-axis gizmo commits one transaction"); + const auto fields = query()["scene"]["entities"][1]["components"][0]["fields"]; + if (mode == "Rotate") { + near(fields["rotation"][0], .3f * 3.141593f, "Rotate edits local X radians"); + near(fields["rotation"][1], 0, "Rotate preserves local Y"); + check_world(render::multiply(original_world, + render::transform({}, {.3f * 3.141593f, 0, 0}))); + } else { + near(fields["scale"][0], 1.3f, "Scale edits local X"); + near(fields["scale"][1], 1, "Scale preserves local Y"); + check_world( + render::multiply(original_world, render::transform({}, {}, {1.3f, 1, 1}))); + } + check_parent(); + click(ui, "undo"); + check_world(original_world); + } + click(ui, "gizmo-Move"); + const auto cancelled = query()["revision"]; + ui.frame({mouse(render::Event::Type::MouseDown, along(center, tip, .65f))}); + ui.frame({mouse(render::Event::Type::MouseMove, along(center, tip, 1.15f))}); + render::Event escape; + escape.type = render::Event::Type::KeyDown; + escape.key = "Escape"; + ui.frame({escape, mouse(render::Event::Type::MouseUp, along(center, tip, 1.15f))}); + check(query()["revision"] == cancelled, "Escape cancels gizmo without authoring"); + check_world(original_world); + session.authoring().transact(ui.current_document(), query().at("revision"), + Json::array({{{"op", "component.set"}, + {"entity", child.at("id")}, + {"component", child["components"][0]["id"]}, + {"field", "rotation"}, + {"value", {.3, .4, .2}}}})); + ui.frame({}); + click(ui, "gizmo-Rotate"); + const auto rotated_local = render::transform({}, {.3f, .4f, .2f}); + const auto rotated_world = render::multiply(original_world, rotated_local); + check_world(rotated_world); + const auto y_tip = project(ui, {.5f + rotated_world[4] * .72f, + .6f + rotated_world[5] * .72f, rotated_world[6] * .72f}); + ui.frame({mouse(render::Event::Type::MouseDown, along(center, y_tip, .7f))}); + ui.frame({mouse(render::Event::Type::MouseMove, along(center, y_tip, .9f))}); + ui.frame({mouse(render::Event::Type::MouseUp, along(center, y_tip, .9f))}); + check_world( + render::multiply(rotated_world, render::transform({}, {0, .2f * 3.141593f, 0}))); + check_parent(); + click(ui, "undo"); + check_world(rotated_world); + renderer.render(ui.snapshot()); + renderer.capture(root / "gizmos.ppm"); + check(renderer.stats().validation_errors == 0, "Vulkan validation"); + std::cout << "Parented world Move/local Rotate/local Scale, multi-frame preview, Undo, " + "Escape and composed local rotation passed. " + << root << '\n'; + return 0; + } catch (const std::exception& error) { + std::cerr << error.what() << "\nRetained: " << root << '\n'; + return 1; + } +} diff --git a/tests/editor_ui_launcher.cpp b/tests/editor_ui_launcher.cpp new file mode 100644 index 0000000..5816895 --- /dev/null +++ b/tests/editor_ui_launcher.cpp @@ -0,0 +1,138 @@ +#include +#include +#include +using namespace faset; +namespace { +void check(bool value, const std::string& message) { + if (!value) + throw std::runtime_error(message); +} +render::Event key(std::string name, bool control = false) { + render::Event e; + e.type = render::Event::Type::KeyDown; + e.key = std::move(name); + e.control = control; + return e; +} +void click(editor::ProjectLauncher& launcher, const std::string& id) { + const auto* w = launcher.widgets().find(id); + check(w, "Missing launcher widget: " + id); + const auto rect = w->rect.intersection(w->clip); + check(rect.width > 0 && rect.height > 0, "Hidden launcher widget: " + id); + render::Event down; + down.type = render::Event::Type::MouseDown; + down.button = 1; + down.x = rect.x + rect.width * .5f; + down.y = rect.y + rect.height * .5f; + auto up = down; + up.type = render::Event::Type::MouseUp; + launcher.frame({down, up}); +} +void text(editor::ProjectLauncher& launcher, const std::string& id, const std::string& value, + bool commit = true) { + click(launcher, id); + render::Event input; + input.type = render::Event::Type::TextInput; + input.text = value; + std::vector events{key("A", true), input}; + if (commit) + events.push_back(key("Return")); + launcher.frame(events); +} +} // namespace +int main() { + const auto root = std::filesystem::temp_directory_path() / ("faset-launcher-ui-" + new_id()); + try { + const auto existing = root / "Existing project"; + atomic_write_json(existing / "project.faset.json", {{"format", "faset.project"}, + {"version", 1}, + {"name", "Existing project"}, + {"dimension", 2}}); + const auto recents = root / "recent-projects.json"; + atomic_write_json(recents, Json::array({existing.string(), (root / "Missing").string(), + existing.string()})); + render::Renderer renderer({1100, 720, "Project launcher acceptance", true, true}); + { + editor::ProjectLauncher launcher(renderer, FASET_TEST_ENGINE, {}, recents); + launcher.frame({}); + check(launcher.widgets().find("launcher-create")->selected, + "No initial path starts Create"); + check(launcher.widgets().find("launcher-recent-0") && + !launcher.widgets().find("launcher-recent-1"), + "Recent list includes real valid unique projects only"); + text(launcher, "launcher-name", "Тестовый проект"); + text(launcher, "launcher-path", existing.string()); + click(launcher, "launcher-submit"); + check(!launcher.selection() && !launcher.widgets().find("launcher-error")->text.empty(), + "Create must reject nonempty existing project"); + text(launcher, "launcher-path", (root / "New Game").string()); + click(launcher, "launcher-2d"); + check(launcher.widgets().find("launcher-2d")->selected, "2D project selection"); + renderer.render(launcher.snapshot()); + renderer.capture(root / "launcher-create.ppm"); + launcher.frame({key("Return", true)}); + check(launcher.selection() && launcher.selection()->create && + launcher.selection()->dimension == 2 && + launcher.selection()->name == "Тестовый проект", + "Create through keyboard returns typed selection"); + check(!std::filesystem::exists(root / "New Game"), + "Launcher does not create a partial project before Session scaffold"); + } + { + editor::ProjectLauncher launcher(renderer, FASET_TEST_ENGINE, root / "Missing", + recents); + launcher.frame({}); + click(launcher, "launcher-submit"); + check(!launcher.selection() && !launcher.widgets().find("launcher-error")->text.empty(), + "Open validates missing directory"); + click(launcher, "launcher-recent-0"); + check(launcher.widgets().find("launcher-path")->text == existing.string(), + "Recent selection fills actual path"); + click(launcher, "launcher-browse"); + check(launcher.widgets().find("launcher-browser")->visible, + "Native retained directory browser opens"); + text(launcher, "browser-path", (root / "Absent folder").string()); + launcher.frame({key("Return", true)}); + check(launcher.widgets().find("launcher-browser")->visible && + !launcher.widgets().find("browser-choose")->enabled, + "Invalid typed directory cannot silently select prior directory"); + text(launcher, "browser-path", existing.string()); + click(launcher, "browser-up"); + check(launcher.widgets().find("browser-path")->text == root.string(), + "Folder browser Up navigation"); + click(launcher, "browser-entry-0"); + check(launcher.widgets().find("browser-path")->text == existing.string(), + "Directory list navigation"); + renderer.render(launcher.snapshot()); + renderer.capture(root / "launcher-browser.ppm"); + click(launcher, "browser-choose"); + check(!launcher.widgets().find("launcher-browser")->visible, + "Choose closes directory browser"); + launcher.frame({key("Return", true)}); + check(launcher.selection() && !launcher.selection()->create && + launcher.selection()->path == existing && + launcher.selection()->dimension == 2, + "Open reads project metadata"); + } + { + const auto corrupt = root / "Corrupt"; + atomic_write_json(corrupt / "project.faset.json", + {{"format", "faset.project"}, {"version", 9}, {"name", "Future"}}); + editor::ProjectLauncher launcher(renderer, FASET_TEST_ENGINE, corrupt, recents); + launcher.frame({}); + click(launcher, "launcher-submit"); + check(!launcher.selection() && !launcher.widgets().find("launcher-error")->text.empty(), + "Unsupported project version is rejected"); + launcher.frame({key("Escape")}); + check(launcher.cancelled(), "Escape cancels launcher"); + } + check(renderer.stats().validation_errors == 0, "Launcher Vulkan validation"); + std::cout + << "Launcher Unicode/create/open/validation/recents/directory browser/keyboard passed. " + << root << '\n'; + return 0; + } catch (const std::exception& e) { + std::cerr << e.what() << "\nRetained: " << root << '\n'; + return 1; + } +} diff --git a/tests/editor_ui_project_settings.cpp b/tests/editor_ui_project_settings.cpp new file mode 100644 index 0000000..bc1c6d9 --- /dev/null +++ b/tests/editor_ui_project_settings.cpp @@ -0,0 +1,135 @@ +#include +#include +#include +using namespace faset; +namespace { +void check(bool value, const std::string& message) { + if (!value) + throw std::runtime_error(message); +} +render::Event key(std::string name, bool control = false) { + render::Event e; + e.type = render::Event::Type::KeyDown; + e.key = std::move(name); + e.control = control; + return e; +} +void click(editor::EditorUI& ui, const std::string& id) { + const auto* w = ui.widgets().find(id); + check(w, "Missing widget: " + id); + const auto r = w->rect.intersection(w->clip); + check(r.width > 0 && r.height > 0, "Hidden widget: " + id); + render::Event down; + down.type = render::Event::Type::MouseDown; + down.button = 1; + down.x = r.x + r.width * .5f; + down.y = r.y + r.height * .5f; + auto up = down; + up.type = render::Event::Type::MouseUp; + ui.frame({down, up}); +} +void text(editor::EditorUI& ui, const std::string& id, const std::string& value) { + click(ui, id); + render::Event input; + input.type = render::Event::Type::TextInput; + input.text = value; + ui.frame({key("A", true), input, key("Return")}); +} +void open(editor::EditorUI& ui) { + click(ui, "menu-File"); + click(ui, "project-settings"); +} +} // namespace +int main() { + const auto root = + std::filesystem::temp_directory_path() / ("faset-project-settings-ui-" + new_id()); + try { + const auto project_file = root / "project.faset.json"; + atomic_write_json(project_file, {{"format", "faset.project"}, + {"version", 1}, + {"id", new_id()}, + {"name", "Original project"}, + {"dimension", 3}, + {"custom_metadata", {{"preserve", true}}}}); + editor::Session session({root, FASET_TEST_ENGINE, root}); + render::Renderer renderer({1280, 800, "Project settings acceptance", true, true}); + editor::EditorUI ui(session, renderer, + std::filesystem::path(FASET_TEST_ENGINE) / "assets/fonts/NotoSans.ttf", + std::filesystem::path(FASET_TEST_ENGINE) / "assets/ui/dark.json"); + ui.frame({}); + click(ui, "add-cube"); + session.authoring().save(ui.current_document(), "Scenes/Main.scene.json"); + const auto other = session.authoring().create("Other", 2); + session.authoring().save(other.at("id"), "Scenes/Other.scene.json"); + ui.frame({}); + const auto document_before = session.authoring().query(ui.current_document()); + const auto project_before = read_json(project_file); + open(ui); + text(ui, "project-settings-name", "Unsaved project name"); + click(ui, "project-settings-cancel"); + check(read_json(project_file) == project_before, + "Cancel discards only form draft without writing project"); + open(ui); + check(ui.widgets().find("project-settings-name")->text == "Original project", + "Opening settings reloads current saved values"); + text(ui, "project-settings-name", "Новый проект"); + click(ui, "project-settings-2d"); + click(ui, "project-scene-choice-1"); + check(ui.widgets().find("project-settings-start")->text == "Scenes/Other.scene.json", + "Saved scene chooser sets project-relative path"); + click(ui, "project-settings-save"); + auto saved = read_json(project_file); + check(saved["name"] == "Новый проект" && saved["dimension"] == 2 && + saved["start_scene"] == "Scenes/Other.scene.json", + "Explicit Save project persists typed settings"); + check(saved["custom_metadata"] == project_before["custom_metadata"] && + saved["id"] == project_before["id"], + "Project settings preserve unknown metadata and project identity"); + check(session.authoring().query(ui.current_document()) == document_before, + "Project settings do not change current document, dimension, revision or Undo"); + open(ui); + text(ui, "project-settings-start", "Scenes/Missing.scene.json"); + click(ui, "project-settings-save"); + check(ui.widgets().find("project-settings-panel")->visible && + !ui.widgets().find("project-settings-error")->text.empty() && + read_json(project_file) == saved, + "Invalid start scene keeps saved project and form open"); + click(ui, "project-settings-reload"); + text(ui, "project-settings-name", "Local draft"); + const auto external = session.commands().call("faset_project_settings_get", Json::object()); + session.commands().call( + "faset_project_settings_set", + {{"revision", external.at("revision")}, {"settings", {{"name", "External edit"}}}}); + click(ui, "project-settings-save"); + check(ui.widgets().find("project-settings-panel")->visible && + read_json(project_file)["name"] == "External edit" && + ui.widgets().find("project-settings-name")->text == "Local draft", + "Revision conflict preserves external project and local draft"); + check(ui.widgets().find("project-settings-error")->text.find("reload") != std::string::npos, + "Conflict directs user to reload"); + click(ui, "project-settings-reload"); + check(ui.widgets().find("project-settings-name")->text == "External edit", + "Explicit Reload saved replaces stale form draft"); + click(ui, "project-settings-3d"); + click(ui, "project-scene-choice-0"); + click(ui, "project-settings-save"); + check(read_json(project_file)["start_scene"] == "Scenes/Main.scene.json", + "Save after explicit reload uses new content revision"); + check(session.authoring().query(ui.current_document()) == document_before, + "Project settings remain outside scene Undo throughout conflicts"); + open(ui); + renderer.render(ui.snapshot()); + renderer.capture(root / "project-settings.ppm"); + ui.frame({key("Escape")}); + check(!ui.widgets().find("project-settings-panel")->visible, + "Escape closes project settings without saving"); + check(renderer.stats().validation_errors == 0, "Project settings Vulkan validation"); + std::cout << "Project settings name/type/start-scene Save/Cancel/Reload/conflict, metadata " + "preservation and separate scene Undo passed. " + << root << '\n'; + return 0; + } catch (const std::exception& e) { + std::cerr << e.what() << "\nRetained: " << root << '\n'; + return 1; + } +} diff --git a/tests/editor_ui_reload.cpp b/tests/editor_ui_reload.cpp new file mode 100644 index 0000000..a982269 --- /dev/null +++ b/tests/editor_ui_reload.cpp @@ -0,0 +1,127 @@ +#include +#include +#include +#include +using namespace faset; +namespace { +void check(bool value, const std::string& message) { + if (!value) + throw std::runtime_error(message); +} +render::Event key(std::string name, bool control = false) { + render::Event e; + e.type = render::Event::Type::KeyDown; + e.key = std::move(name); + e.control = control; + return e; +} +void click(editor::EditorUI& ui, const std::string& id) { + const auto* w = ui.widgets().find(id); + check(w, "Missing widget: " + id); + const auto r = w->rect.intersection(w->clip); + check(r.width > 0 && r.height > 0, "Hidden widget: " + id); + render::Event down; + down.type = render::Event::Type::MouseDown; + down.button = 1; + down.x = r.x + r.width * .5f; + down.y = r.y + r.height * .5f; + auto up = down; + up.type = render::Event::Type::MouseUp; + ui.frame({down, up}); +} +void poll(editor::EditorUI& ui) { + std::this_thread::sleep_for(std::chrono::milliseconds(550)); + ui.frame({}); +} +} // namespace +int main() { + const auto root = std::filesystem::temp_directory_path() / ("faset-ui-reload-" + new_id()); + try { + const auto styles = root / "styles/dark.json", + layout_path = root / "styles/editor-layout.json"; + auto theme = read_json(std::filesystem::path(FASET_TEST_ENGINE) / "assets/ui/dark.json"); + auto layout = + read_json(std::filesystem::path(FASET_TEST_ENGINE) / "assets/ui/editor-layout.json"); + atomic_write_json(styles, theme); + atomic_write_json(layout_path, layout); + editor::Session session({root / "project", FASET_TEST_ENGINE, root}); + render::Renderer renderer({1280, 800, "Style reload acceptance", true, true}); + editor::EditorUI ui(session, renderer, + std::filesystem::path(FASET_TEST_ENGINE) / "assets/fonts/NotoSans.ttf", + styles); + ui.frame({}); + click(ui, "add-cube"); + click(ui, "object-name"); + render::Event input; + input.type = render::Event::Type::TextInput; + input.text = "Unfinished name"; + ui.frame({key("A", true), input}); + const auto revision = session.authoring().query(ui.current_document()).at("revision"); + const auto width = ui.widgets().find("scene_panel")->rect.width; + renderer.render(ui.snapshot()); + const auto pixels_before = renderer.pixels(); + theme["surface"] = {.18, .24, .12, 1}; + layout["root"]["children"][2]["children"][0]["layout"]["width"] = 270; + atomic_write_json(styles, theme); + atomic_write_json(layout_path, layout); + poll(ui); + check(ui.widgets().find("scene_panel")->rect.width == 270 && width != 270, + "Valid layout edit changes live panel geometry"); + check(ui.widgets().focused_id() == "object-name" && + ui.widgets().find("object-name")->text == "Unfinished name", + "Valid reload preserves focus and unfinished text"); + renderer.render(ui.snapshot()); + const auto pixels_after = renderer.pixels(); + const auto pixel = (500 * renderer.width() + 10) * 4; + check(pixels_before.at(pixel) != pixels_after.at(pixel) || + pixels_before.at(pixel + 1) != pixels_after.at(pixel + 1), + "Valid theme edit changes actual Vulkan pixels"); + check(session.authoring().query(ui.current_document()).at("revision") == revision, + "Presentation reload does not author the scene"); + const auto working_theme = ui.widgets().theme().to_json(); + const auto working_menubar = ui.widgets().find("menubar")->layout.height; + auto bad_layout = layout; + bad_layout["root"]["children"][0]["layout"]["height"] = 68; + bad_layout["root"]["children"].back()["text"] = 7; + theme["surface"] = {.3, .08, .2, 1}; + atomic_write_json(styles, theme); + atomic_write_json(layout_path, bad_layout); + poll(ui); + check(ui.widgets().theme().to_json() == working_theme && + ui.widgets().find("menubar")->layout.height == working_menubar, + "Invalid layout rejects both candidate files atomically"); + check(ui.widgets().find("scene_panel")->rect.width == 270 && + ui.widgets().focused_id() == "object-name" && + ui.widgets().find("object-name")->text == "Unfinished name", + "Invalid reload retains last good layout and editing state"); + const auto log_count = session.logs().size(); + poll(ui); + check(session.logs().size() == log_count, + "Unchanged invalid file does not flood editor logs"); + atomic_write_json(layout_path, layout); + poll(ui); + check(ui.widgets().theme().surface[0] == .3f, + "Fixing invalid layout publishes pending theme candidate"); + atomic_write(styles, "{ broken json"); + poll(ui); + check(ui.widgets().theme().surface[0] == .3f, + "Partially written JSON keeps last working theme"); + atomic_write_json(styles, theme); + poll(ui); + ui.frame({key("Return")}); + const auto saved = session.authoring().query(ui.current_document()); + check(saved.at("revision") == revision.get() + 1 && + saved["scene"]["entities"][0]["name"] == "Unfinished name", + "Retained callback commits preserved edit once after failed and valid reloads"); + renderer.render(ui.snapshot()); + renderer.capture(root / "reloaded.ppm"); + check(renderer.stats().validation_errors == 0, "Reload Vulkan validation"); + std::cout << "Theme/layout live reload pixels+geometry, atomic rejection, focus+draft " + "preservation, callback and diagnostic dedup passed. " + << root << '\n'; + return 0; + } catch (const std::exception& e) { + std::cerr << e.what() << "\nRetained: " << root << '\n'; + return 1; + } +} diff --git a/tests/editor_ui_templates.cpp b/tests/editor_ui_templates.cpp new file mode 100644 index 0000000..8fcc8b5 --- /dev/null +++ b/tests/editor_ui_templates.cpp @@ -0,0 +1,227 @@ +#include +#include +#include +#include +using namespace faset; +namespace { +void check(bool value, const std::string& message) { + if (!value) + throw std::runtime_error(message); +} +render::Event key(std::string name, bool control = false) { + render::Event e; + e.type = render::Event::Type::KeyDown; + e.key = std::move(name); + e.control = control; + return e; +} +void click(editor::EditorUI& editor, const std::string& id) { + for (int attempts = 0; attempts < 30; ++attempts) { + auto* widget = editor.widgets().find(id); + check(widget, "Missing widget: " + id); + const auto visible = widget->rect.intersection(widget->clip); + if (visible.width > 2 && visible.height > 2) { + render::Event down; + down.type = render::Event::Type::MouseDown; + down.button = 1; + down.x = visible.x + visible.width * .5f; + down.y = visible.y + visible.height * .5f; + auto up = down; + up.type = render::Event::Type::MouseUp; + editor.frame({down, up}); + return; + } + auto* parent = widget->parent; + while (parent && !parent->layout.scroll) + parent = parent->parent; + check(parent, "Widget is hidden: " + id); + render::Event move; + move.type = render::Event::Type::MouseMove; + move.x = parent->rect.x + 20; + move.y = parent->rect.y + 20; + render::Event wheel; + wheel.type = render::Event::Type::Wheel; + wheel.y = widget->rect.y < parent->rect.y ? 2 : -2; + editor.frame({move, wheel}); + } + throw std::runtime_error("Cannot scroll to widget: " + id); +} +void text(editor::EditorUI& editor, const std::string& id, const std::string& value) { + click(editor, id); + render::Event input; + input.type = render::Event::Type::TextInput; + input.text = value; + editor.frame({key("A", true), input, key("Return")}); +} +Json query(editor::Session& session, editor::EditorUI& editor) { + return session.authoring().query(editor.current_document()); +} +Json leaf(editor::Session& session, const std::string& document, std::size_t depth) { + const auto resolved = session.commands().resolved_scene(document); + for (const auto& e : resolved.at("scene").at("entities")) + if (e.at("origin").at("path").size() == depth) + return e; + throw std::runtime_error("Resolved template leaf missing"); +} +std::string position_field(const Json& object) { + return "field-" + object["components"][0]["id"].get() + "-position-0"; +} +float position(const Json& object) { + return object["components"][0]["fields"]["position"][0].get(); +} +} // namespace +int main() { + const auto root = std::filesystem::temp_directory_path() / ("faset-template-ui-" + new_id()); + try { + editor::Session session({root, FASET_TEST_ENGINE, root}); + render::Renderer renderer({1280, 900, "Template workflow test", true, true}); + editor::EditorUI ui(session, renderer, + std::filesystem::path(FASET_TEST_ENGINE) / "assets/fonts/NotoSans.ttf", + std::filesystem::path(FASET_TEST_ENGINE) / "assets/ui/dark.json"); + ui.frame({}); + const auto main = ui.current_document(); + click(ui, "add-cube"); + text(ui, "object-name", "Door"); + const auto local = ui.selected_entity(); + click(ui, "menu-Scene"); + text(ui, "template-path", "Assets/Templates/Door.scene.json"); + click(ui, "save-template"); + check(std::filesystem::exists(root / "Assets/Templates/Door.scene.json"), + "Manual source template creation"); + for (int i = 0; i < 2; ++i) { + click(ui, "menu-Scene"); + click(ui, "instance-template"); + } + check(query(session, ui)["scene"]["instances"].size() == 2, + "Two instances from manual Scene menu"); + ui.select_entity(local); + ui.frame({}); + ui.frame({key("Delete")}); + check(query(session, ui)["scene"]["entities"].empty(), + "Delete local original independently of template"); + click(ui, "menu-File"); + click(ui, "new-3d"); + const auto outer_document = ui.current_document(); + click(ui, "menu-Scene"); + click(ui, "instance-template"); + click(ui, "menu-File"); + text(ui, "save-path", "Assets/Templates/Outer.scene.json"); + click(ui, "save-as-button"); + click(ui, "back-document"); + check(ui.current_document() == main, "Open source/back document navigation"); + click(ui, "menu-Scene"); + text(ui, "template-path", "Assets/Templates/Outer.scene.json"); + click(ui, "instance-template"); + auto nested = leaf(session, main, 2); + const auto nested_id = nested.at("id").get(); + click(ui, "entity-" + nested_id); + text(ui, position_field(nested), "5"); + auto state = query(session, ui); + const auto& record = state["scene"]["instances"].back()["overrides"][0]; + check(record["address"]["path"].size() == 1, "Nested override uses relative instance path"); + check(position(leaf(session, main, 2)) == 5, "Nested Inspector override"); + const auto revert = + "field-" + nested["components"][0]["id"].get() + "-position-revert"; + check(ui.widgets().find(revert)->enabled, "Override provenance enables Revert"); + click(ui, revert); + check(position(leaf(session, main, 2)) == 0, "Revert reads source value"); + click(ui, "object-open-source"); + check(ui.current_document() != main && ui.current_document() != outer_document, + "Nested Open source reaches inner source"); + text(ui, "object-name", "Renamed Door"); + auto source = query(session, ui)["scene"]["entities"][0]; + text(ui, position_field(source), "2"); + click(ui, "back-document"); + check(ui.current_document() == main, "Back returns to instance scene"); + nested = leaf(session, main, 2); + check(nested["id"] == nested_id && nested["name"] == "Renamed Door" && + position(nested) == 2, + "Dirty open source propagates while identity survives rename"); + click(ui, "entity-" + nested_id); + ui.frame({key("Delete")}); + state = query(session, ui); + const auto top = state["scene"]["instances"].back()["id"]; + check(state["scene"]["instances"].back()["suppressed"].size() == 1, + "Delete inherited object records suppression"); + click(ui, "instance-" + Json::array({top}).dump()); + click(ui, "instance-restore-0"); + check(leaf(session, main, 2)["id"] == nested_id, "Restore suppression keeps identity"); + click(ui, "instance-add-local"); + const auto additions = session.commands().resolved_scene(main).at("scene").at("entities"); + std::string addition_id; + for (const auto& object : additions) + if (object.at("origin").value("local", false) && + object.at("origin").at("path").size() == 1) + addition_id = object.at("id"); + check(!addition_id.empty(), "Instance-local addition is resolved"); + click(ui, "entity-" + addition_id); + text(ui, "object-name", "Local lamp"); + click(ui, "add-component"); + click(ui, "component-choice-faset.mesh"); + const auto addition = query(session, ui)["scene"]["instances"].back()["additions"][0]; + check(addition["name"] == "Local lamp" && addition["components"].size() == 2 && + addition["components"].back()["type"] == "faset.mesh", + "Local addition supports manual rename and component creation"); + click(ui, "simulation-settings"); + const auto before = query(session, ui)["revision"].get(); + text(ui, "simulation-tick-rate", "120"); + check(std::abs(query(session, ui)["scene"]["simulation"]["fixed_delta"].get() - + 1.0 / 120) < 1e-8, + "Simulation UI converts Hz to seconds"); + check(query(session, ui)["revision"] == before + 1, + "Simulation field is one Undo transaction"); + text(ui, "simulation-gravity-1", "-3"); + check(query(session, ui)["scene"]["simulation"]["gravity"][1] == -3, + "Simulation gravity field"); + click(ui, "simulation-close"); + click(ui, "undo"); + check(query(session, ui)["scene"]["simulation"]["gravity"][1] == -9.81, + "Simulation Undo restores gravity"); + + nested = leaf(session, main, 2); + click(ui, "entity-" + nested_id); + text(ui, position_field(nested), "7"); + click(ui, "object-open-source"); + source = query(session, ui)["scene"]["entities"][0]; + click(ui, "component-remove-" + source["components"][0]["id"].get()); + click(ui, "back-document"); + const auto conflicted = session.commands().resolved_scene(main); + check(!conflicted.at("conflicts").empty() && + query(session, ui)["scene"]["instances"].back()["overrides"].size() == 1, + "Source deletion retains unapplied override as an explicit conflict"); + click(ui, "tab-conflicts"); + click(ui, "conflict-0-discard"); + check(query(session, ui)["scene"]["instances"].back()["overrides"].empty(), + "Conflict discard is an explicit authoring action"); + click(ui, "undo"); + check(query(session, ui)["scene"]["instances"].back()["overrides"].size() == 1, + "Conflict discard is undoable"); + + auto opaque = authoring::make_entity(session.authoring().schemas(), "Future transform"); + opaque["components"][0]["version"] = 2; + opaque["components"][0]["fields"] = {{"future", "untouched"}}; + session.authoring().transact(main, query(session, ui).at("revision"), + Json::array({{{"op", "entity.create"}, {"entity", opaque}}})); + ui.frame({}); + click(ui, "entity-" + opaque.at("id").get()); + const auto opaque_component = opaque["components"][0]["id"].get(); + const auto* raw = ui.widgets().find("opaque-fields-" + opaque_component); + check(raw && !raw->enabled && raw->text == opaque["components"][0]["fields"].dump(), + "Unsupported component version stays opaque and read-only"); + check(!ui.widgets().find("field-" + opaque_component + "-future"), + "Current-schema Inspector does not interpret future component fields"); + check(query(session, ui)["scene"]["entities"].back() == opaque, + "Opaque component data survives Inspector and viewport updates"); + renderer.render(ui.snapshot()); + renderer.capture(root / "templates.ppm"); + check(renderer.stats().validation_errors == 0, "Vulkan validation"); + std::cout << "Manual templates: create/two instances/nesting/overrides/Revert/source " + "rename/suppression restore/local additions/conflicts/opaque versions; " + "simulation UI+Undo passed. " + << root << '\n'; + return 0; + } catch (const std::exception& error) { + std::cerr << error.what() << "\nRetained: " << root << '\n'; + return 1; + } +} diff --git a/tests/editor_ui_tests.cpp b/tests/editor_ui_tests.cpp index 5452480..fa10671 100644 --- a/tests/editor_ui_tests.cpp +++ b/tests/editor_ui_tests.cpp @@ -1,7 +1,10 @@ +#include "assets_image_fixtures.hpp" #include #include #include +#include #include +#include using namespace faset; void check(bool value, const char* message) { if (!value) @@ -175,6 +178,75 @@ int main() { "Plugin panel action must author Beacon through Commands"); click(ui, "tab-assets"); #endif + std::filesystem::create_directories(root / "Assets"); + const auto image_path = root / "Assets/TwoPixels.png"; + { + std::ofstream stream(image_path, std::ios::binary); + const auto& png = faset::test_images::png_red_green; + stream.write(reinterpret_cast(png.data()), + static_cast(png.size())); + } + const auto import_job = + session.commands() + .call("faset_import", + {{"path", "Assets/TwoPixels.png"}, {"settings", {{"pixels_per_unit", 1.0}}}}) + .at("job") + .get(); + Json imported; + for (int wait = 0; wait < 500; ++wait) { + session.poll(); + imported = session.commands().call("faset_job", {{"id", import_job}}); + if (imported.at("state") != "queued" && imported.at("state") != "running") + break; + std::this_thread::sleep_for(std::chrono::milliseconds(10)); + } + check(imported.at("state") == "succeeded", "Actual asynchronous PNG importer job"); + click(ui, "asset-refresh"); + ui.frame({}); + const auto image_id = imported.at("result").at("asset_id").get(); + auto* image_row = ui.widgets().find("asset-" + image_id); + check(image_row, "Imported image in asset browser"); + const auto asset_rect = image_row->rect.intersection(image_row->clip); + const auto viewport_rect = ui.widgets().find("viewport")->rect; + down.x = asset_rect.x + 100; + down.y = asset_rect.y + 12; + move = down; + move.type = render::Event::Type::MouseMove; + move.x = viewport_rect.x + viewport_rect.width * .5f; + move.y = viewport_rect.y + viewport_rect.height * .5f; + up = move; + up.type = render::Event::Type::MouseUp; + ui.frame({down, move, up}); + state = session.authoring().query(ui.current_document()); + const auto& sprite = state["scene"]["entities"].back()["components"].back(); + check(sprite["type"] == "faset.sprite" && sprite["fields"]["texture"] == image_id, + "Image drag/drop must author Sprite with AssetId"); + check(sprite["fields"]["size"] == Json::array({2.0, 1.0}), + "Image drag/drop preserves dimensions through pixels_per_unit"); + check(!ui.snapshot().sprites.empty() && ui.snapshot().sprites.back().texture && + ui.snapshot().sprites.back().texture->width == 2, + "PNG sprite must decode into actual render texture"); + const auto before_switch = state.at("revision"); + click(ui, "menu-File"); + click(ui, "open-project"); + check(ui.widgets().find("project-switch-dialog")->visible && !ui.project_switch_requested(), + "Dirty project switch requires an explicit recovery warning action"); + ui.frame({key("Delete")}); + check(session.authoring().query(ui.current_document()).at("revision") == before_switch, + "Switch dialog captures editor shortcuts"); + click(ui, "project-switch-cancel"); + check(!ui.project_switch_requested(), "Cancelling project switch keeps editor open"); + ui.set_project_switch_enabled(false); + click(ui, "menu-File"); + check(!ui.widgets().find("open-project")->enabled, + "Project switch disabled while an MCP client owns the session"); + click(ui, "open-project"); + check(!ui.project_switch_requested(), "Disabled project switch cannot request exit"); + ui.set_project_switch_enabled(true); + ui.frame({}); + click(ui, "open-project"); + click(ui, "project-switch-continue"); + check(ui.project_switch_requested(), "Confirmed project switch is exposed to application"); renderer.render(ui.snapshot()); renderer.capture(root / "editor-ui.ppm"); check(renderer.stats().validation_errors == 0, "Vulkan validation errors"); diff --git a/tests/mcp_stdio_test.py b/tests/mcp_stdio_test.py index f7cc9cb..053d850 100644 --- a/tests/mcp_stdio_test.py +++ b/tests/mcp_stdio_test.py @@ -40,6 +40,7 @@ def run(executable, project): assert initialized["result"]["serverInfo"]["name"] == "faset-editor" process.stdin.write('{"jsonrpc":"2.0","method":"notifications/initialized"}\n') process.stdin.flush() + assert call("faset_schema_status")["stale"] names = {tool["name"] for tool in request("tools/list")["result"]["tools"]} assert {"faset_scene_edit", "faset_export", "faset_job_cancel", "faset_plugins"} <= names assert "faset_runtime_query" not in names and "faset_editor_capture" not in names @@ -78,7 +79,38 @@ def run(executable, project): assert code == 0, errors +def disconnected_output(executable, project): + process = subprocess.Popen([executable, "--project", str(project), "--mcp"], + stdin=subprocess.PIPE, stdout=subprocess.PIPE, + stderr=subprocess.PIPE, text=True, encoding="utf-8") + # Keep input open: output failure itself must close the transport. Before + # the fix this terminated the POSIX Editor with SIGPIPE (return code -13). + process.stdout.close() + try: + process.stdin.write(json.dumps({"jsonrpc": "2.0", "id": 1, "method": "initialize", + "params": {"protocolVersion": "2025-06-18"}}) + "\n") + process.stdin.flush() + assert process.wait(timeout=20) == 0, process.stderr.read() + finally: + if process.poll() is None: + process.kill() + process.wait() + process.stdin.close() + + +def eof_tail(executable, project): + # A final buffered request must still receive its reply when input closes. + message = json.dumps({"jsonrpc": "2.0", "id": "tail", "method": "ping"}) + result = subprocess.run([executable, "--project", str(project), "--mcp"], + input=message, capture_output=True, text=True, + encoding="utf-8", timeout=20) + assert result.returncode == 0, result.stderr + assert json.loads(result.stdout)["id"] == "tail", result.stdout + + with tempfile.TemporaryDirectory(prefix="faset-mcp-stdio-") as temporary: run(sys.argv[1], pathlib.Path(temporary)) run(sys.argv[1], pathlib.Path(temporary)) -print("Real MCP stdio lifecycle, clean stdout, revision conflict, retry, Undo/Redo, disk reopen and process shutdown passed") + disconnected_output(sys.argv[1], pathlib.Path(temporary)) + eof_tail(sys.argv[1], pathlib.Path(temporary)) +print("Real MCP stdio lifecycle, clean stdout, revision conflict, retry, Undo/Redo, disk reopen, broken output pipe and EOF shutdown passed") diff --git a/tests/render_reload_tests.cpp b/tests/render_reload_tests.cpp new file mode 100644 index 0000000..ca9523b --- /dev/null +++ b/tests/render_reload_tests.cpp @@ -0,0 +1,153 @@ +#include +#include +#include +#include +#include +#include +#include +#include +using namespace faset; +namespace fs = std::filesystem; +namespace { +void require(bool value, const char* message) { + if (!value) + throw std::runtime_error(message); +} +int compile(const fs::path& source, const fs::path& output) { + Process process( + {{FASET_PYTHON_EXECUTABLE, FASET_SHADER_COMPILE_TOOL, "--compiler", FASET_TEST_SLANGC, + "--source", source.string(), "--entry", "fragmentMain", "--output", output.string()}, + {}, + {}}); + std::string diagnostics; + while (true) { + auto result = process.poll(); + diagnostics += result.output; + if (!result.running) { + if (result.exit_code != 0) + require(diagnostics.find("intentional_shader_compile_failure") != std::string::npos, + "Slang failure must preserve its useful compiler diagnostic"); + return result.exit_code.value_or(1); + } + std::this_thread::sleep_for(std::chrono::milliseconds(5)); + } +} +} // namespace +int main() { + const auto temporary = fs::temp_directory_path() / ("faset-shader-reload-" + new_id()); + struct Cleanup { + fs::path path; + ~Cleanup() { + std::error_code ignored; + fs::remove_all(path, ignored); + } + } cleanup{temporary}; + try { + const auto bundle = temporary / "shaders"; + fs::create_directories(bundle); + for (const auto* entry : {"vertexMain", "fragmentMain", "shadowMain"}) + for (const auto* extension : {".spv", ".reflection.json"}) { + const auto name = std::string(entry) + extension; + fs::copy_file(fs::path(FASET_TEST_SHADER_DIRECTORY) / name, bundle / name); + } + const auto source = temporary / "reload.slang"; + const auto original_source = read_text(FASET_TEST_SHADER_SOURCE); + const auto original_spirv = read_text(bundle / "fragmentMain.spv"); + const auto original_reflection = read_text(bundle / "fragmentMain.reflection.json"); + const auto original_fingerprint = Json::parse(original_reflection).at("layout_fingerprint"); + render::validate_shader_bundle(bundle); + render::RendererConfig configuration; + configuration.width = configuration.height = 64; + configuration.headless = true; + configuration.validation = true; + configuration.shader_directory = bundle; + render::Renderer renderer(configuration); + render::Snapshot scene; + scene.ui_quads.push_back({0, 0, 64, 64, {1, .8f, .4f, 1}}); + renderer.render(scene); + auto expected = renderer.pixels(); + require(renderer.stats().gpu_allocated_bytes > 1024 * 1024 && + renderer.stats().texture_count >= 1, + "Frame profile reports live Vulkan allocations and textures"); + auto restore = [&] { + atomic_write(bundle / "fragmentMain.spv", original_spirv); + atomic_write(bundle / "fragmentMain.reflection.json", original_reflection); + }; + auto retained = [&] { + std::string error; + require(!renderer.reload_shaders(error) && !error.empty(), + "Unsafe shader reload must fail with a diagnostic"); + renderer.render(scene); + require(renderer.pixels() == expected, + "Rejected shader reload must retain working pixels"); + require(renderer.stats().validation_errors == 0, + "Rejected bytecode must not reach Vulkan validation"); + }; + atomic_write(bundle / "fragmentMain.spv", "damaged bytecode"); + retained(); + restore(); + auto malformed = original_spirv; + for (int i = 0; i < 4; ++i) + malformed[20 + i] = 0; // zero-word SPIR-V instruction + auto metadata = Json::parse(original_reflection); + metadata["spirv_sha256"] = sha256(malformed); + atomic_write(bundle / "fragmentMain.spv", malformed); + atomic_write_json(bundle / "fragmentMain.reflection.json", metadata); + retained(); + restore(); + auto incompatible = original_source; + auto at = incompatible.find("[[vk::binding(2,0)]]"); + require(at != std::string::npos, "Shader descriptor fixture exists"); + incompatible.replace(at, std::string("[[vk::binding(2,0)]]").size(), + "[[vk::binding(7,0)]]"); + atomic_write(source, incompatible); + require(compile(source, bundle) == 0, "Compile real incompatible descriptor layout"); + require(read_json(bundle / "fragmentMain.reflection.json").at("layout_fingerprint") != + original_fingerprint, + "Descriptor edit changes normalized layout fingerprint"); + retained(); + restore(); + incompatible = original_source; + at = incompatible.find("column_major float4x4"); + require(at != std::string::npos, "Shader matrix fixture exists"); + incompatible.replace(at, std::string("column_major float4x4").size(), "row_major float4x4"); + atomic_write(source, incompatible); + require(compile(source, bundle) == 0, "Compile real incompatible matrix storage"); + retained(); + restore(); + auto compatible = original_source; + at = compatible.find(" float4 sampled ="); + require(at != std::string::npos, "Shader fragment fixture exists"); + compatible.insert(at, " v.color.rgb *= 0.5;\n"); + atomic_write(source, compatible); + require(compile(source, bundle) == 0, "Compile real compatible shader edit"); + require(read_json(bundle / "fragmentMain.reflection.json").at("layout_fingerprint") == + original_fingerprint, + "Source-only behavior edit preserves normalized layout fingerprint"); + std::string error; + require(renderer.reload_shaders(error), "Compatible shader edit reloads successfully"); + renderer.render(scene); + const auto changed = renderer.pixels(); + require(changed[0] + 50 < expected[0], "Compatible reload changes actual rendered pixels"); + expected = changed; + const auto last_spirv = read_text(bundle / "fragmentMain.spv"); + const auto last_reflection = read_text(bundle / "fragmentMain.reflection.json"); + atomic_write(source, compatible + "\n#error intentional_shader_compile_failure\n"); + require(compile(source, bundle) != 0, "Real Slang compile failure is reported"); + require(read_text(bundle / "fragmentMain.spv") == last_spirv && + read_text(bundle / "fragmentMain.reflection.json") == last_reflection, + "Compile failure preserves both published shader artifacts"); + require(renderer.reload_shaders(error), + "Last successfully compiled artifacts remain reloadable"); + renderer.render(scene); + require(renderer.pixels() == expected, "Compile failure preserves last good rendering"); + require(renderer.stats().validation_errors == 0, + "Shader reload regression has no Vulkan validation errors"); + std::cout << "Normalized reflection, malformed SPIR-V, incompatible descriptors/matrices, " + "real compile failure and compatible pixel reload passed\n"; + return 0; + } catch (const std::exception& error) { + std::cerr << error.what() << '\n'; + return 1; + } +} diff --git a/tests/render_tests.cpp b/tests/render_tests.cpp index 389c038..1e276ec 100644 --- a/tests/render_tests.cpp +++ b/tests/render_tests.cpp @@ -1,3 +1,4 @@ +#include #include #include #include @@ -122,6 +123,28 @@ int main(int argc, char** argv) { renderer.render(scene); require(renderer.width() == 400 && renderer.height() == 300, "Render target resize"); require(renderer.stats().validation_errors == 0, "Resize validation error"); + if (visible) { + int window_count{}; + auto windows = SDL_GetWindows(&window_count); + require(windows && window_count == 1, "Visible test owns exactly one SDL window"); + auto* window = windows[0]; + SDL_free(windows); + require(SDL_HideWindow(window), "Hide the test window"); + const auto before = renderer.stats().frame; + // Exhaust any compositor buffers without an application event poll. Captures + // must still render fresh content when presentation is unavailable. + for (int frame = 0; frame < 12; ++frame) { + scene.ui_quads[0].color = frame % 2 ? Color{0, 1, 0, 1} : Color{1, 0, 0, 1}; + renderer.render(scene); + auto capture = renderer.pixels(); + const auto at = (10 * renderer.width() + 10) * 4; + require(capture.at(at + (frame % 2 ? 1 : 0)) > 240, + "Hidden-window capture must contain the latest frame"); + } + require(renderer.stats().frame == before + 12, + "Hidden-window capture must progress without swapchain images"); + require(renderer.stats().validation_errors == 0, "Hidden-window validation error"); + } std::cout << "Vulkan frame, shadow/PBR, atlas upload, readback and resize passed on " << renderer.stats().device << '\n'; } catch (const std::exception& e) { diff --git a/tests/render_window_tests.cpp b/tests/render_window_tests.cpp new file mode 100644 index 0000000..47da99c --- /dev/null +++ b/tests/render_window_tests.cpp @@ -0,0 +1,180 @@ +#include +#include +#include +#include +#include +#include +#include +#include + +namespace { +using namespace faset::render; +using Clock = std::chrono::steady_clock; +void require(bool condition, const char* message) { + if (!condition) + throw std::runtime_error(message); +} +struct WindowEvents { + SDL_WindowID id{}; + unsigned minimized{}, restored{}, resized{}, focus_lost{}; + static bool watch(void* context, SDL_Event* event) { + auto& state = *static_cast(context); + if (event->window.windowID == state.id) { + if (event->type == SDL_EVENT_WINDOW_MINIMIZED) + ++state.minimized; + if (event->type == SDL_EVENT_WINDOW_RESTORED) + ++state.restored; + if (event->type == SDL_EVENT_WINDOW_PIXEL_SIZE_CHANGED) + ++state.resized; + if (event->type == SDL_EVENT_WINDOW_FOCUS_LOST) + ++state.focus_lost; + } + return true; + } +}; +} // namespace + +int main(int argc, char** argv) { + // Some window systems can block inside native window calls. Terminate only this + // fixture if that happens, so an acceptance test cannot strand its own process. + std::jthread watchdog([](std::stop_token stop) { + for (int i = 0; i < 150 && !stop.stop_requested(); ++i) + std::this_thread::sleep_for(std::chrono::milliseconds(200)); + if (!stop.stop_requested()) { + std::cerr << "Window fixture exceeded 30 seconds; terminating its own process\n"; + std::_Exit(70); + } + }); + try { + Renderer renderer({320, 240, "Faset owned window lifecycle test", false, true}); + int count{}; + auto windows = SDL_GetWindows(&count); + require(windows && count == 1, "Fixture must own exactly one SDL window"); + auto* window = windows[0]; + SDL_free(windows); + WindowEvents events{SDL_GetWindowID(window)}; + require(SDL_AddEventWatch(WindowEvents::watch, &events), "Register lifecycle event watch"); + struct WatchGuard { + WindowEvents& events; + ~WatchGuard() { + SDL_RemoveEventWatch(WindowEvents::watch, &events); + } + } watch{events}; + std::cout << "driver=" << SDL_GetCurrentVideoDriver() << " stage=created\n" << std::flush; + Snapshot scene; + scene.ui_quads.push_back({0, 0, 4096, 4096, {1, 0, 0, 1}}); + unsigned frame{}; + auto draw = [&] { + renderer.poll_events(); + const unsigned channel = frame++ % 2; + scene.ui_quads[0].color = channel ? Color{0, 1, 0, 1} : Color{1, 0, 0, 1}; + renderer.render(scene); + const auto pixels = renderer.pixels(); + require(pixels.size() == std::size_t(renderer.width()) * renderer.height() * 4, + "Window capture dimensions must match the current target"); + require(pixels.at((8 * renderer.width() + 8) * 4 + channel) > 240, + "Window capture must contain the current frame, including while minimized"); + require(renderer.stats().validation_errors == 0, "Vulkan validation error"); + }; + auto await = [&](auto condition, int milliseconds) { + const auto deadline = Clock::now() + std::chrono::milliseconds(milliseconds); + do { + draw(); + if (condition()) + return true; + SDL_Delay(10); + } while (Clock::now() < deadline); + return false; + }; + for (const auto& [width, height] : {std::pair{480, 270}, std::pair{360, 300}}) { + renderer.resize(width, height); + require(await( + [&] { + int logical_width{}, logical_height{}, pixel_width{}, pixel_height{}; + SDL_GetWindowSize(window, &logical_width, &logical_height); + SDL_GetWindowSizeInPixels(window, &pixel_width, &pixel_height); + return logical_width == width && logical_height == height && + renderer.width() == static_cast(pixel_width) && + renderer.height() == static_cast(pixel_height); + }, + 2000), + "Window/target must converge to the requested resize"); + } + std::cout << "stage=resized width=" << renderer.width() << " height=" << renderer.height() + << " resize_events=" << events.resized << '\n' + << std::flush; + // Allow initial configure/focus events to settle before requesting a new state. + for (int i = 0; i < 25; ++i) { + draw(); + SDL_Delay(10); + } + require(SDL_MinimizeWindow(window), "Request minimizing the owned fixture window"); + if (!await([&] { return SDL_GetWindowFlags(window) & SDL_WINDOW_MINIMIZED; }, 2000)) { + std::cout << "SKIP: window system declined the minimize request\n"; + return 77; + } + const auto before = renderer.stats().frame; + for (int i = 0; i < 12; ++i) { + draw(); + SDL_Delay(10); + } + require(renderer.stats().frame == before + 12, "Minimized capture must keep progressing"); + std::cout << "stage=minimized fresh_frames=12 minimize_events=" << events.minimized + << " focus_lost_events=" << events.focus_lost << '\n' + << std::flush; + if (argc > 1) { + std::filesystem::create_directories(argv[1]); + renderer.capture(std::filesystem::path(argv[1]) / "minimized.ppm"); + } + const auto restored_before = events.restored; + require(SDL_RestoreWindow(window), "Request restoring the owned fixture window"); + bool restored = await( + [&] { + return !(SDL_GetWindowFlags(window) & SDL_WINDOW_MINIMIZED) && + events.restored > restored_before; + }, + 1000); + bool activation_required{}; + if (!restored) { + activation_required = true; + require(SDL_RaiseWindow(window), "Request activation of the owned fixture window"); + restored = await( + [&] { + return !(SDL_GetWindowFlags(window) & SDL_WINDOW_MINIMIZED) && + events.restored > restored_before; + }, + 2000); + } + if (!restored) { + std::cout << "SKIP: resize and 12 minimized captures passed; compositor did not " + "confirm restore/activation. Programmatic restoration is not supported " + "by every Wayland compositor.\n"; + return 77; + } + renderer.resize(400, 320); + require(await( + [&] { + int w{}, h{}, logical_width{}, logical_height{}; + SDL_GetWindowSize(window, &logical_width, &logical_height); + SDL_GetWindowSizeInPixels(window, &w, &h); + return logical_width == 400 && logical_height == 320 && + renderer.width() == static_cast(w) && + renderer.height() == static_cast(h); + }, + 2000), + "Restore followed by resize must rebuild the target"); + for (int i = 0; i < 12; ++i) + draw(); + if (argc > 1) + renderer.capture(std::filesystem::path(argv[1]) / "restored.ppm"); + std::cout << "stage=restored restored_events=" << events.restored + << " activation_required=" << activation_required + << " frames=" << renderer.stats().frame + << " validation_enabled=" << renderer.stats().validation_enabled + << " validation_errors=" << renderer.stats().validation_errors << '\n'; + return 0; + } catch (const std::exception& error) { + std::cerr << error.what() << '\n'; + return 1; + } +} diff --git a/tests/runtime_player_tests.cpp b/tests/runtime_player_tests.cpp index c2c578d..ae467eb 100644 --- a/tests/runtime_player_tests.cpp +++ b/tests/runtime_player_tests.cpp @@ -5,6 +5,7 @@ #include #include #include +#include #include using Json = nlohmann::json; @@ -28,6 +29,90 @@ Json component(std::string type, Json fields) { Json entity(std::string id, Json parent, Json components) { return {{"id", id}, {"name", id}, {"parent", parent}, {"components", components}}; } +void physicsDebug(faset::player::SceneView& view) { + for (int dimension : {2, 3}) { + const std::string bodyName = dimension == 2 ? "rigid_body_2d" : "rigid_body_3d"; + Json body{{"body_type", "dynamic"}, + {"half_extents", dimension == 2 ? Json{.75, .5} : Json{.75, .5, .25}}, + {"linear_velocity", dimension == 2 ? Json{2, 0} : Json{2, 0, 0}}}; + const Json authoredPose{{"position", {1, 2, 3}}, + {"rotation", {0, 0, std::numbers::pi_v / 2}}, + {"scale", {-2, 3, -4}}}; + Json scene{{"format", "faset.scene"}, + {"version", 1}, + {"id", "physics"}, + {"name", "physics"}, + {"dimension", dimension}, + {"instances", Json::array()}, + {"entities", + Json::array({entity("body", nullptr, + Json::array({component("faset.transform", authoredPose), + component("faset." + bodyName, body)}))})}}; + faset::runtime::RuntimeConfig config; + config.gravity = {0, 0, 0}; + faset::runtime::Runtime runtime(config); + runtime.load(scene); + runtime.advance(config.fixedDelta * 1.5); + const auto handle = runtime.find("body"); + const auto physical = runtime.transform(handle); + const auto displayed = runtime.presentation(handle); + check(physical.position[0] > displayed.position[0] + .01f, + "Fixture separates actual body pose from interpolated presentation"); + // This is the same explicit current-pose contract used by the Player; + // snapshotJson's presentation pose is intentionally unsuitable here. + Json physics{ + {"dimension", dimension}, + {"entities", Json::array({{{"parent", nullptr}, + {bodyName, runtime.fields(handle, "faset." + bodyName)}, + {"transform", + {{"position", physical.position}, + {"rotation", physical.rotation}, + {"scale", physical.scale}}}}})}}; + faset::render::Snapshot debug; + const auto originalCamera = debug.view_projection; + view.appendPhysicsDebug(debug, physics, .02f); + check(debug.draws.size() == (dimension == 2 ? 4 : 12), "Box outline edge count"); + check(debug.view_projection == originalCamera, "Debug overlay leaves camera unchanged"); + faset::render::Vec3 center{}; + for (const auto& edge : debug.draws) { + check(!edge.cast_shadow && edge.mesh, "Debug edges are unshadowed meshes"); + for (const auto& vertex : edge.mesh->vertices) + check(vertex.normal == faset::render::Vec3{0, 0, 0}, "Debug edge color is unlit"); + for (int axis = 0; axis < 3; ++axis) + center[axis] += edge.model[12 + axis] / float(debug.draws.size()); + } + for (int axis = 0; axis < 3; ++axis) + check(std::abs(center[axis] - physical.position[axis]) < .0001f, + "Outlines center on current Box2D/Box3D pose"); + // Rz(pi/2) turns the first X edge into world Y. Abs(scale) gives a + // three-unit X edge and 1.5-unit local Y half extent in both adapters. + const auto& first = debug.draws.front().model; + check(std::abs(first[0]) < .0001f && std::abs(first[1] - 3) < .0001f && + std::abs(first[12] - physical.position[0] - 1.5f) < .0001f, + "Negative nonuniform scale and box rotation match physics shape policy"); + if (dimension == 3) + check(std::abs(first[14] - physical.position[2] + 1) < .0001f, + "Box3D Z half extent includes absolute Z scale"); + auto invalid = physics; + invalid["entities"][0]["parent"] = "another-body"; + rejects([&] { view.appendPhysicsDebug(debug, invalid); }, + "Debug respects runtime root-only physical bodies"); + if (dimension == 2) { + invalid = physics; + invalid["entities"][0]["transform"]["rotation"][0] = .5; + rejects([&] { view.appendPhysicsDebug(debug, invalid); }, + "Box2D debug rejects rotation outside Z"); + } + rejects([&] { view.appendPhysicsDebug(debug, physics, 0); }, + "Debug thickness must be positive"); + auto opaque = scene; + opaque["entities"][0]["components"][1]["version"] = 2; + opaque["entities"][0]["components"][1]["fields"] = "future representation"; + faset::render::Snapshot skipped; + view.appendPhysicsDebug(skipped, opaque); + check(skipped.draws.empty(), "Debug does not interpret unknown body schema versions"); + } +} void run() { const auto folder = std::filesystem::temp_directory_path() / ("faset-player-test-" + faset::new_id()); @@ -74,6 +159,7 @@ void run() { faset::atomic_write(folder / "version.fscene", version); rejects([&] { faset::player::readScene(folder / "version.fscene"); }, "reject cooked version"); faset::player::SceneView view(folder); + physicsDebug(view); auto snapshot = view.build(scene, 16.f / 9.f); check(snapshot.draws.size() == 1, "SceneView builtin mesh"); check(snapshot.draws[0].model[12] == 3 && snapshot.draws[0].model[13] == 2 && @@ -95,6 +181,22 @@ void run() { view.build(bad, 1); check(!view.diagnostics().empty() && view.diagnostics()[0].starts_with("error:"), "missing asset is diagnostic, not silent success"); + auto opaque = scene; + opaque["entities"][1]["components"][1]["version"] = 2; + opaque["entities"][1]["components"][1]["fields"] = {{"asset", 42}, {"color", "future-format"}}; + const auto unchanged = opaque; + check(view.build(opaque, 1).draws.empty(), "Future mesh fields are opaque in editor preview"); + check(!view.diagnostics().empty() && + view.diagnostics()[0].find("unsupported faset.mesh") != std::string::npos, + "Opaque preview component has an actionable diagnostic"); + check(opaque == unchanged, "Preview preserves unknown component bytes"); + rejects([&] { world.load(opaque); }, "Player runtime rejects unknown component versions"); + opaque = scene; + opaque["entities"][1]["components"][0]["version"] = 2; + opaque["entities"][1]["components"][0]["fields"] = {{"position", "future-format"}}; + snapshot = view.build(opaque, 1); + check(snapshot.draws[0].model[12] == 1 && snapshot.draws[0].model[13] == 2, + "Future transform fields are not interpreted as v1 coordinates"); auto camera = faset::player::CameraSettings{}; camera.eye = camera.target; rejects([&] { view.build(scene, 1, camera); }, "reject degenerate camera"); diff --git a/tests/runtime_tutorials_projects.cpp b/tests/runtime_tutorials_projects.cpp new file mode 100644 index 0000000..a165598 --- /dev/null +++ b/tests/runtime_tutorials_projects.cpp @@ -0,0 +1,110 @@ +#include "Gameplay.hpp" +#include +#include +#include +#include +#include +#include +#include + +namespace { +using namespace faset::runtime; +void check(bool value, const char* message) { + if (!value) + throw std::runtime_error(message); +} +nlohmann::json read(const std::filesystem::path& path) { + nlohmann::json value; + std::ifstream input(path); + input >> value; + return value; +} +} // namespace +int main() { + try { + const std::filesystem::path project = FASET_EXAMPLE_PROJECT; + const auto manifest = read(project / "project.faset.json"); + const auto scene = read(project / manifest.at("start_scene").get()); + check(manifest.at("dimension") == FASET_EXAMPLE_DIMENSION, + "project dimension matches test"); + std::set ids; + for (const auto& entity : scene.at("entities")) { + check(ids.insert(entity.at("id").get()).second, "unique entity IDs"); + for (const auto& component : entity.at("components")) + check(ids.insert(component.at("id").get()).second, + "unique component IDs"); + } + const auto schemas = faset::gameplay::schema(); + check(schemas.size() == (FASET_EXAMPLE_DIMENSION == 3 ? 2u : 1u), + "3D module also exports independent Beacon component"); + Runtime world; + faset::gameplay::registerGameplay(world); + world.load(scene); + auto player = world.find("player"); + const auto start = world.transform(player); + for (int i = 0; i < 15; ++i) + world.singleStep(); + check(world.grounded(player), "player starts supported by actual physics"); + check(world.transform(world.find("win_marker")).position[1] < -40, + "victory hidden until completion"); + auto walk = [&](Vec3 target, bool allowJump, float tolerance = .15f) { + for (int tick = 0; tick < 650; ++tick) { + const auto p = world.transform(player).position; + const float dx = target[0] - p[0], + dz = FASET_EXAMPLE_DIMENSION == 3 ? target[2] - p[2] : 0; + if (std::hypot(dx, dz) < tolerance) { + for (int i = 0; i < 20; ++i) + world.singleStep(); + return; + } + InputState input; + input.horizontal = std::clamp(dx * 4.0f, -1.0f, 1.0f); + input.vertical = -std::clamp(dz * 4.0f, -1.0f, 1.0f); + input.jumpPressed = allowJump && world.grounded(player); + world.singleStep(input); + } + const auto p = world.transform(player).position; + throw std::runtime_error("Cannot reach waypoint " + std::to_string(target[0]) + "," + + std::to_string(target[2]) + " from " + std::to_string(p[0]) + + "," + std::to_string(p[1]) + "," + std::to_string(p[2])); + }; + // Drive the published level through input. No teleports are used to collect + // its tokens or bypass the gate; this exercises level reachability as well + // as the same C++ module linked into the actual Player. + const auto first = world.transform(world.find("token_1")).position; + walk(first, false); + check(world.transform(world.find("token_1")).position[1] > 1.5f, + "first token collected through movement"); + const auto middle = world.transform(world.find("token_2")).position; + walk(middle, true); + check(world.transform(world.find("token_2")).position[1] > 2, + "platform token collected with grounded jumps"); + const auto third = world.transform(world.find("token_3")).position; + walk(third, false); + check(world.transform(world.find("gate")).position[1] < -20, + "three pickups open physical gate"); + const auto goal = world.transform(world.find("goal")).position; + if (FASET_EXAMPLE_DIMENSION == 3) + walk({4, 0, goal[2]}, false); + walk(goal, false, .95f); + check(world.transform(world.find("win_marker")).position[1] > 2, + "exit completes objective and reveals victory marker"); + world.singleStep({0, 0, false, true}); + check(world.transform(world.find("gate")).position[1] > 0, "E resets gate"); + check(world.transform(world.find("win_marker")).position[1] < -40, "E clears victory"); + check(std::abs(world.transform(player).position[0] - start.position[0]) < .01f, + "E resets player spawn"); + check(world.transform(world.find("token_1")).position[1] < 1, "E restores pickups"); + const auto previousPlayer = player; + world.load(scene); + check(!world.valid(previousPlayer) && world.valid(world.find("player")), + "restart clears captured state and stale handles"); + check(world.diagnostics().empty(), "playthrough must not hide gameplay exceptions"); + std::cout << "Playable " << FASET_EXAMPLE_DIMENSION + << "D project reached its objective and reset\n"; + return 0; + } catch (const std::exception& error) { + std::cerr << error.what() << '\n'; + return 1; + } +} diff --git a/tests/ui_tests.cpp b/tests/ui_tests.cpp index 3d4b2cf..30cfcca 100644 --- a/tests/ui_tests.cpp +++ b/tests/ui_tests.cpp @@ -229,6 +229,34 @@ int main() { declarative.layout(200, 100); click(declarative, *declarative.find("run")); check(action == 1 && declarative.find("run")->text == "Run", "layout reload lost callback"); + const auto initial_height = declarative.find("run")->layout.height; + const auto invalid_patch = + ui::Json{{"id", "root"}, + {"children", + ui::Json::array({{{"id", "run"}, {"layout", {{"height", 99}}}}, + {{"id", "bad-label"}, {"kind", "label"}, {"text", 123}}})}}; + rejected = false; + try { + declarative.apply_layout(invalid_patch); + } catch (...) { + rejected = true; + } + check(rejected && declarative.find("run")->layout.height == initial_height && + !declarative.find("bad-label"), + "Layout validation must reject all changes before mutation"); + rejected = false; + try { + declarative.apply_layout( + {{"id", "root"}, + {"children", + ui::Json::array({{{"id", "new-parent"}, + {"kind", "column"}, + {"children", ui::Json::array({{{"id", "run"}}})}}})}}); + } catch (...) { + rejected = true; + } + check(rejected && !declarative.find("new-parent"), + "Hot layout must not duplicate/reparent a retained widget ID"); std::cout << "UI: UTF-8, shaping, text/IME/clipboard, focus, transactions, " "layout, clipping, docking OK\n"; return 0; diff --git a/tools/blender_addon/README.md b/tools/blender_addon/README.md index afb72d6..7856818 100644 --- a/tools/blender_addon/README.md +++ b/tools/blender_addon/README.md @@ -8,4 +8,4 @@ Objects, mesh datablocks and materials receive `faset_id` custom properties. Ren The engine imports `manifest.json` or ordinary GLB/glTF. Gameplay components, physics settings and instance overrides are engine-owned data. The exporter does not write them. Without IDs, the engine does not promise reliable matching after renaming internal parts. Arbitrary procedural Blender materials require baking or an explicit engine material; this profile does not claim pixel-identical shading. -`bundle.py` is independent of Blender and has executable fixture tests. Blender UI/export execution still needs validation in an installed Blender version; this repository's tests do not substitute for that check. +`bundle.py` is independent of Blender and has executable fixture tests. The actual helper was also executed in unmodified Blender 4.5.3 LTS, followed by real Editor imports checking stable rename, geometry changes, deleted-output conflict and failure preservation. Reproduce with `python tools/verify_blender_roundtrip.py --blender PATH --editor PATH`. This background integration check does not substitute for testing every Blender UI/platform combination. See `docs/manual/editor/assets.md` for the user workflow and supported content profile. diff --git a/tools/compile_shader.py b/tools/compile_shader.py new file mode 100644 index 0000000..20eb7b8 --- /dev/null +++ b/tools/compile_shader.py @@ -0,0 +1,157 @@ +#!/usr/bin/env python3 +"""Compile Slang and atomically publish SPIR-V with Faset reflection v1. + +The layout fingerprint contains the declared shader interface and actual SPIR-V +push-constant decorations, never compiler formatting or generated ID numbers. +A failed compiler invocation or reflection conversion leaves previous files intact. +""" +from __future__ import annotations + +import argparse +import hashlib +import json +import os +from pathlib import Path +import struct +import subprocess +import sys +import tempfile + + +def digest(data: bytes) -> str: + return hashlib.sha256(data).hexdigest() + + +def canonical(value: object) -> bytes: + return json.dumps(value, sort_keys=True, separators=(",", ":"), ensure_ascii=False).encode("utf-8") + + +def value_type(value: dict) -> str: + kind = value["kind"] + if kind == "scalar": + return value["scalarType"] + if kind == "vector": + return f"{value_type(value['elementType'])}x{value['elementCount']}" + if kind == "matrix": + return f"{value_type(value['elementType'])}x{value['rowCount']}x{value['columnCount']}" + if kind == "array": + return f"{value_type(value['elementType'])}[{value['elementCount']}]" + raise ValueError(f"Unsupported reflected value type: {kind}") + + +def interface(fields: list[dict], category: str) -> tuple[list[dict], list[dict]]: + locations, builtins = [], [] + def visit(field: dict, offset: int = 0) -> None: + ty, binding = field["type"], field.get("binding", {}) + if ty["kind"] == "struct": + for child in ty["fields"]: + visit(child, offset + binding.get("index", 0)) + elif binding.get("kind") == category: + locations.append({"location": offset + binding["index"], "type": value_type(ty)}) + elif field.get("semanticName", "").startswith("SV_"): + builtins.append({"semantic": field["semanticName"], "type": value_type(ty)}) + else: + raise ValueError("Shader interface field lacks a supported location or builtin") + for field in fields: + visit(field) + return sorted(locations, key=lambda item: item["location"]), sorted(builtins, key=lambda item: item["semantic"]) + + +def spirv_push_layout(data: bytes) -> list[dict]: + if len(data) < 20 or len(data) % 4: + raise ValueError("Malformed SPIR-V byte length") + words = struct.unpack(f"<{len(data) // 4}I", data) + if words[0] != 0x07230203 or words[1] > 0x00010600 or not words[3] or words[4]: + raise ValueError("Unsupported SPIR-V header") + pointers, variables, decorations = {}, [], {} + position = 5 + while position < len(words): + count, opcode = words[position] >> 16, words[position] & 0xFFFF + if not count or position + count > len(words): + raise ValueError("Malformed SPIR-V instruction") + operands = words[position + 1:position + count] + if opcode == 32 and len(operands) == 3: # OpTypePointer + pointers[operands[0]] = (operands[1], operands[2]) + elif opcode == 59 and len(operands) >= 3 and operands[2] == 9: # PushConstant OpVariable + variables.append(operands[0]) + elif opcode == 72 and len(operands) >= 3: # OpMemberDecorate + member = decorations.setdefault(operands[0], {}).setdefault(operands[1], {}) + if operands[2] in (4, 5): + member["matrix_layout"] = "row-major" if operands[2] == 4 else "column-major" + elif operands[2] in (7, 35): + if len(operands) != 4: + raise ValueError("Malformed SPIR-V member decoration") + member["matrix_stride" if operands[2] == 7 else "offset"] = operands[3] + position += count + result = [] + for pointer in variables: + storage, structure = pointers[pointer] + if storage != 9: + raise ValueError("Invalid SPIR-V push-constant pointer") + members = [{"member": index, **layout} for index, layout in sorted(decorations.get(structure, {}).items())] + result.append({"members": members}) + return result + + +def normalize(raw: dict, bytecode: bytes, entry_name: str) -> dict: + entry = next(item for item in raw["entryPoints"] if item["name"] == entry_name) + used = {item["name"]: bool(item["binding"].get("used", True)) for item in entry.get("bindings", [])} + descriptors, constants = [], [] + for parameter in raw.get("parameters", []): + binding, ty = parameter["binding"], parameter["type"] + if binding["kind"] == "pushConstantBuffer": + block = ty["elementType"] + size = next(item["value"] for item in block["sizes"] if item["kind"] == "uniform") + members = [{"name": member["name"], "offset": member["binding"]["offset"], "size": member["binding"]["size"], "type": value_type(member["type"])} for member in block["fields"]] + constants.append({"name": parameter["name"], "offset": 0, "size": size, "members": sorted(members, key=lambda item: item["offset"])}) + elif binding["kind"] == "descriptorTableSlot": + count = binding.get("count", 1) + if ty["kind"] == "array": + count = ty["elementCount"] + ty = ty["elementType"] + if ty["kind"] == "samplerState": + descriptor_type = "sampler" + elif ty["kind"] == "resource" and ty.get("baseShape") == "texture2D": + descriptor_type = "sampled_image_2d" + else: + raise ValueError(f"Unsupported descriptor kind: {ty}") + descriptors.append({"name": parameter["name"], "set": binding.get("space", 0), "binding": binding["index"], "type": descriptor_type, "count": count, "used": used.get(parameter["name"], True)}) + else: + raise ValueError(f"Unsupported global shader binding: {binding['kind']}") + inputs, input_builtins = interface(entry.get("parameters", []), "varyingInput") + outputs, output_builtins = interface([entry["result"]] if "result" in entry else [], "varyingOutput") + layout = {"stage": entry["stage"], "descriptors": sorted(descriptors, key=lambda item: (item["set"], item["binding"])), "push_constants": constants, "inputs": inputs, "outputs": outputs, "input_builtins": input_builtins, "output_builtins": output_builtins, "spirv_push_constants": spirv_push_layout(bytecode)} + return {"format": "faset.shader-reflection", "version": 1, "source_entry": entry_name, "entry_point": "main", "matrix_convention": "column-major host matrices; Slang SPIR-V decorations recorded explicitly", "spirv_sha256": digest(bytecode), "layout_fingerprint": digest(canonical(layout)), "layout": layout} + + +def main() -> int: + parser = argparse.ArgumentParser(description=__doc__) + parser.add_argument("--compiler", required=True) + parser.add_argument("--source", required=True, type=Path) + parser.add_argument("--entry", required=True) + parser.add_argument("--output", required=True, type=Path) + args = parser.parse_args() + args.output.mkdir(parents=True, exist_ok=True) + with tempfile.TemporaryDirectory(prefix=".shader-", dir=args.output) as temporary: + directory = Path(temporary) + spirv = directory / f"{args.entry}.spv" + raw = directory / f"{args.entry}.slang-reflection.json" + process = subprocess.run([args.compiler, str(args.source), "-entry", args.entry, "-target", "spirv", "-profile", "spirv_1_6", "-matrix-layout-column-major", "-o", str(spirv), "-reflection-json", str(raw)]) + if process.returncode: + return process.returncode + normalized = normalize(json.loads(raw.read_text(encoding="utf-8")), spirv.read_bytes(), args.entry) + manifest = directory / f"{args.entry}.reflection.json" + manifest.write_text(json.dumps(normalized, indent=2, ensure_ascii=False) + "\n", encoding="utf-8") + # Reflection is the commit record. A reader racing these replacements rejects + # a hash mismatch and keeps its existing pipelines until the complete pair arrives. + for artifact in (raw, spirv, manifest): + os.replace(artifact, args.output / artifact.name) + return 0 + + +if __name__ == "__main__": + try: + raise SystemExit(main()) + except (OSError, ValueError, KeyError, StopIteration) as error: + print(f"Shader reflection error: {error}", file=sys.stderr) + raise SystemExit(1) diff --git a/tools/measure_workflows.py b/tools/measure_workflows.py new file mode 100644 index 0000000..ee9c7f2 --- /dev/null +++ b/tools/measure_workflows.py @@ -0,0 +1,121 @@ +#!/usr/bin/env python3 +"""Measure real Editor/import/C++ iteration on a disposable copy of a sample project. + +Numbers are observations, not CI pass/fail thresholds. Linux peak RSS comes from +GNU time for the command and its waited-for children; other platforms report null. +""" +import argparse +import datetime +import json +import os +from pathlib import Path +import platform +import shutil +import subprocess +import time + + +def main(): + parser = argparse.ArgumentParser(description=__doc__) + parser.add_argument("--editor", type=Path, required=True) + parser.add_argument("--project", type=Path, required=True) + parser.add_argument("--output", type=Path, required=True) + args = parser.parse_args() + editor, source, output = args.editor.resolve(), args.project.resolve(), args.output.resolve() + if output.exists(): + raise RuntimeError("Use a new output directory; existing evidence is never overwritten") + output.mkdir(parents=True) + project = output / "project" + shutil.copytree(source, project, ignore=shutil.ignore_patterns(".faset", "Exports", "*.blend1")) + samples = [] + + def run(label, arguments, timeout=1800): + memory = output / (label + "-memory.json") + command = [str(arg) for arg in arguments] + wrapped = command + if platform.system() == "Linux" and Path("/usr/bin/time").is_file(): + wrapped = ["/usr/bin/time", "-f", '{"peak_rss_kib":%M}', "-o", str(memory), *command] + started = time.perf_counter() + result = subprocess.run(wrapped, cwd=output, capture_output=True, text=True, + encoding="utf-8", timeout=timeout) + elapsed = time.perf_counter() - started + (output / (label + "-stdout.txt")).write_text(result.stdout, encoding="utf-8") + (output / (label + "-stderr.txt")).write_text(result.stderr, encoding="utf-8") + sample = {"name": label, "seconds": elapsed, "returncode": result.returncode, + "peak_rss_kib": json.loads(memory.read_text())["peak_rss_kib"] if memory.exists() else None} + samples.append(sample) + (output / "progress.json").write_text(json.dumps(samples, indent=2), encoding="utf-8") + if result.returncode: + raise RuntimeError(f"{label} failed: {result.stderr[-4000:]} {result.stdout[-2000:]}") + print(f"{label}: {elapsed:.3f}s, peak RSS {sample['peak_rss_kib']} KiB", flush=True) + return result + + def call(label, name, arguments=None): + result = run(label, [editor, "--project", project, "--command", + json.dumps({"name": name, "arguments": arguments or {}}), "--wait"]) + document = json.loads(result.stdout) + if "state" in document and document["state"] != "succeeded": + raise RuntimeError(f"{label} job did not succeed: {document}") + return document + + for index in range(3): + call(f"headless-startup-{index + 1}", "faset_project") + # Separate GUI startup from headless command latency. Includes two frames and + # shutdown, not a claimed first-visible-frame timestamp. + run("editor-gui-two-frames", [editor, "--project", project, "--frames", "2"]) + manifest = project / "Assets/exit-arch/manifest.json" + if manifest.exists(): + call("import-empty-cache", "faset_import", {"path": "Assets/exit-arch/manifest.json"}) + call("import-existing-generation", "faset_import", {"path": "Assets/exit-arch/manifest.json"}) + call("initial-debug-build", "faset_build") + call("unchanged-debug-build", "faset_build") + gameplay = project / "Scripts/Gameplay.cpp" + original = gameplay.read_bytes() + gameplay.write_bytes(original + b"\n// Measurement: one gameplay translation unit changed.\n") + # Verify the user-facing stale status before a successful replacement. + assert call("schema-stale-after-edit", "faset_schema_status")["stale"] + iteration_started = time.perf_counter() + built = call("changed-debug-build", "faset_build")["result"] + profile = output / "development-player.json" + settings = json.loads((project / "project.faset.json").read_text(encoding="utf-8")) + run("changed-build-player-first-frame", [built["player"], "--scene", + project / settings["start_scene"], "--assets", project / ".faset/cache", + "--headless", "--frames", "1", "--profile", profile]) + iteration_seconds = time.perf_counter() - iteration_started + assert not call("schema-current-after-build", "faset_schema_status")["stale"] + # Keep original inputs in this disposable project, without implying its last + # built binary matches the restored source signature. + gameplay.write_bytes(original) + engine = Path(__file__).resolve().parents[1] + revision = subprocess.run(["git", "rev-parse", "HEAD"], cwd=engine, + capture_output=True, text=True).stdout.strip() + dirty = subprocess.run(["git", "status", "--porcelain"], cwd=engine, + capture_output=True, text=True).stdout.strip() + cpu = platform.processor() + if Path("/proc/cpuinfo").exists(): + cpu = next((line.split(":", 1)[1].strip() for line in Path("/proc/cpuinfo").read_text().splitlines() + if line.startswith("model name")), cpu) + report = { + "format": "faset.workflow-measurements", "version": 1, + "recorded_at_utc": datetime.datetime.now(datetime.timezone.utc).isoformat(), + "revision": revision, "working_tree_dirty": bool(dirty), + "host": {"platform": platform.platform(), "cpu": cpu, + "logical_cpus": os.cpu_count(), "python": platform.python_version()}, + "source_project": str(source), "editor": str(editor), + "build_configuration": "Debug", "samples": samples, + "changed_build_and_one_frame_process_seconds": iteration_seconds, + "player": json.loads(profile.read_text()), + "method": [ + "Fresh disposable project, engine dependency archives and OS file caches already available.", + "Each Editor command starts a new process and includes shutdown in wall time.", + "GUI startup sample includes window creation, two frames, and shutdown.", + "Changed build appends a harmless comment, recompiles Gameplay.cpp and relinks native outputs.", + "Combined iteration runs the returned Debug Player in a separate process for one offscreen frame.", + "Peak RSS is GNU time maximum over each command and waited-for children, not a sum.", + "Numbers include ambient host load; there is no warm-up exclusion or real-time frame guarantee." + ]} + (output / "report.json").write_text(json.dumps(report, indent=2) + "\n", encoding="utf-8") + + +if __name__ == "__main__": + main() diff --git a/tools/verify_offline_build.py b/tools/verify_offline_build.py new file mode 100644 index 0000000..248ca33 --- /dev/null +++ b/tools/verify_offline_build.py @@ -0,0 +1,79 @@ +#!/usr/bin/env python3 +"""Linux clean-checkout acceptance in a network namespace with no external network. + +Uses committed HEAD, prefetched checksum-verified archives and local system tools. +Does not download dependencies, install packages or change the source checkout. +""" +import argparse +import datetime +import json +from pathlib import Path +import shutil +import subprocess +import sys +import tarfile +import time + + +def main(): + parser = argparse.ArgumentParser(description=__doc__) + parser.add_argument("--output", type=Path, required=True) + parser.add_argument("--parallel", type=int, default=4) + args = parser.parse_args() + if sys.platform != "linux" or not shutil.which("unshare"): + parser.error("This check requires Linux unshare with user/network namespace support") + if not 1 <= args.parallel <= 64: + parser.error("--parallel must be between 1 and 64") + root, output = Path(__file__).resolve().parents[1], args.output.resolve() + if output.exists(): + parser.error("Use a new output directory to preserve previous evidence") + subprocess.run([sys.executable, root / "tools/fetch_dependencies.py", "--verify-only"], check=True) + if not (root / ".cache/slang/bin/slangc").is_file(): + parser.error("Prefetch Slang before starting the offline check") + # Verify capability before making a potentially expensive copy. + subprocess.run(["unshare", "--user", "--map-root-user", "--net", "true"], check=True) + output.mkdir(parents=True) + revision = subprocess.check_output(["git", "rev-parse", "HEAD"], cwd=root, text=True).strip() + archive, checkout = output / "source.tar", output / "checkout" + with archive.open("wb") as stream: + subprocess.run(["git", "archive", "--format=tar", revision], cwd=root, stdout=stream, check=True) + with tarfile.open(archive) as content: + content.extractall(checkout, filter="data") + archive.unlink() + shutil.copytree(root / ".cache/downloads", checkout / ".cache/downloads") + shutil.copytree(root / ".cache/slang", checkout / ".cache/slang", symlinks=True) + script = output / "offline_driver.py" + script.write_text('''import json, pathlib, socket, subprocess, sys +root = pathlib.Path(sys.argv[1]) +# No external interfaces exist in this newly created network namespace. +with socket.socket() as connection: + connection.settimeout(2) + try: + connection.connect(("1.1.1.1", 443)) + except OSError as error: + print("External network unavailable:", error, flush=True) + else: + raise RuntimeError("Offline check unexpectedly has external connectivity") +subprocess.run([sys.executable, "tools/fetch_dependencies.py", "--verify-only"], cwd=root, check=True) +subprocess.run(["cmake", "--preset", "linux-debug"], cwd=root, check=True) +subprocess.run(["cmake", "--build", "--preset", "linux-debug", "--parallel", sys.argv[2]], cwd=root, check=True) +subprocess.run(["ctest", "--preset", "linux-debug", "-LE", "gpu", "--timeout", "120"], cwd=root, check=True) +''', encoding="utf-8") + started = time.perf_counter() + with (output / "build.log").open("w", encoding="utf-8") as log: + result = subprocess.run(["unshare", "--user", "--map-root-user", "--net", + sys.executable, script, checkout, str(args.parallel)], stdout=log, stderr=subprocess.STDOUT) + report = {"format": "faset.offline-build", "version": 1, "revision": revision, + "recorded_at_utc": datetime.datetime.now(datetime.timezone.utc).isoformat(), + "seconds": time.perf_counter() - started, "returncode": result.returncode, + "network": "fresh user/network namespace; external connection must fail", + "source": "git archive of committed HEAD; no existing build directory", + "inputs": "prefetched archives + Slang; system compiler, SDK and development libraries", + "tests": "full native build, CPU CTests; GPU/window execution verified separately"} + (output / "report.json").write_text(json.dumps(report, indent=2) + "\n", encoding="utf-8") + print(json.dumps(report, indent=2)) + return result.returncode + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/tools/verify_playable_exports.py b/tools/verify_playable_exports.py new file mode 100644 index 0000000..9a35e6d --- /dev/null +++ b/tools/verify_playable_exports.py @@ -0,0 +1,221 @@ +#!/usr/bin/env python3 +"""Export the checked-in playable projects through the real Editor and run relocated games. + +Requires a built Editor, native C++ build tools, Slang and a Vulkan 1.3 driver. +Uses --headless for offscreen rendering. Windows CI can use the pinned SwiftShader +setup; the report records whether Khronos validation was actually available. +Output must be new or empty. Relocated games are retained in an external temporary +directory, and captures/profiles/logs are copied into the evidence directory. +""" +from __future__ import annotations + +import argparse +from datetime import datetime, timezone +import hashlib +import json +import os +from pathlib import Path +import shutil +import signal +import subprocess +import sys +import tempfile +import time + + +def require(condition: bool, message: str) -> None: + if not condition: + raise RuntimeError(message) + + +def read_json(path: Path) -> dict: + return json.loads(path.read_text(encoding="utf-8")) + + +def write_json(path: Path, value: object) -> None: + path.write_text(json.dumps(value, indent=2, ensure_ascii=False) + "\n", encoding="utf-8") + + +def sha256(path: Path) -> str: + with path.open("rb") as stream: + return hashlib.file_digest(stream, "sha256").hexdigest() + + +def run(arguments: list[str | Path], cwd: Path, log: Path, timeout: int = 1800) -> dict: + command = [str(argument) for argument in arguments] + print(f"{log.stem}: {subprocess.list2cmdline(command)}", flush=True) + started = time.monotonic() + process = subprocess.Popen(command, cwd=cwd, stdout=subprocess.PIPE, stderr=subprocess.PIPE, + text=True, encoding="utf-8", errors="replace", + start_new_session=os.name != "nt", + creationflags=subprocess.CREATE_NEW_PROCESS_GROUP if os.name == "nt" else 0) + timed_out = False + try: + stdout, stderr = process.communicate(timeout=timeout) + except subprocess.TimeoutExpired: + timed_out = True + if os.name == "nt": + subprocess.run(["taskkill", "/PID", str(process.pid), "/T", "/F"], + stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL, check=False) + else: + os.killpg(process.pid, signal.SIGKILL) + stdout, stderr = process.communicate() + record = {"arguments": command, "cwd": str(cwd), "seconds": time.monotonic() - started, + "exit_code": process.returncode, "timed_out": timed_out, + "stdout": stdout, "stderr": stderr} + write_json(log, record) + require(not timed_out and process.returncode == 0, + f"Command failed; inspect {log}: {stderr[-2000:]} {stdout[-2000:]}") + return record + + +def command(editor: Path, engine: Path, project: Path, name: str, arguments: dict, log: Path) -> dict: + response = run([editor, "--engine", engine, "--project", project, "--command", + json.dumps({"name": name, "arguments": arguments}), "--wait"], engine, log) + result = json.loads(response["stdout"]) + require(result.get("state") == "succeeded", f"Editor job did not succeed: {log}") + return result + + +def relative_path(root: Path, relative: str) -> Path: + path = (root / relative).resolve() + require(path.is_relative_to(root.resolve()), f"Package path escapes its root: {relative}") + return path + + +def verify_package(directory: Path) -> dict: + manifest = read_json(directory / "manifest.json") + require(manifest.get("format") == "faset.export" and manifest.get("version") == 1, + "Unsupported export manifest") + require(manifest["configuration"] == "Release", "Playable exports must use Release") + for entry in manifest["files"]: + path = relative_path(directory, entry["path"]) + require(path.is_file() and not path.is_symlink(), f"Missing packaged file: {path}") + require(path.stat().st_size == entry["size"] and sha256(path) == entry["sha256"], + f"Packaged file checksum mismatch: {path}") + return manifest + + +def verify_capture(path: Path) -> dict: + header, dimensions, maximum, pixels = path.read_bytes().split(b"\n", 3) + require(header == b"P6" and maximum == b"255", "Expected RGB PPM screenshot") + width, height = (int(value) for value in dimensions.split()) + require(width > 0 and height > 0 and len(pixels) == width * height * 3, + "Incomplete screenshot") + step = 3 * max(1, width * height // 10000) + colors = len({pixels[index:index + 3] for index in range(0, len(pixels), step)}) + require(colors >= 6, "Screenshot lacks the expected game geometry/colors") + return {"width": width, "height": height, "sampled_colors": colors, "sha256": sha256(path)} + + +def main() -> int: + parser = argparse.ArgumentParser(description=__doc__) + parser.add_argument("--engine", type=Path, default=Path(__file__).resolve().parents[1]) + parser.add_argument("--editor", type=Path, required=True) + parser.add_argument("--output", type=Path, required=True) + parser.add_argument("--standalone-root", type=Path, + help="New/empty directory outside the engine and output trees") + args = parser.parse_args() + engine, editor, output = args.engine.resolve(), args.editor.resolve(), args.output.resolve() + require(editor.is_file(), f"Editor does not exist: {editor}") + require(not output.exists() or not any(output.iterdir()), "Output directory must be new/empty") + output.mkdir(parents=True, exist_ok=True) + standalone = (args.standalone_root.resolve() if args.standalone_root else + Path(tempfile.mkdtemp(prefix="faset-playable-exports-"))) + require(not standalone.is_relative_to(engine) and not standalone.is_relative_to(output), + "Standalone games must be outside the engine and evidence trees") + require(not standalone.exists() or not any(standalone.iterdir()), + "Standalone root must be new/empty") + standalone.mkdir(parents=True, exist_ok=True) + evidence, projects = output / "evidence", output / "projects" + evidence.mkdir() + projects.mkdir() + report = {"format": "faset.playable-export-verification", "version": 1, + "started_utc": datetime.now(timezone.utc).isoformat(), "platform": sys.platform, + "engine": str(engine), "editor": str(editor), "standalone_root": str(standalone), + "frames_per_game": 120, "status": "running", "projects": []} + disabled = output / "projects-offline" + try: + for dimension in (2, 3): + name = f"collect-{dimension}d" + source, project = engine / "examples/projects" / name, projects / name + shutil.copytree(source, project, ignore=shutil.ignore_patterns(".faset", "Exports", "*.blend1")) + inputs = [{"path": path.relative_to(project).as_posix(), "sha256": sha256(path)} + for path in sorted(project.rglob("*")) if path.is_file()] + settings = read_json(project / "project.faset.json") + scene = read_json(relative_path(project, settings["start_scene"])) + item = {"name": name, "dimension": dimension, "source_inputs": inputs} + report["projects"].append(item) + if dimension == 3: + imported = command(editor, engine, project, "faset_import", + {"path": "Assets/exit-arch/manifest.json"}, evidence / f"{name}-import.json") + item["import"] = imported["result"] + exported = command(editor, engine, project, "faset_export", + {"document": scene["id"], "output": "Exports"}, + evidence / f"{name}-export.json") + pointer = read_json(project / "Exports/current.json") + require(pointer["format"] == "faset.export-pointer" and pointer["version"] == 1, + "Invalid current export pointer") + generation = relative_path(project / "Exports", pointer["directory"]) + require(generation == Path(exported["result"]["directory"]).resolve(), + "Export response and published pointer disagree") + manifest = verify_package(generation) + require(dimension != 3 or bool(manifest["asset_generations"]), + "3D game did not package its imported Blender asset") + relocated = standalone / name + shutil.copytree(generation, relocated) + verify_package(relocated) + shutil.copy2(relocated / "manifest.json", evidence / f"{name}-manifest.json") + item.update({"generation": pointer["generation"], "configuration": "Release", + "standalone_directory": str(relocated), "executable": manifest["executable"], + "package_file_count": len(manifest["files"]), + "asset_generations": manifest["asset_generations"]}) + write_json(output / "report.json", report) + # Hide exactly our disposable source-project paths while launching both games. + # An empty, unrelated cwd also catches assumptions about the current directory. + projects.rename(disabled) + working = standalone / "empty-working-directory" + working.mkdir() + for item in report["projects"]: + require(not projects.exists(), "Source project paths must be unavailable during launch") + name, dimension = item["name"], item["dimension"] + relocated = Path(item["standalone_directory"]) + player = relative_path(relocated, item["executable"]) + validation = run([player, "--validate"], working, evidence / f"{name}-validate.json", 120) + require(json.loads(validation["stdout"]).get("validated") is True, + "Standalone CPU validation failed") + capture, profile = relocated / "verification.ppm", relocated / "profile.json" + rendered = run([player, "--headless", "--frames", "120", "--capture", capture, + "--profile", profile], working, evidence / f"{name}-run.json", 300) + summary = json.loads(rendered["stdout"].strip().splitlines()[-1]) + require(summary["frames"] == 120 and summary["dimension"] == dimension and + summary["validation_errors"] == 0, "Standalone GPU run reported an error") + measured = read_json(profile) + require(measured["format"] == "faset.player-profile" and measured["version"] == 1 and + measured["completed_frames"] == 120 and measured["dimension"] == dimension and + measured["presentation_mode"] == "offscreen" and measured["validation_errors"] == 0 and + len(measured["samples"]) == 120, "Invalid or incomplete frame profile") + require(all(frame["gpu_allocated_bytes"] > 0 for frame in measured["samples"]), + "Frame profile lacks Vulkan allocation measurements") + item.update({"device": measured["device"], "validation_enabled": measured["validation_enabled"], + "validation_errors": 0, "completed_frames": 120, + "summary_ms": measured["summary_ms"], "capture": verify_capture(capture), + "source_project_paths_unavailable": True, "status": "passed"}) + shutil.copy2(capture, evidence / f"{name}.ppm") + shutil.copy2(profile, evidence / f"{name}-profile.json") + write_json(output / "report.json", report) + report["status"] = "passed" + except Exception as error: + report.update({"status": "failed", "error": str(error)}) + raise + finally: + if disabled.exists() and not projects.exists(): + disabled.rename(projects) + report["finished_utc"] = datetime.now(timezone.utc).isoformat() + write_json(output / "report.json", report) + print(f"Both relocated Release games passed: {output / 'report.json'}", flush=True) + return 0 + + +if __name__ == "__main__": + raise SystemExit(main())