Crafter.Graphics/interfaces/Crafter.Graphics.cppm

75 lines
2.5 KiB
Text
Raw Normal View History

2025-05-07 19:21:51 +02:00
/*
Crafter®.Graphics
2026-03-09 20:10:19 +01:00
Copyright (C) 2026 Catcrafts®
2025-05-07 19:21:51 +02:00
Catcrafts.net
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 3.0 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
2025-04-16 00:43:33 +02:00
export module Crafter.Graphics;
2026-05-18 02:07:48 +02:00
// 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.
2025-04-16 00:43:33 +02:00
export import :Types;
2026-05-12 00:24:48 +02:00
export import :Keys;
export import :Gamepad;
export import :Window;
export import :Input;
2026-03-09 20:10:19 +01:00
export import :Device;
2025-11-24 03:38:20 +01:00
export import :Animation;
2026-03-12 21:13:53 +01:00
export import :ForwardDeclarations;
2026-05-18 04:58:52 +02:00
export import :GraphicsTypes;
2026-05-18 02:07:48 +02:00
export import :Clipboard;
// Vulkan-backed partitions — empty under DOM.
export import :Font;
export import :Mesh;
2026-01-27 22:34:24 +01:00
export import :VulkanTransition;
2026-01-28 01:07:41 +01:00
export import :VulkanBuffer;
2026-01-28 23:37:12 +01:00
export import :ShaderVulkan;
2026-01-31 21:08:42 +01:00
export import :ShaderBindingTableVulkan;
2026-01-29 00:45:02 +01:00
export import :PipelineRTVulkan;
2026-03-09 20:10:19 +01:00
export import :RenderingElement3D;
2026-02-03 21:03:11 +01:00
export import :ImageVulkan;
2026-05-19 00:27:09 +02:00
export import :Image2D;
2026-02-03 21:03:11 +01:00
export import :SamplerVulkan;
2026-04-05 22:53:59 +02:00
export import :DescriptorHeapVulkan;
2026-05-01 23:35:37 +02:00
export import :RenderPass;
export import :RTPass;
2026-05-02 21:08:20 +02:00
export import :FontAtlas;
export import :ComputeShader;
export import :UI;
2026-05-03 02:45:38 +02:00
export import :UIComponents;
2026-05-12 00:24:48 +02:00
export import :InputField;
2026-05-18 02:07:48 +02:00
export import :Decompress;
2026-05-18 18:43:30 +02:00
// Portable RT type aliases (provided on both targets — uses Vulkan
// structs natively, plain PODs of the same layout on DOM).
export import :RT;
2026-05-18 02:07:48 +02:00
// DOM-only partitions — empty under native.
export import :Dom;
export import :DomEvents;
export import :Router;
2026-05-18 04:58:52 +02:00
export import :WebGPU;
export import :WebGPUBuffer;
export import :DescriptorHeapWebGPU;
export import :WebGPUComputeShader;
2026-05-18 18:43:30 +02:00
export import :ShaderBindingTableWebGPU;
export import :PipelineRTWebGPU;