Crafter.Graphics/interfaces/Crafter.Graphics.cppm

59 lines
1.9 KiB
C++

//SPDX-License-Identifier: LGPL-3.0-only
//SPDX-FileCopyrightText: Copyright (C) 2026 Catcrafts®
export module Crafter.Graphics;
// Every partition is `export import`'d unconditionally. Crafter.Build's
// dependency scanner doesn't respect `#ifdef` on `import :X`, so the
// partition file must always exist. Vulkan-typed partitions stub to
// empty modules under CRAFTER_GRAPHICS_WINDOW_DOM, and the new Dom /
// DomEvents / Router partitions stub to empty modules in native
// builds — see project.cpp for the master list.
export import :Types;
export import :Keys;
export import :Gamepad;
export import :Window;
export import :Input;
export import :Device;
export import :Animation;
export import :ForwardDeclarations;
export import :GraphicsTypes;
export import :Clipboard;
// Vulkan-backed partitions — empty under DOM.
export import :Font;
export import :Mesh;
export import :VulkanTransition;
export import :VulkanBuffer;
export import :ShaderVulkan;
export import :ShaderBindingTableVulkan;
export import :PipelineRTVulkan;
export import :RenderingElement3D;
export import :ImageVulkan;
export import :Image2D;
export import :SamplerVulkan;
export import :DescriptorHeapVulkan;
export import :RenderPass;
export import :RTPass;
export import :FontAtlas;
export import :ComputeShader;
export import :UI;
export import :UIComponents;
export import :InputField;
export import :Decompress;
// Portable RT type aliases (provided on both targets — uses Vulkan
// structs natively, plain PODs of the same layout on DOM).
export import :RT;
// DOM-only partitions — empty under native.
export import :Dom;
export import :DomEvents;
export import :Router;
export import :WebGPU;
export import :WebGPUBuffer;
export import :DescriptorHeapWebGPU;
export import :WebGPUComputeShader;
export import :PlainComputeShader;
export import :ShaderBindingTableWebGPU;
export import :PipelineRTWebGPU;