mirror of
https://github.com/johndoe6345789/metabuilder.git
synced 2026-04-24 13:54:57 +00:00
- bsp.load: parse Q3 BSP from pk3 (zip) archives via libzip - Extracts vertices, faces, meshverts from BSP lumps - Coordinate conversion: Q3 Z-up → engine Y-up - Configurable scale (default 1/32 = Q3 units to meters) - Skips sky, clip, trigger, caulk, hint textures - Bullet btBvhTriangleMeshShape collision from BSP geometry - draw.map: graceful fallback when shadow texture missing - Q3 game workflow: FPS controls, 90° FOV, walk around maps - Tested with q3dm17 (The Longest Yard): 8486 verts, 5128 tris - libzip added to cmake dependencies Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
153 lines
5.4 KiB
JSON
153 lines
5.4 KiB
JSON
{
|
|
"project": {
|
|
"name": "SDL3App",
|
|
"cmake_minimum_version": "3.24",
|
|
"default_build_type": "Release",
|
|
"cxx_standard": 20,
|
|
"description": "SDL3 GPU 2D/3D game engine with workflow system"
|
|
},
|
|
"options": [
|
|
{
|
|
"name": "BUILD_SDL3_APP",
|
|
"type": "BOOL",
|
|
"default": "ON",
|
|
"description": "Build the SDL3 GPU demo"
|
|
},
|
|
{
|
|
"name": "ENABLE_CLANG_TIDY",
|
|
"type": "BOOL",
|
|
"default": "OFF",
|
|
"description": "Automatically run clang-tidy on every target"
|
|
},
|
|
{
|
|
"name": "SDL_VERSION",
|
|
"type": "STRING",
|
|
"default": "SDL3",
|
|
"description": "SDL version to use",
|
|
"allowed_values": [
|
|
"SDL3",
|
|
"sdl"
|
|
]
|
|
}
|
|
],
|
|
"test_defaults": {
|
|
"include_directories": [
|
|
"src"
|
|
],
|
|
"link_libraries": [
|
|
"GTest::gtest_main",
|
|
"GTest::gmock",
|
|
"glm::glm",
|
|
"Bullet::Bullet",
|
|
"EnTT::EnTT"
|
|
]
|
|
},
|
|
"dependencies": {
|
|
"always": [
|
|
"SDL3",
|
|
"RapidJSON",
|
|
"nlohmann_json",
|
|
"Bullet",
|
|
"glm",
|
|
"stb",
|
|
"EnTT",
|
|
"assimp",
|
|
"libzip"
|
|
]
|
|
},
|
|
"source_exclusions": [
|
|
"tests/",
|
|
"src/services/impl/config/",
|
|
"src/services/impl/workflow/workflow_config_load_step.cpp",
|
|
"src/services/impl/workflow/workflow_config_migration_step.cpp",
|
|
"src/services/impl/workflow/workflow_config_schema_step.cpp",
|
|
"src/services/impl/workflow/workflow_config_version_step.cpp",
|
|
"src/services/impl/workflow/workflow_config_pipeline.cpp",
|
|
"src/services/impl/workflow/graphics/workflow_graphics_shader_load_step.cpp",
|
|
"src/services/impl/workflow/rendering/workflow_render_cube_grid_step.cpp"
|
|
],
|
|
"targets": [
|
|
{
|
|
"type": "executable",
|
|
"sources": [
|
|
"src/main.cpp",
|
|
"src/services/impl/diagnostics/logger_service.cpp",
|
|
"src/services/impl/workflow/workflow_executor.cpp",
|
|
"src/services/impl/workflow/workflow_step_registry.cpp",
|
|
"src/services/impl/workflow/workflow_exit_step.cpp",
|
|
"src/services/impl/workflow/workflow_parameter_reader.cpp",
|
|
"src/services/impl/workflow/workflow_step_io_resolver.cpp",
|
|
"src/services/impl/workflow/workflow_step_parameter_resolver.cpp",
|
|
"src/services/impl/workflow/workflow_registrar.cpp",
|
|
"src/services/impl/workflow/workflow_sdl_init_step.cpp",
|
|
"src/services/impl/workflow/workflow_sdl_window_create_step.cpp",
|
|
"src/services/impl/workflow/workflow_app_init_step.cpp",
|
|
"src/services/impl/workflow/workflow_load_workflow_step.cpp",
|
|
"src/services/impl/workflow/workflow_definition_parser.cpp",
|
|
"src/services/impl/workflow/workflow_definition_parser_nodes.cpp",
|
|
"src/services/impl/workflow/workflow_definition_parser_variables.cpp",
|
|
"src/services/impl/workflow/workflow_connection_resolver.cpp",
|
|
"src/services/impl/workflow/workflow_execute_step.cpp",
|
|
"src/stb_image.cpp",
|
|
"src/services/impl/workflow/workflow_generic_steps/*.cpp",
|
|
"src/services/impl/workflow/geometry/*.cpp",
|
|
"src/services/impl/workflow/rendering/*.cpp",
|
|
"src/services/impl/workflow/graphics/*.cpp",
|
|
"src/services/impl/workflow/input/*.cpp",
|
|
"src/services/impl/workflow/scene/*.cpp",
|
|
"src/services/impl/workflow/compute/*.cpp",
|
|
"src/services/impl/workflow/workflow_camera_view_state_builder.cpp",
|
|
"src/services/impl/workflow/workflow_cmdline_args_step.cpp",
|
|
"src/services/impl/workflow/workflow_data_deserialize_step.cpp",
|
|
"src/services/impl/workflow/workflow_data_serialize_step.cpp",
|
|
"src/services/impl/workflow/workflow_graphics_init_device_step.cpp",
|
|
"src/services/impl/workflow/workflow_graphics_init_swapchain_step.cpp",
|
|
"src/services/impl/workflow/workflow_media_catalog_scan_step.cpp",
|
|
"src/services/impl/workflow/workflow_media_item_select_step.cpp",
|
|
"src/services/impl/workflow/workflow_network_connect_step.cpp",
|
|
"src/services/impl/workflow/workflow_network_receive_step.cpp",
|
|
"src/services/impl/workflow/workflow_network_send_step.cpp",
|
|
"src/services/impl/workflow/workflow_package_shader_loader_step.cpp",
|
|
|
|
"src/services/impl/workflow/workflow_shader_builtin_constant_color_step.cpp",
|
|
"src/services/impl/workflow/workflow_shader_compile_step.cpp",
|
|
"src/services/impl/workflow/workflow_shader_system_initialize_step.cpp",
|
|
"src/services/impl/workflow/workflow_shader_system_set_step.cpp",
|
|
"src/services/impl/workflow/workflow_state_clear_step.cpp",
|
|
"src/services/impl/workflow/workflow_state_load_step.cpp",
|
|
"src/services/impl/workflow/workflow_state_save_step.cpp",
|
|
"src/services/impl/workflow/workflow_template_resolver.cpp"
|
|
],
|
|
"include_directories": [
|
|
"src"
|
|
],
|
|
"link_libraries": [
|
|
"${SDL_TARGET}",
|
|
"rapidjson",
|
|
"nlohmann_json::nlohmann_json",
|
|
"Bullet::Bullet",
|
|
"glm::glm",
|
|
"stb::stb",
|
|
"EnTT::EnTT",
|
|
"libzip::zip",
|
|
"assimp::assimp"
|
|
],
|
|
"compile_definitions": [],
|
|
"name": "sdl3_app",
|
|
"enabled_when": "BUILD_SDL3_APP"
|
|
}
|
|
],
|
|
"test_targets": [],
|
|
"file_copying": [
|
|
{
|
|
"condition": "BUILD_SDL3_APP",
|
|
"copies": [
|
|
{
|
|
"source": "packages",
|
|
"destination": "${CMAKE_CURRENT_BINARY_DIR}"
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"libraries": []
|
|
} |