Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/Excurs1ons/PrismaEngine/llms.txt

Use this file to discover all available pages before exploring further.

Windows is the primary development platform for Prisma Engine. The engine ships with a DirectX 12 rendering backend as the Windows default, and Vulkan is available as an opt-in alternative. The editor — an ImGui-based scene inspector — is built on Windows by default and uses the Vulkan backend when the PRISMA_BUILD_EDITOR flag is set. All three build targets (engine, editor, runtime) are covered by CMake presets that work from the command line or directly from Visual Studio 2022.

Requirements

Install the following tools before building.
  • Windows 10 or later — Windows 11 recommended for DirectX 12 feature level 12_2
  • Visual Studio 2022 — with the “Desktop development with C++” workload (includes MSVC and CMake integration)
  • CMake 3.20 or later — bundled with Visual Studio 2022, or install separately
  • Vulkan SDK — required if you enable the Vulkan backend via PRISMA_ENABLE_RENDER_VULKAN
The project uses CMake FetchContent by default to download all third-party dependencies (SDL3, ImGui, GLM, VMA, vk-bootstrap, and others) at configure time. You do not need to install them manually unless you set PRISMA_USE_FETCHCONTENT=OFF to switch to vcpkg.

Available presets

All Windows presets target the x64 architecture and use the Visual Studio 17 2022 generator.
Preset nameTargetConfig
engine-windows-x64-debugEngineDebug
engine-windows-x64-releaseEngineRelease
editor-windows-x64-debugEditorDebug
editor-windows-x64-releaseEditorRelease
runtime-windows-x64-debugRuntimeDebug
runtime-windows-x64-releaseRuntimeRelease
The engine target builds the core library only — no editor, no runtime app. The editor target adds the ImGui debug UI and is the target to use during active development. The runtime target builds the standalone player for shipping games.

Build commands

Rendering backends

DirectX 12 (default)

DirectX 12 is the primary rendering backend on Windows. It is enabled by default for all Windows presets via the PRISMA_ENABLE_RENDER_DX12 CMake option. No extra SDK installation is required beyond the Windows SDK that ships with Visual Studio.
# DirectX 12 is ON by default on Windows — no flag needed
# To disable it explicitly:
cmake --preset engine-windows-x64-debug -DPRISMA_ENABLE_RENDER_DX12=OFF
Shader sources for the DirectX 12 backend are in resources/common/shaders/hlsl/.

Vulkan (opt-in)

Vulkan is available on Windows and is the backend used by the editor target. Enable it by setting PRISMA_ENABLE_RENDER_VULKAN=ON. You must have the Vulkan SDK installed and VULKAN_SDK set in your environment.
cmake --preset engine-windows-x64-debug -DPRISMA_ENABLE_RENDER_VULKAN=ON
cmake --build --preset engine-windows-x64-debug
Shader sources for Vulkan are in resources/common/shaders/glsl/. The Vulkan adapter lives in src/engine/graphic/adapters/vulkan/.
The editor preset (editor-windows-x64-debug / editor-windows-x64-release) enables Vulkan automatically. The ImGui debug overlay requires the Vulkan backend to be active.

Key CMake flags

Pass these via -D after the preset name to override defaults.
FlagDescriptionDefault
PRISMA_BUILD_EDITORInclude the ImGui editor applicationON (editor presets only)
PRISMA_ENABLE_RENDER_DX12Enable the DirectX 12 rendering backendON (Windows)
PRISMA_ENABLE_RENDER_VULKANEnable the Vulkan rendering backendOFF (Windows base, ON for editor)
PRISMA_BUILD_SHARED_LIBSBuild the engine as a shared (.dll) libraryON (debug), OFF (release)
PRISMA_ENABLE_IMGUI_DEBUGEnable ImGui debug overlaysON (debug builds)
PRISMA_USE_NATIVE_AUDIOUse XAudio2 instead of SDL3 audioON
PRISMA_USE_NATIVE_INPUTUse XInput instead of SDL3 inputON
The XAudio2 audio backend (PRISMA_ENABLE_AUDIO_XAUDIO2) is currently disabled pending an interface refactor. SDL3 audio (PRISMA_ENABLE_AUDIO_SDL3) is the active backend on Windows for now.

Conditional compilation

Engine modules are gated by preprocessor defines that mirror the CMake flags. Use these guards in your own code when writing Windows-specific logic:
#if defined(PRISMA_ENABLE_RENDER_DX12)
    // DirectX 12-specific path
#endif

#if defined(PRISMA_ENABLE_RENDER_VULKAN)
    // Vulkan-specific path
#endif
All available PRISMA_ENABLE_* options are defined in cmake/DeviceOptions.cmake.

Build docs developers (and LLMs) love