wisdom
Loading...
Searching...
No Matches
api.hpp
1// GENERATED
2#pragma once
3#ifndef WISDOM_MODULE_DECL
4#include <array>
5#include <cstdint>
6#include <functional>
7#define WISDOM_EXPORT
8#else
9#define WISDOM_EXPORT export
10#endif
11
19WISDOM_EXPORT
20namespace wis {
21struct Result;
22struct Size2D;
23struct Size3D;
24struct BufferRegion;
25struct AdapterDesc;
26struct InputSlotDesc;
27struct InputAttribute;
28struct InputLayout;
29struct RasterizerDesc;
30struct SampleDesc;
31struct StencilDesc;
32struct DepthStencilDesc;
34struct BlendStateDesc;
36struct PushConstant;
37struct SwapchainDesc;
38struct TextureDesc;
39struct AllocationInfo;
40struct TextureRegion;
42struct PushDescriptor;
43struct SubresourceRange;
44struct RenderTargetDesc;
45struct Viewport;
46struct Scissor;
47struct BufferBarrier;
48struct TextureBarrier;
50struct DescriptorTable;
51struct SamplerDesc;
52struct ComponentMapping;
55struct FactoryExtQuery;
56struct DeviceExtQuery;
59struct ASAllocationInfo;
61struct ShaderExport;
62struct HitGroupDesc;
66struct DeviceConstants;
68
77enum class ShaderStages : uint32_t {
78 All = 0,
79 Vertex = 1,
80 Hull = 2,
81 Domain = 3,
82 Geometry = 4,
83 Pixel = 5,
84 Amplification = 6,
85 Mesh = 7,
86 Count = 8,
87};
88
94enum class Status : int32_t {
95 Ok = 0,
100 Timeout = 1,
107 Partial = 2,
108 Error = -1,
113 InvalidArgument = -2,
118 OutOfMemory = -3,
123 DeviceLost = -4,
128 Occluded = -5,
129};
130
135enum class QueueType : uint32_t {
136 Graphics = 0,
137 Compute = 2,
138 Copy = 3,
139 VideoDecode = 4,
140};
141
148enum class DescriptorType : uint32_t {
155 Sampler = 0,
156 ConstantBuffer = 1,
157 Texture = 2,
162 RWTexture = 3,
167 RWBuffer = 4,
172 Buffer = 5,
174};
175
180enum class MutiWaitFlags : uint32_t {
181 All = 0,
182 Any = 1,
183};
184
191enum class ASGeometryType : uint32_t {
192 Triangles = 0,
193 AABBs = 1,
194};
195
203 None = 0,
208 MinConsumption = 1,
213 Performance = 2,
214};
215
221enum class RaytracingShaderType : uint32_t {
222 Raygen = 0,
223 Miss = 1,
224 ClosestHit = 2,
225 AnyHit = 3,
226 Intersection = 4,
227 Callable = 5,
228};
229
235enum class Severity {
236 Debug = 0,
237 Trace = 1,
238 Info = 2,
243 Warning = 3,
248 Error = 4,
253 Critical = 5,
254};
255
260enum class ASLevel : uint32_t {
261 Bottom = 0,
262 Top = 1,
263};
264
271enum class HitGroupType : uint32_t {
272 Triangles = 0,
273 Procedural = 1,
274};
275
280enum class InputClass : uint32_t {
281 PerVertex = 0,
282 PerInstance = 1,
283};
284
292enum class CullMode : uint32_t {
293 None = 1,
294 Front = 2,
295 Back = 3,
296};
297
310enum class DataFormat : uint32_t {
311 Unknown = 0,
320 RGBA32Float = 2,
329 RGBA32Uint = 3,
338 RGBA32Sint = 4,
346 RGB32Float = 6,
354 RGB32Uint = 7,
362 RGB32Sint = 8,
371 RGBA16Float = 10,
380 RGBA16Unorm = 11,
389 RGBA16Uint = 12,
398 RGBA16Snorm = 13,
407 RGBA16Sint = 14,
414 RG32Float = 16,
421 RG32Uint = 17,
428 RG32Sint = 18,
434 D32FloatS8Uint = 20,
443 RGB10A2Unorm = 24,
452 RGB10A2Uint = 25,
460 RG11B10Float = 26,
469 RGBA8Unorm = 28,
478 RGBA8UnormSrgb = 29,
487 RGBA8Uint = 30,
496 RGBA8Snorm = 31,
505 RGBA8Sint = 32,
512 RG16Float = 34,
519 RG16Unorm = 35,
526 RG16Uint = 36,
533 RG16Snorm = 37,
540 RG16Sint = 38,
545 D32Float = 40,
551 R32Float = 41,
557 R32Uint = 42,
563 R32Sint = 43,
569 D24UnormS8Uint = 45,
576 RG8Unorm = 49,
583 RG8Uint = 50,
590 RG8Snorm = 51,
597 RG8Sint = 52,
603 R16Float = 54,
608 D16Unorm = 55,
614 R16Unorm = 56,
620 R16Uint = 57,
626 R16Snorm = 58,
632 R16Sint = 59,
638 R8Unorm = 61,
644 R8Uint = 62,
650 R8Snorm = 63,
656 R8Sint = 64,
665 RGB9E5UFloat = 67,
672 BC1RGBAUnorm = 71,
679 BC1RGBAUnormSrgb = 72,
687 BC2RGBAUnorm = 74,
695 BC2RGBAUnormSrgb = 75,
703 BC3RGBAUnorm = 77,
711 BC3RGBAUnormSrgb = 78,
718 BC4RUnorm = 80,
725 BC4RSnorm = 81,
732 BC5RGUnorm = 83,
739 BC5RGSnorm = 84,
747 B5G6R5Unorm = 85,
756 B5G5R5A1Unorm = 86,
765 BGRA8Unorm = 87,
774 BGRA8UnormSrgb = 91,
781 BC6HUfloat16 = 95,
788 BC6HSfloat16 = 96,
795 BC7RGBAUnorm = 98,
802 BC7RGBAUnormSrgb = 99,
811 BGRA4Unorm = 115,
812};
813
820enum class FillMode : uint32_t {
821 Lines = 2,
822 Solid = 3,
823};
824
831enum class DescriptorMemory : uint32_t {
836 CpuOnly = 0,
841 ShaderVisible = 1,
842};
843
850enum class WindingOrder : uint32_t {
851 Clockwise = 0,
852 CounterClockwise = 1,
853};
854
861enum class SampleRate : uint32_t {
862 S1 = 1,
863 S2 = 2,
864 S4 = 4,
865 S8 = 8,
866 S16 = 16,
867};
868
875enum class SwapchainScaling : uint32_t {
876 None = 0,
877 Stretch = 1,
878 Aspect = 2,
879};
880
887enum class Compare : uint32_t {
888 None = 0,
889 Never = 1,
890 Less = 2,
891 Equal = 3,
892 LessEqual = 4,
893 Greater = 5,
894 NotEqual = 6,
895 GreaterEqual = 7,
896 Always = 8,
897};
898
905enum class StencilOp : uint32_t {
906 Keep = 1,
907 Zero = 2,
908 Replace = 3,
909 IncClamp = 4,
910 DecClamp = 5,
911 Invert = 6,
912 IncWrap = 7,
913 DecWrap = 8,
914};
915
922enum class BlendFactor : uint32_t {
923 Zero = 1,
924 One = 2,
925 SrcColor = 3,
926 InvSrcColor = 4,
927 SrcAlpha = 5,
928 InvSrcAlpha = 6,
929 DestAlpha = 7,
930 InvDestAlpha = 8,
931 DestColor = 9,
932 InvDestColor = 10,
933 SrcAlphaSat = 11,
934 ConstantColor = 14,
935 InvBlendFactor = 15,
936 Src1Color = 16,
937 InvSrc1Color = 17,
938 Src1Alpha = 18,
939 InvSrc1Alpha = 19,
940};
941
948enum class BlendOp : uint32_t {
949 Add = 1,
950 Subtract = 2,
951 RevSubtract = 3,
952 Min = 4,
953 Max = 5,
954};
955
962enum class LogicOp : uint32_t {
963 Clear = 0,
964 Set = 1,
965 Copy = 2,
966 CopyInverted = 3,
967 Noop = 4,
968 Invert = 5,
969 And = 6,
970 Nand = 7,
971 Or = 8,
972 Nor = 9,
973 Xor = 10,
974 Equiv = 11,
975 AndReverse = 12,
976 AndInverted = 13,
977 OrReverse = 14,
978 OrInverted = 15,
979};
980
987enum class MemoryType : uint32_t {
988 Default = 0,
993 DeviceLocal = 0,
998 Upload = 1,
1003 Readback = 2,
1011 GPUUpload = 3,
1012};
1013
1018enum class ShaderIntermediate : uint32_t {
1019 DXIL = 0,
1020 SPIRV = 1,
1021};
1022
1029enum class TextureState : uint32_t {
1030 Undefined = 4294967295,
1031 Common = 0,
1032 Read = 1,
1033 RenderTarget = 2,
1034 UnorderedAccess = 3,
1035 DepthStencilWrite = 4,
1036 DepthStencilRead = 5,
1037 ShaderResource = 6,
1038 CopySource = 7,
1039 CopyDest = 8,
1040 Present = 9,
1041 ShadingRate = 10,
1042 VideoDecodeRead = 11,
1043 VideoDecodeWrite = 12,
1044};
1045
1052enum class LoadOperation : uint32_t {
1053 Load = 0,
1054 Clear = 1,
1055 DontCare = 2,
1056};
1057
1062enum class TextureLayout : uint32_t {
1063 Texture1D = 2,
1064 Texture1DArray = 3,
1065 Texture2D = 4,
1066 Texture2DArray = 5,
1067 Texture2DMS = 6,
1068 Texture2DMSArray = 7,
1069 Texture3D = 8,
1070};
1071
1077enum class DescriptorHeapType : uint32_t {
1082 Descriptor = 0,
1087 Sampler = 1,
1088};
1089
1096enum class StoreOperation : uint32_t {
1097 Store = 0,
1098 DontCare = 1,
1099 Resolve = 2,
1100};
1101
1109enum class PrimitiveTopology : uint32_t {
1110 PointList = 1,
1111 LineList = 2,
1112 LineStrip = 3,
1113 TriangleList = 4,
1114 TriangleStrip = 5,
1115 TriangleFan = 6,
1116 LineListAdj = 10,
1117 LineStripAdj = 11,
1118 TriangleListAdj = 12,
1119 TriangleStripAdj = 13,
1120};
1121
1128enum class TopologyType : uint32_t {
1129 Point = 1,
1130 Line = 2,
1131 Triangle = 3,
1132 Patch = 4,
1133};
1134
1140enum class DeviceFeature : uint32_t {
1152 WaitForPresent = 2,
1162 DynamicVSync = 5,
1164 PushDescriptors = 7,
1165};
1166
1173enum class Filter : uint32_t {
1174 Point = 0,
1175 Linear = 1,
1176};
1177
1184enum class AddressMode : uint32_t {
1185 Repeat = 0,
1186 MirroredRepeat = 1,
1187 ClampToEdge = 2,
1188 ClampToBorder = 3,
1189 MirrorClampToEdge = 4,
1190};
1191
1198enum class TextureViewType : uint32_t {
1199 Texture1D = 0,
1200 Texture1DArray = 1,
1201 Texture2D = 2,
1202 Texture2DArray = 3,
1203 Texture2DMS = 4,
1204 Texture2DMSArray = 5,
1205 Texture3D = 6,
1206 TextureCube = 7,
1207 TextureCubeArray = 8,
1208};
1209
1216enum class ComponentSwizzle : uint32_t {
1217 Red = 0,
1218 Green = 1,
1219 Blue = 2,
1220 Alpha = 3,
1221 Zero = 4,
1222 One = 5,
1223};
1224
1232enum class IndexType : uint32_t {
1233 UInt16 = 2,
1234 UInt32 = 4,
1235};
1236
1243enum class FactoryExtID : uint32_t {
1244 Custom = 0,
1245 DebugExtension = 1,
1246};
1247
1254enum class DeviceExtID : uint32_t {
1255 Custom = 0,
1256 DescriptorBufferExtension = 1,
1257 ExtendedAllocation = 2,
1258};
1259
1266enum class ASCopyMode : uint32_t {
1267 Clone = 0,
1268 Compact = 1,
1269 Serialize = 2,
1270 Deserialize = 3,
1271};
1272
1277enum class AdapterFlags {
1278 None = 0x0,
1279 Remote = 1 << 0,
1280 Software = 1 << 1,
1281};
1282
1288enum class DSSelect {
1289 None = 0x0,
1290 Depth = 1 << 0,
1291 Stencil = 1 << 1,
1292 DepthStencil = 0x3,
1293};
1294
1301 None = 0x0,
1302 R = 1 << 0,
1303 G = 1 << 1,
1304 B = 1 << 2,
1305 A = 1 << 3,
1306 All = 0xF,
1307};
1308
1316enum class BufferUsage {
1317 None = 0x0,
1318 CopySrc = 1 << 0,
1319 CopyDst = 1 << 1,
1320 ConstantBuffer = 1 << 2,
1321 IndexBuffer = 1 << 3,
1322 VertexBuffer = 1 << 4,
1323 IndirectBuffer = 1 << 5,
1324 StorageBuffer = 1 << 6,
1327 ShaderBindingTable = 1 << 9,
1328};
1329
1337enum class MemoryFlags {
1338 None = 0x0,
1345 DedicatedAllocation = 1 << 0,
1350 Mapped = 1 << 1,
1357 Exportable = 1 << 2,
1358};
1359
1369 None = 0x0,
1370 Suspending = 1 << 1,
1371 Resuming = 1 << 2,
1372};
1373
1381enum class BarrierSync {
1382 None = 0x0,
1383 All = 1 << 0,
1384 Draw = 1 << 1,
1385 IndexInput = 1 << 2,
1386 VertexShading = 1 << 3,
1387 PixelShading = 1 << 4,
1388 DepthStencil = 1 << 5,
1389 RenderTarget = 1 << 6,
1390 Compute = 1 << 7,
1391 Raytracing = 1 << 8,
1392 Copy = 1 << 9,
1393 Resolve = 1 << 10,
1394 ExecuteIndirect = 1 << 11,
1395 AllShading = 1 << 12,
1396 NonPixelShading = 1 << 13,
1397 ClearUAV = 1 << 14,
1398 VideoDecode = 1 << 15,
1399 VideoEncode = 1 << 16,
1400 BuildRTAS = 1 << 17,
1401 CopyRTAS = 1 << 18,
1402};
1403
1411enum class ResourceAccess {
1416 Common = 0x0,
1417 VertexBuffer = 1 << 0,
1418 ConstantBuffer = 1 << 1,
1419 IndexBuffer = 1 << 2,
1420 RenderTarget = 1 << 3,
1421 UnorderedAccess = 1 << 4,
1422 DepthWrite = 1 << 5,
1423 DepthRead = 1 << 6,
1424 ShaderResource = 1 << 7,
1425 StreamOutput = 1 << 8,
1426 IndirectArgument = 1 << 9,
1427 CopyDest = 1 << 10,
1428 CopySource = 1 << 11,
1429 ConditionalRendering = 1 << 12,
1430 AccelerationStructureRead = 1 << 13,
1431 AccelerationStructureWrite = 1 << 14,
1432 ShadingRate = 1 << 15,
1433 VideoDecodeRead = 1 << 16,
1434 VideoDecodeWrite = 1 << 17,
1435 ResolveDest = 1 << 18,
1436 ResolveSource = 1 << 19,
1437 NoAccess = 1 << 31,
1438};
1439
1447enum class TextureUsage {
1448 None = 0x0,
1449 RenderTarget = 1 << 0,
1450 DepthStencil = 1 << 1,
1451 CopySrc = 1 << 2,
1452 CopyDst = 1 << 3,
1453 ShaderResource = 1 << 4,
1454 UnorderedAccess = 1 << 5,
1455 HostCopy = 1 << 7,
1456};
1457
1463enum class FenceFlags {
1464 None = 0x0,
1465 Shared = 1 << 0,
1466};
1467
1474enum class PipelineFlags {
1475 None = 0x0,
1480 DescriptorBuffer = 1 << 0,
1481};
1482
1490 None = 0x0,
1491 Opaque = 1 << 0,
1493};
1494
1502 None = 0x0,
1503 AllowUpdate = 1 << 0,
1504 AllowCompaction = 1 << 1,
1505 PreferFastTrace = 1 << 2,
1506 PreferFastBuild = 1 << 3,
1507 MinimizeMemory = 1 << 4,
1508};
1509
1517 None = 0x0,
1518 TriangleCullDisable = 1 << 0,
1520 ForceOpaque = 1 << 2,
1521 ForceNoOpaque = 1 << 3,
1522};
1523
1524// [Result]
1534struct Result {
1536 const char* error = nullptr;
1537};
1538// [Result]
1539
1540// [Size2D]
1546struct Size2D {
1547 uint32_t width;
1548 uint32_t height;
1549};
1550// [Size2D]
1551
1552// [Size3D]
1558struct Size3D {
1559 uint32_t width;
1560 uint32_t height;
1562};
1563// [Size3D]
1564
1565// [BufferRegion]
1572 uint64_t src_offset = 0;
1573 uint64_t dst_offset = 0;
1574 uint64_t size_bytes;
1575};
1576// [BufferRegion]
1577
1578// [AdapterDesc]
1586 std::array<const char, 256> description{};
1587 uint32_t vendor_id;
1588 uint32_t device_id;
1589 uint32_t subsys_id;
1590 uint32_t revision;
1594 uint64_t adapter_id;
1595 std::array<uint8_t, 16> adapter_uuid{};
1597};
1598// [AdapterDesc]
1599
1600// [InputSlotDesc]
1611// [InputSlotDesc]
1612
1613// [InputAttribute]
1627// [InputAttribute]
1628
1629// [InputLayout]
1641// [InputLayout]
1642
1643// [RasterizerDesc]
1659// [RasterizerDesc]
1660
1661// [SampleDesc]
1669 float quality = 0.0f;
1670 uint32_t sample_mask = 0xffffffff;
1671};
1672// [SampleDesc]
1673
1674// [StencilDesc]
1688// [StencilDesc]
1689
1690// [DepthStencilDesc]
1705// [DepthStencilDesc]
1706
1707// [BlendAttachmentDesc]
1723// [BlendAttachmentDesc]
1724
1725// [BlendStateDesc]
1732 bool logic_op_enable = false;
1734 std::array<wis::BlendAttachmentDesc, 8> attachments{};
1736};
1737// [BlendStateDesc]
1738
1739// [RenderAttachmentsDesc]
1750// [RenderAttachmentsDesc]
1751
1752// [PushConstant]
1764// [PushConstant]
1765
1766// [SwapchainDesc]
1781// [SwapchainDesc]
1782
1783// [TextureDesc]
1797// [TextureDesc]
1798
1799// [AllocationInfo]
1806 uint64_t size_bytes;
1808};
1809// [AllocationInfo]
1810
1811// [TextureRegion]
1829// [TextureRegion]
1830
1831// [BufferTextureCopyRegion]
1841// [BufferTextureCopyRegion]
1842
1843// [PushDescriptor]
1853// [PushDescriptor]
1854
1855// [SubresourceRange]
1867// [SubresourceRange]
1868
1869// [RenderTargetDesc]
1882// [RenderTargetDesc]
1883
1884// [Viewport]
1891struct Viewport {
1894 float width;
1895 float height;
1898};
1899// [Viewport]
1900
1901// [Scissor]
1907struct Scissor {
1908 int32_t left;
1909 int32_t top;
1910 int32_t right;
1911 int32_t bottom;
1912};
1913// [Scissor]
1914
1915// [BufferBarrier]
1929// [BufferBarrier]
1930
1931// [TextureBarrier]
1950// [TextureBarrier]
1951
1952// [DescriptorTableEntry]
1965// [DescriptorTableEntry]
1966
1967// [DescriptorTable]
1979// [DescriptorTable]
1980
1981// [SamplerDesc]
2002// [SamplerDesc]
2003
2004// [ComponentMapping]
2016// [ComponentMapping]
2017
2018// [ShaderResourceDesc]
2030// [ShaderResourceDesc]
2031
2032// [UnorderedAccessDesc]
2043// [UnorderedAccessDesc]
2044
2045// [FactoryExtQuery]
2063// [FactoryExtQuery]
2064
2065// [DeviceExtQuery]
2083// [DeviceExtQuery]
2084
2085// [TopLevelASBuildDesc]
2102// [TopLevelASBuildDesc]
2103
2104// [AcceleratedGeometryInput]
2122// [AcceleratedGeometryInput]
2123
2124// [ASAllocationInfo]
2131 uint64_t scratch_size;
2132 uint64_t result_size;
2133 uint64_t update_size;
2134};
2135// [ASAllocationInfo]
2136
2137// [DescriptorBindingDesc]
2160// [DescriptorBindingDesc]
2161
2162// [ShaderExport]
2173// [ShaderExport]
2174
2175// [HitGroupDesc]
2188 uint32_t closest_hit_export_index = UINT32_MAX;
2189 uint32_t any_hit_export_index = UINT32_MAX;
2190 uint32_t intersection_export_index = UINT32_MAX;
2191};
2192// [HitGroupDesc]
2193
2194// [ShaderBindingTableInfo]
2204// [ShaderBindingTableInfo]
2205
2206// [RaytracingDispatchDesc]
2228// [RaytracingDispatchDesc]
2229
2230// [TextureCopyRegion]
2240// [TextureCopyRegion]
2241
2242// [DeviceConstants]
2252// [DeviceConstants]
2253
2254// [RaytracingConstants]
2263// [RaytracingConstants]
2264
2265//=================================DELEGATES=================================
2266
2273using DebugCallback = void (*)(wis::Severity severity, const char* message, void* user_data);
2274//==============================TYPE TRAITS==============================
2275
2276template<typename T>
2277struct is_flag_enum : public std::false_type {
2278};
2279template<>
2280struct is_flag_enum<wis::AdapterFlags> : public std::true_type {
2281};
2282template<>
2283struct is_flag_enum<wis::DSSelect> : public std::true_type {
2284};
2285template<>
2286struct is_flag_enum<wis::ColorComponents> : public std::true_type {
2287};
2288template<>
2289struct is_flag_enum<wis::BufferUsage> : public std::true_type {
2290};
2291template<>
2292struct is_flag_enum<wis::MemoryFlags> : public std::true_type {
2293};
2294template<>
2295struct is_flag_enum<wis::RenderPassFlags> : public std::true_type {
2296};
2297template<>
2298struct is_flag_enum<wis::BarrierSync> : public std::true_type {
2299};
2300template<>
2301struct is_flag_enum<wis::ResourceAccess> : public std::true_type {
2302};
2303template<>
2304struct is_flag_enum<wis::TextureUsage> : public std::true_type {
2305};
2306template<>
2307struct is_flag_enum<wis::FenceFlags> : public std::true_type {
2308};
2309template<>
2310struct is_flag_enum<wis::PipelineFlags> : public std::true_type {
2311};
2312template<>
2313struct is_flag_enum<wis::ASGeometryFlags> : public std::true_type {
2314};
2315template<>
2316struct is_flag_enum<wis::AccelerationStructureFlags> : public std::true_type {
2317};
2318template<>
2319struct is_flag_enum<wis::ASInstanceFlags> : public std::true_type {
2320};
2321//============================== CONSTS ==============================
2322
2323inline constexpr Result success{
2324 wis::Status::Ok, "Operation succeeded"
2325};
2326
2327template<typename RetTy>
2329 Result status;
2330 RetTy value;
2331
2332 constexpr ResultValue() noexcept = default;
2333 constexpr ResultValue(wis::Result status) noexcept
2334 : status(status)
2335 {
2336 }
2337
2338 template<typename Callable, typename Callee, typename... Args>
2339 requires std::is_member_function_pointer_v<Callable>
2340 constexpr ResultValue(Callable&& f, Callee* self, Args&&... args) noexcept
2341 : value(std::invoke(f, self, status, std::forward<Args>(args)...))
2342 {
2343 }
2344 template<typename Callable, typename... Args>
2345 constexpr ResultValue(Callable&& f, Args&&... args) noexcept
2346 : value(f(status, std::forward<Args>(args)...))
2347 {
2348 }
2349
2350 template<typename Callable, typename Callee, typename... Args>
2351 static constexpr ResultValue<RetTy> from_member_func(Callable&& f, Callee* self, Args&&... args) noexcept
2352 {
2354 rv.value = std::invoke(f, self, rv.status, std::forward<Args>(args)...);
2355 return rv;
2356 }
2357};
2358
2359template<uint32_t s, typename RetTy>
2360constexpr decltype(auto) get(ResultValue<RetTy>& rv) noexcept
2361{
2362 if constexpr (s == 0) {
2363 return std::forward<Result>(rv.status);
2364 } else {
2365 return std::forward<RetTy>(rv.value);
2366 }
2367}
2368
2369} // namespace wis
Definition api.hpp:20
ASGeometryType
Type of the geometry in the Acceleration Structure.
Definition api.hpp:191
@ Triangles
Triangles geometry type. Used for triangle meshes.
@ AABBs
Axis Aligned Bounding Boxes geometry type. Used for bounding volume hierarchies.
BlendFactor
Blend factor for color blending operations.
Definition api.hpp:922
@ InvSrc1Color
Use the inverse source color for blending. Dual source blending mode.
@ SrcAlphaSat
Use the source alpha saturated for blending.
@ One
Use one for blending.
@ SrcColor
Use the source color for blending.
@ DestAlpha
Use the destination alpha for blending.
@ InvSrcAlpha
Use the inverse source alpha for blending.
@ InvDestColor
Use the inverse destination color for blending.
@ Src1Color
Use the source color for blending. Dual source blending mode.
@ Src1Alpha
Use the source alpha for blending. Dual source blending mode.
@ DestColor
Use the destination color for blending.
@ InvDestAlpha
Use the inverse destination alpha for blending.
@ SrcAlpha
Use the source alpha for blending.
@ Zero
Use zero for blending.
@ InvBlendFactor
Use the inverse constant blend factor for blending.
@ InvSrcColor
Use the inverse source color for blending.
@ ConstantColor
Use a constant blend factor for blending.
@ InvSrc1Alpha
Use the inverse source alpha for blending. Dual source blending mode.
Filter
Filtering mode for texture sampling.
Definition api.hpp:1173
@ Linear
Linear filtering.
InputClass
Input classification for vertex buffer data.
Definition api.hpp:280
@ PerVertex
Vertex buffer data is vertex data.
@ PerInstance
Vertex buffer data is per instance data.
ShaderStages
Shader stages that can be used in the pipeline. Main use is Root signature and descriptor management....
Definition api.hpp:77
@ Pixel
Pixel/Fragment shader stage.
@ Hull
Hull/Tessellation control shader stage.
@ Mesh
Mesh shader stage.
@ All
All shader stages.
@ Vertex
Vertex shader stage.
@ Amplification
Amplification shader stage.
@ Geometry
Geometry shader stage.
@ Count
Number of stages.
@ Domain
Domain/Tessellation evaluation shader stage.
AddressMode
Address mode for texture sampling.
Definition api.hpp:1184
@ MirrorClampToEdge
Mirror and clamp the texture to the edge.
@ MirroredRepeat
Repeat the texture with mirroring.
@ Repeat
Repeat the texture.
@ ClampToEdge
Clamp the texture to the edge.
@ ClampToBorder
Clamp the texture to the border.
DescriptorMemory
Descriptor memory type. Decides if descriptors are visible and can be bound to GPU.
Definition api.hpp:831
@ ShaderVisible
Descriptors are visible to GPU. Descriptors can be bound to the GPU pipeline directly.
@ CpuOnly
Descriptors are only visible to CPU. May be used for copying descriptors to the GPU visible pool.
MemoryType
Memory type for resource allocation.
Definition api.hpp:987
@ Default
Default memory type. Alias for wis::MemoryType::DeviceLocal.
@ Upload
Upload memory type. Used for data that is uploaded to the GPU Local memory using copy operations.
@ DeviceLocal
Default memory type. Local device memory, most efficient for rendering.
@ Readback
Readback memory type. Used for data that is read back from the GPU Local memory using copy operations...
@ GPUUpload
GPU upload memory type. Used for data that is directly uploaded to the GPU Local memory using copy op...
AdapterPreference
Oreders the adapters according to preference using builtin heuristics of underlying APIs.
Definition api.hpp:202
@ None
No particular preference, list adapters in system divised order.
@ MinConsumption
List the adapters from low power consumption to high. Order is as follows: Integrated,...
@ Performance
List the adapters from high performance to low. Order is as follows: External, Discrete,...
QueueType
Type of the queue to create.
Definition api.hpp:135
@ VideoDecode
Queue is used for video decoding operations.
@ Copy
Queue is used for copy operations.
@ Compute
Queue is used for compute operations.
@ Graphics
Queue is used for graphics operations.
StoreOperation
Attachment store operation for render pass.
Definition api.hpp:1096
@ Resolve
Resolve the attachment contents. Used for multisampling attachments.
@ Store
Store the attachment contents.
ResourceAccess
Resource access flags. Determine how resource will be accessed. Used in Barriers.
Definition api.hpp:1411
@ ResolveSource
Resolve source access. Used in multisampling.
@ AccelerationStructureRead
Acceleration structure read access.
@ StreamOutput
Stream output access. Applies only to buffers. Reserved for extension.
@ IndirectArgument
Indirect argument access.
@ DepthRead
Depth read access. Applies only to DS textures.
@ NoAccess
No access. Used to indicate no access throughout pipeline.
@ ResolveDest
Resolve destination access. Used in multisampling.
@ AccelerationStructureWrite
Acceleration structure write access.
@ DepthWrite
Depth write access. Applies only to DS textures.
@ ConditionalRendering
Conditional rendering access.
AdapterFlags
Flags that describe adapter.
Definition api.hpp:1277
@ Software
Adapter is software. Used for software rendering.
@ Remote
Adapter is remote. Used for remote rendering.
BlendOp
Blend operation for color blending operations.
Definition api.hpp:948
@ Subtract
Subtract the source color from the destination color.
@ Max
Use the maximum of the source and destination colors.
@ Min
Use the minimum of the source and destination colors.
@ RevSubtract
Subtract the destination color from the source color.
@ Add
Add the source and destination colors.
RaytracingShaderType
Shader stages that can be used in the raytracing pipeline.
Definition api.hpp:221
@ Callable
Callable shader stage.
@ Intersection
Intersection shader stage.
@ ClosestHit
Closest hit shader stage.
@ Miss
Miss shader stage.
@ Raygen
Ray generation shader stage.
@ AnyHit
Any hit shader stage.
DSSelect
Depth stencil select flags. Affect which part of the depth stencil buffer is used.
Definition api.hpp:1288
@ DepthStencil
Use both depth and stencil parts of the depth stencil buffer.
@ Depth
Use depth part of the depth stencil buffer.
@ Stencil
Use stencil part of the depth stencil buffer.
DescriptorType
Type of the descriptor in the descriptor table.
Definition api.hpp:148
@ AccelerationStructure
Descriptor is an acceleration structure.
@ Sampler
Descriptor is a sampler. Sampler is used to sample textures in shaders. Stored in separate descriptor...
@ Buffer
Descriptor is a shader resource buffer. May be bigger than constant buffers, but slower.
@ RWTexture
Descriptor is an unordered access read-write texture. Used for read/write operations in compute shade...
@ RWBuffer
Descriptor is an unordered access read-write buffer. Used for read/write operations in compute shader...
@ Texture
Descriptor is a texture.
@ ConstantBuffer
Descriptor is a constant buffer.
BarrierSync
Barrier synchronization flags. Used to synchronize resources between different stages of the pipeline...
Definition api.hpp:1381
@ Raytracing
Synchronize raytracing commands.
@ Draw
Synchronize draw commands.
@ VertexShading
Synchronize vertex shading commands.
@ ExecuteIndirect
Synchronize execute indirect commands.
@ NonPixelShading
Synchronize non-pixel shading commands.
@ BuildRTAS
Synchronize build raytracing acceleration structure commands.
@ ClearUAV
Synchronize clear UAV commands.
@ CopyRTAS
Synchronize copy raytracing acceleration structure commands.
@ AllShading
Synchronize all shading commands.
@ VideoEncode
Synchronize video encode commands.
@ IndexInput
Synchronize index input commands.
@ PixelShading
Synchronize pixel shading commands.
Status
Represents main error communication source for the API. Compare against wis::Status::Ok for success.
Definition api.hpp:94
@ InvalidArgument
One or more arguments, or parts of arguments passed to the function were incorrect....
@ Occluded
Swapchain presentation was not visible to the user. Rendering is too fast.
@ Partial
Operation partially succeeded. Some times it means that core value is initialized,...
@ Error
Operation failed. Check wis::Result::error for more details.
@ Ok
Operation succeded.
@ OutOfMemory
There is no more host memory available. Allocation with malloc or similar call has failed.
@ Timeout
Operation timed out. Counts as a success value in some cases.
@ DeviceLost
Device driver was forcefully stopped. Most of the time happens on swapchain presentation.
CullMode
Cull mode for rasterizer. Triangle culling depends on wis::WindingOrder option.
Definition api.hpp:292
@ Back
Cull back-facing triangles.
@ Front
Cull front-facing triangles.
void(*)(wis::Severity severity, const char *message, void *user_data) DebugCallback
Debug callback delegate. Used for Library internal log messages.
Definition api.hpp:2273
MemoryFlags
Memory flags. Determine optional properties of the memory allocation.
Definition api.hpp:1337
@ DedicatedAllocation
Memory is dedicated. Used for resources that require dedicated memory. Useful for big resources that ...
@ Mapped
Memory is mapped. Used in combination with wis::MemoryType::Upload or wis::MemoryType::Readback to ma...
@ Exportable
Memory is exportable. If set, memory can be exported to other processes or APIs. Works only with Devi...
PipelineFlags
Pipeline flags for additional pipeline features.
Definition api.hpp:1474
@ DescriptorBuffer
Pipeline is created to be used with DescriptorBuffer extension. Do not mix DescriptorBuffer and non-D...
PrimitiveTopology
Primitive topology for rendering. More info could be found here.
Definition api.hpp:1109
@ LineListAdj
Render lines between vertices with adjacency.
@ TriangleFan
Interpret vertex data to form a fan of triangles.
@ PointList
Render points for each vertex.
@ TriangleStrip
Render triangles between vertices in a strip.
@ LineList
Render lines between vertices.
@ LineStripAdj
Render lines between vertices in a strip with adjacency.
@ TriangleListAdj
Render triangles between vertices with adjacency.
@ LineStrip
Render lines between vertices in a strip.
@ TriangleList
Render triangles between vertices.
@ TriangleStripAdj
Render triangles between vertices in a strip with adjacency.
FenceFlags
Fence flags for additional fence features.
Definition api.hpp:1463
@ Shared
Fence is shared. Used for sharing fences for single physical device.
FactoryExtID
Factory extension ID. Platform extension values start from 2049 0 is reserved as invalid/custom exten...
Definition api.hpp:1243
@ Custom
Custom provided extension. Default initialization of the extension is done by user.
SwapchainScaling
Swapchain scaling mode.
Definition api.hpp:875
@ Aspect
Aspect scaling. The swapchain size is scaled to the window size with aspect ratio preserved.
@ Stretch
Stretch scaling. The swapchain size is stretched to the window size.
ASLevel
Level of the Raytracing Acceleration Structure. Used to create Acceleration structures.
Definition api.hpp:260
@ Bottom
Bottom level Acceleration Structure. Contains geometry data.
@ Top
Top level Acceleration Structure. Contains instance data.
ShaderIntermediate
Intermediate shader representation.
Definition api.hpp:1018
@ DXIL
DirectX Intermediate Language.
@ SPIRV
Standard Portable Intermediate Representation for Vulkan.
FillMode
Fill mode for rasterizer.
Definition api.hpp:820
@ Lines
Draw lines between vertices. Wireframe rendering.
@ Solid
Fill the area between vertices forming polygons.
ComponentSwizzle
Component swizzle for texture sampling.
Definition api.hpp:1216
@ Alpha
Use the alpha component for sampling.
@ Blue
Use the blue component for sampling.
@ Green
Use the green component for sampling.
@ Red
Use the red component for sampling.
TextureViewType
Texture view type.
Definition api.hpp:1198
@ TextureCube
Texture is a cube map.
@ TextureCubeArray
Texture is an array of cube maps.
ColorComponents
Color component flags. Used for color blending operations.
Definition api.hpp:1300
@ A
Use alpha component for blending.
@ B
Use blue component for blending.
@ All
Use all color components for blending.
@ G
Use green component for blending.
@ R
Use red component for blending.
TextureLayout
Texture layout. Determines how texture will be accessed.
Definition api.hpp:1062
@ Texture2DArray
Texture is an array of 2D images. Can also be used for Cube maps.
@ Texture2DMS
Texture is 2D multisampled image.
@ Texture3D
Texture is 3D volume.
@ Texture1DArray
Texture is an array of 1D data.
@ Texture2D
Texture is 2D image, default texture type.
@ Texture2DMSArray
Texture is an array of 2D multisampled images.
@ Texture1D
Texture is 1D array of data. Behaves similarly to Buffer.
LogicOp
Logic operation for color blending operations.
Definition api.hpp:962
@ AndReverse
Perform a bitwise AND operation on the source and inverted destination values.
@ Noop
Do not modify the destination value.
@ Or
Perform a bitwise OR operation on the source and destination values.
@ Equiv
Perform a bitwise equivalent operation on the source and destination values.
@ Set
Set the destination value.
@ Nor
Perform a bitwise NOR operation on the source and destination values.
@ Xor
Perform a bitwise XOR operation on the source and destination values.
@ OrReverse
Perform a bitwise OR operation on the source and inverted destination values.
@ OrInverted
Perform a bitwise OR operation on the inverted source and destination values.
@ And
Perform a bitwise AND operation on the source and destination values.
@ Nand
Perform a bitwise NAND operation on the source and destination values.
@ Clear
Clear the destination value.
@ AndInverted
Perform a bitwise AND operation on the inverted source and destination values.
@ CopyInverted
Copy the inverted source value to the destination.
RenderPassFlags
Render pass flags. Set of flags that affect render pass behavior. More on render pass flags here.
Definition api.hpp:1368
@ Suspending
Render pass is suspending.
@ Resuming
Render pass is resuming.
Severity
Log message severity. Used with wis::DebugCallback and internal library logging.
Definition api.hpp:235
@ Warning
Message contains warning. There is something wrong and it may affect performance or stability of the ...
@ Critical
Message contains critical error. The application must be shut down, no further execution.
@ Info
Message contains general information.
@ Debug
Message carries debug information.
@ Trace
Message contains trace point (function call stack info).
ASGeometryFlags
Geometry flags for additional geometry features.
Definition api.hpp:1489
@ NoDuplicateAnyHitInvocation
Geometry has no duplicate any hit invocation.
@ Opaque
Geometry is opaque. Used for opaque geometry.
ASCopyMode
Acceleration structure copy mode.
Definition api.hpp:1266
@ Deserialize
Deserialize the acceleration structure.
@ Serialize
Serialize the acceleration structure.
@ Compact
Compact the acceleration structure.
@ Clone
Clone the acceleration structure.
DeviceFeature
Features that device may support. Query by calling with Device::QueryFeatureSupport....
Definition api.hpp:1140
@ WaitForPresent
Supports waiting for present to finish. Support for VK, always true for DX12. Unlocks Swapchain::Wait...
@ PushDescriptors
Supports push descriptors. Support for VK, always true for DX12.
@ UnusedRenderTargets
Supports unused render targets. Support for VK, always true for DX12.
@ DynamicVSync
Supports dynamic VSync. Support for VK, always true for DX12. Unlocks Swapchain::Present2 function....
@ AdvancedIndexBuffer
Supports advanced index buffer features. Support for VK, always true for DX12. Unlocks CommandList::I...
@ EnchancedBarriers
Core Functionality. Supports enhanced barriers. Support for VK and DX12. Used in all barriers to prov...
StencilOp
Stencil operation for depth and stencil operations.
Definition api.hpp:905
@ Keep
Keep the current value.
@ Replace
Replace the value with the reference value.
@ DecWrap
Decrement the value and wrap to the maximum value when the minimum value is exceeded.
@ IncWrap
Increment the value and wrap to zero when the maximum value is exceeded.
@ DecClamp
Decrement the value and clamp to the minimum value.
@ Invert
Invert the value.
@ IncClamp
Increment the value and clamp to the maximum value.
@ Zero
Set the value to zero.
TextureUsage
Texture usage flags. Determine how the texture can be used throughout its lifetime.
Definition api.hpp:1447
@ None
No flags set. Texture is not used.
@ HostCopy
Texture is used for host copy operations. Works with ExtendedAllocation extension.
IndexType
Index type for index buffer. Enum values resemble the byte stride of the format.
Definition api.hpp:1232
@ UInt16
16-bit unsigned integer index type.
@ UInt32
32-bit unsigned integer index type.
AccelerationStructureFlags
Acceleration structure flags for additional acceleration structure features.
Definition api.hpp:1501
@ MinimizeMemory
Acceleration structure is minimized for memory usage.
@ PreferFastBuild
Acceleration structure is preferred to be fast built.
@ AllowCompaction
Acceleration structure is allowed to be compacted.
@ PreferFastTrace
Acceleration structure is preferred to be fast traced.
@ AllowUpdate
Acceleration structure is allowed to be updated.
DescriptorHeapType
Descriptor heap type.
Definition api.hpp:1077
@ Descriptor
Descriptor heap type. Used for all descriptor types, except for samplers.
Compare
Comparison function for depth and stencil operations.
Definition api.hpp:887
@ NotEqual
Pass the comparison if the source value is not equal to the destination value.
@ Less
Pass the comparison if the source value is less than the destination value.
@ Always
Always pass the comparison.
@ Never
Always fail the comparison.
@ GreaterEqual
Pass the comparison if the source value is greater than or equal to the destination value.
@ Greater
Pass the comparison if the source value is greater than the destination value.
@ LessEqual
Pass the comparison if the source value is less than or equal to the destination value.
@ Equal
Pass the comparison if the source value is equal to the destination value.
LoadOperation
Attachment load operation for render pass.
Definition api.hpp:1052
@ DontCare
Do not care about the attachment contents.
@ Load
Load the attachment contents.
SampleRate
Sample rate for multisampling.
Definition api.hpp:861
@ S1
1 sample per pixel.
@ S16
16 samples per pixel.
@ S8
8 samples per pixel.
@ S2
2 samples per pixel.
@ S4
4 samples per pixel.
BufferUsage
Buffer usage flags. Determine how the buffer can be used throughout its lifetime.
Definition api.hpp:1316
@ VertexBuffer
Buffer is used as a vertex buffer or an instance buffer.
@ ShaderBindingTable
Buffer is used as a shader binding table buffer.
@ AccelerationStructureInput
Buffer is used as a read only acceleration instance input buffer.
@ StorageBuffer
Buffer is used as a storage unordered access buffer.
@ CopyDst
Buffer is used as a destination for copy operations.
@ IndexBuffer
Buffer is used as an index buffer.
@ IndirectBuffer
Buffer is used as an indirect buffer.
@ CopySrc
Buffer is used as a source for copy operations.
@ AccelerationStructureBuffer
Buffer is used as an acceleration structure buffer.
TopologyType
Primitive topology type for rendering.
Definition api.hpp:1128
@ Patch
Vertices are interpret as patch list. Used in tesselation process.
@ Point
Render points for each vertex.
@ Line
Render lines between vertices.
@ Triangle
Render triangles between vertices.
TextureState
Texture state for resource transitions.
Definition api.hpp:1029
@ UnorderedAccess
Unordered Access state.
@ Read
General Read state.
@ VideoDecodeWrite
Video Decode Write state.
@ RenderTarget
Render Target state.
@ DepthStencilRead
Depth Stencil Read state.
@ DepthStencilWrite
Depth Stencil Write state.
@ CopyDest
Copy Destination state.
@ VideoDecodeRead
Video Decode Read state.
@ ShadingRate
Shading Rate state. Used for Variable Shading Rate.
@ Common
Common state.
@ ShaderResource
Shader Resource state.
@ Present
Present swapchain state.
@ Undefined
Undefined state.
@ CopySource
Copy Source state.
DeviceExtID
Device extension ID. Platform extension values start from 2049 0 is reserved as invalid/custom extens...
Definition api.hpp:1254
DataFormat
Data format for data. Used as a template for data in several cases. Can be used to describe:
Definition api.hpp:310
@ BGRA8UnormSrgb
8 bit per channel RGBA format. SRGB non-linear color space. A four-component, 32-bit unsigned normali...
@ BC2RGBAUnormSrgb
BC2/DXT3 compressed format. A four-component, block-compressed format where each 128-bit compressed t...
@ BC3RGBAUnorm
BC3/DXT5 compressed format. A four-component, block-compressed format where each 128-bit compressed t...
@ RGB10A2Uint
10 bit per channel RGB format with 2 bit alpha. A four-component, 32-bit unsigned integer format that...
@ RG8Snorm
8 bit per channel RG format. A two-component, 16-bit signed normalized format that has an 8-bit R com...
@ RG32Sint
32 bit per channel RG format. A two-component, 64-bit signed integer format that has a 32-bit R compo...
@ RG8Unorm
8 bit per channel RG format. A two-component, 16-bit unsigned normalized format that has an 8-bit R c...
@ R32Sint
32 bit per channel R format. A one-component, 32-bit signed integer format that has a 32-bit R compon...
@ BC5RGUnorm
BC5 compressed format. A two-component, block-compressed format where each 128-bit compressed texel b...
@ RGBA8UnormSrgb
8 bit per channel RGBA format. SRGB non-linear color space. A four-component, 32-bit unsigned normali...
@ BC2RGBAUnorm
BC2/DXT3 compressed format. A four-component, block-compressed format where each 128-bit compressed t...
@ R8Unorm
8 bit per channel R format. A one-component, 8-bit unsigned normalized format that has an 8-bit R com...
@ R16Sint
16 bit per channel R format. A one-component, 16-bit signed integer format that has a 16-bit R compon...
@ R16Snorm
16 bit per channel R format. A one-component, 16-bit signed normalized format that has a 16-bit R com...
@ RG16Uint
16 bit per channel RG format. A two-component, 32-bit unsigned integer format that has a 16-bit R com...
@ RGB32Float
32 bit per channel RGB format. A three-component, 96-bit signed floating-point format that has a 32-b...
@ D24UnormS8Uint
24 bit depth, 8 bit stencil format. A combined depth/stencil format with a 24-bit depth component in ...
@ D16Unorm
16 bit depth format. A 16-bit depth format supporting 16-bit unsigned normalized depth values.
@ RGBA32Sint
32 bit per channel RGBA format. A four-component, 128-bit signed integer format that has a 32-bit R c...
@ RGBA16Float
16 bit per channel RGBA format. A four-component, 64-bit signed floating-point format that has a 16-b...
@ D32FloatS8Uint
32 bit depth, 8 bit stencil format. A combined depth/stencil format with a 32-bit depth component in ...
@ BC1RGBAUnorm
BC1/DXT1 compressed format. A four-component, block-compressed format where each 64-bit compressed te...
@ D32Float
32 bit depth format. A 32-bit depth format supporting 32-bit floating-point depth values.
@ RGBA16Uint
16 bit per channel RGBA format. A four-component, 64-bit unsigned integer format that has a 16-bit R ...
@ RGBA8Snorm
8 bit per channel RGBA format. A four-component, 32-bit signed normalized format that has an 8-bit R ...
@ R8Sint
8 bit per channel R format. A one-component, 8-bit signed integer format that has an 8-bit R componen...
@ RGBA16Unorm
16 bit per channel RGBA format. A four-component, 64-bit unsigned normalized format that has a 16-bit...
@ RGB32Sint
32 bit per channel RGB format. A three-component, 96-bit signed integer format that has a 32-bit R co...
@ RG16Snorm
16 bit per channel RG format. A two-component, 32-bit signed normalized format that has a 16-bit R co...
@ R16Float
16 bit per channel R format. A one-component, 16-bit signed floating-point format that has a 16-bit R...
@ RGB10A2Unorm
10 bit per channel RGB format with 2 bit alpha. A four-component, 32-bit unsigned normalized format t...
@ RGBA16Snorm
16 bit per channel RGBA format. A four-component, 64-bit signed normalized format that has a 16-bit R...
@ RG16Float
16 bit per channel RG format. A two-component, 32-bit signed floating-point format that has a 16-bit ...
@ RGB32Uint
32 bit per channel RGB format. A three-component, 96-bit unsigned integer format that has a 32-bit R ...
@ B5G6R5Unorm
16 bit per channel RGB format. A three-component, 16-bit unsigned normalized format that has a 5-bit ...
@ BC5RGSnorm
BC5 compressed format. A two-component, block-compressed format where each 128-bit compressed texel b...
@ Unknown
Unknown format.
@ RG32Float
32 bit per channel RG format. A two-component, 64-bit signed floating-point format that has a 32-bit ...
@ BC4RUnorm
BC4 compressed format. A single-component, block-compressed format where each 64-bit compressed texel...
@ R8Uint
8 bit per channel R format. A one-component, 8-bit unsigned integer format that has an 8-bit R compon...
@ RGBA16Sint
16 bit per channel RGBA format. A four-component, 64-bit signed integer format that has a 16-bit R co...
@ BC7RGBAUnorm
BC7 compressed format. A four-component, block-compressed format where each 128-bit compressed texel ...
@ RGBA8Uint
8 bit per channel RGBA format. A four-component, 32-bit unsigned integer format that has an 8-bit R c...
@ RGBA8Sint
8 bit per channel RGBA format. A four-component, 32-bit signed integer format that has an 8-bit R com...
@ RG8Sint
8 bit per channel RG format. A two-component, 16-bit signed integer format that has an 8-bit R compon...
@ BC1RGBAUnormSrgb
BC1/DXT1 compressed format. A four-component, block-compressed format where each 64-bit compressed te...
@ R32Uint
32 bit per channel R format. A one-component, 32-bit unsigned integer format that has a 32-bit R comp...
@ R16Unorm
16 bit per channel R format. A one-component, 16-bit unsigned normalized format that has a 16-bit R c...
@ B5G5R5A1Unorm
16 bit per channel RGBA format. A four-component, 16-bit unsigned normalized format that has a 5-bit ...
@ RGB9E5UFloat
9 bit per channel RGB format with shared exponent. A three-component, 32-bit unsigned floating-point ...
@ RG8Uint
8 bit per channel RG format. A two-component, 16-bit unsigned integer format that has an 8-bit R comp...
@ RG16Unorm
16 bit per channel RG format. A two-component, 32-bit unsigned normalized format that has a 16-bit R ...
@ BC3RGBAUnormSrgb
BC3/DXT5 compressed format. A four-component, block-compressed format where each 128-bit compressed t...
@ RGBA8Unorm
8 bit per channel RGBA format. A four-component, 32-bit unsigned normalized format that has an 8-bit ...
@ RGBA32Uint
32 bit per channel RGBA format. A four-component, 128-bit unsigned integer format that has a 32-bit R...
@ RG16Sint
16 bit per channel RG format. A two-component, 32-bit signed integer format that has a 16-bit R compo...
@ R8Snorm
8 bit per channel R format. A one-component, 8-bit signed normalized format that has an 8-bit R compo...
@ R16Uint
16 bit per channel R format. A one-component, 16-bit unsigned integer format that has a 16-bit R comp...
@ R32Float
32 bit per channel R format. A one-component, 32-bit signed floating-point format that has a 32-bit R...
@ BGRA8Unorm
8 bit per channel RGBA format. A four-component, 32-bit unsigned normalized format that has an 8-bit ...
@ RGBA32Float
32 bit per channel RGBA format. A four-component, 128-bit signed floating-point format that has a 32-...
@ BC7RGBAUnormSrgb
BC7 compressed format. A four-component, block-compressed format where each 128-bit compressed texel ...
@ BC6HSfloat16
BC6H compressed format. A three-component, block-compressed format where each 128-bit compressed texe...
@ BC4RSnorm
BC4 compressed format. A single-component, block-compressed format where each 64-bit compressed texel...
@ BC6HUfloat16
BC6H compressed format. A three-component, block-compressed format where each 128-bit compressed texe...
@ RG32Uint
32 bit per channel RG format. A two-component, 64-bit unsigned integer format that has a 32-bit R com...
@ RG11B10Float
11 bit per channel RG format with 10 bit blue. A three-component, 32-bit signed floating-point format...
@ BGRA4Unorm
4 bit per channel RGB format. A four-component, 16-bit unsigned normalized format that has a 4-bit B ...
MutiWaitFlags
Determines the behavior when wait for multiple fences is issued.
Definition api.hpp:180
@ Any
At least one of the fences from the batch is triggered.
ASInstanceFlags
Instance flags for additional instance features.
Definition api.hpp:1516
@ TriangleCullDisable
Triangle cull is disabled.
@ ForceOpaque
Force opaque.
@ ForceNoOpaque
Force no opaque.
@ TriangleFrontCounterClockwise
Triangle front is counter clockwise.
WindingOrder
Winding order for front-facing triangles.
Definition api.hpp:850
@ CounterClockwise
Front-facing triangles have counter-clockwise winding order.
@ Clockwise
Front-facing triangles have clockwise winding order.
HitGroupType
Type of the hit group in the raytracing pipeline.
Definition api.hpp:271
@ Procedural
Hit group for procedural geometry.
Acceleration structure allocation info. Used to query sizes for AS build/update buffers.
Definition api.hpp:2130
uint64_t result_size
Size of the result buffer.
Definition api.hpp:2132
uint64_t scratch_size
Size of the scratch buffer.
Definition api.hpp:2131
uint64_t update_size
Size of the update buffer.
Definition api.hpp:2133
Geometry description for bottom-level acceleration structure. Mayy contain AABBs or Triangles.
Definition api.hpp:2110
uint32_t triangle_or_aabb_count
For triangles it is equal to (index_count/3) and count for AABBs.
Definition api.hpp:2118
uint32_t vertex_count
Vertex count. Unused for wis::ASGeometryType::AABBs.
Definition api.hpp:2117
wis::ASGeometryType geometry_type
Type of the geometry (Triangles/AABB).
Definition api.hpp:2111
uint64_t transform_matrix_address
GPU Buffer address of the containing transform matrix (float [3][4]). Unused for wis::ASGeometryType:...
Definition api.hpp:2116
wis::ASGeometryFlags flags
Geometry flags.
Definition api.hpp:2112
uint64_t vertex_or_aabb_buffer_stride
Stride of the vertex buffer in bytes or stride of the AABB buffer in bytes.
Definition api.hpp:2114
wis::DataFormat vertex_format
Format of the vertices. Unused for wis::ASGeometryType::AABBs.
Definition api.hpp:2119
uint64_t index_buffer_address
Buffer address of the buffer containing index data. Unused for wis::ASGeometryType::AABBs.
Definition api.hpp:2115
wis::IndexType index_format
Format of the indices. Unused for wis::ASGeometryType::AABBs.
Definition api.hpp:2120
uint64_t vertex_or_aabb_buffer_address
Buffer address of the buffer containing vertex data or AABB data (float [6]) depending on the geometr...
Definition api.hpp:2113
Adapter description. Describes hardware driver identificators as well as memory limits.
Definition api.hpp:1585
uint64_t adapter_id
Adapter unique ID (LUID). Can be used to find the correct adapter.
Definition api.hpp:1594
uint64_t dedicated_system_memory
Dedicated system memory in bytes. Used for Upload and Readback Memory types.
Definition api.hpp:1592
uint32_t subsys_id
Unused.
Definition api.hpp:1589
uint64_t dedicated_video_memory
Dedicated video memory in bytes. Used for Default Memory type.
Definition api.hpp:1591
uint32_t revision
Driver revision. Unused.
Definition api.hpp:1590
uint32_t vendor_id
Vendor ID. Can be used to find the correct adapter.
Definition api.hpp:1587
wis::AdapterFlags flags
Adapter flags. Describe the adapter kind.
Definition api.hpp:1596
std::array< const char, 256 > description
Adapter description. Contains name of the graphics adapter.
Definition api.hpp:1586
uint32_t device_id
Device ID. Together with wis::AdapterDesc::vendor_id uniquely identifies the device.
Definition api.hpp:1588
uint64_t shared_system_memory
Shared system memory in bytes. Used for GPUUpload Memory type.
Definition api.hpp:1593
std::array< uint8_t, 16 > adapter_uuid
UUID of the adapter, used only with Vulkan API on systems with no LUID.
Definition api.hpp:1595
Allocation info for Resource Allocation.
Definition api.hpp:1805
uint64_t alignment_bytes
Alignment of the allocation in bytes.
Definition api.hpp:1807
uint64_t size_bytes
Size of the allocation in bytes.
Definition api.hpp:1806
Blend attachment description for wis::BlendStateDesc.
Definition api.hpp:1713
bool blend_enable
Blend enable. Default is false.
Definition api.hpp:1714
wis::BlendOp alpha_blend_op
Alpha blend operation. Default is wis::BlendOp::Add.
Definition api.hpp:1720
wis::BlendOp color_blend_op
Color blend operation. Default is wis::BlendOp::Add.
Definition api.hpp:1717
wis::BlendFactor src_color_blend
Source color blend factor. Default is wis::BlendFactor::One.
Definition api.hpp:1715
wis::BlendFactor src_alpha_blend
Source alpha blend factor. Default is wis::BlendFactor::One.
Definition api.hpp:1718
wis::BlendFactor dst_alpha_blend
Destination alpha blend factor. Default is wis::BlendFactor::Zero.
Definition api.hpp:1719
wis::ColorComponents color_write_mask
Color write mask. Default is wis::ColorComponents::All.
Definition api.hpp:1721
wis::BlendFactor dst_color_blend
Destination color blend factor. Default is wis::BlendFactor::Zero.
Definition api.hpp:1716
Blend state description for .
Definition api.hpp:1731
wis::LogicOp logic_op
Logic operation. Default is wis::LogicOp::Noop.
Definition api.hpp:1733
bool logic_op_enable
Logic operation enable. Default is false.
Definition api.hpp:1732
uint32_t attachment_count
Blend attachment count.
Definition api.hpp:1735
std::array< wis::BlendAttachmentDesc, 8 > attachments
Blend attachment descriptions. Max Array size is 8.
Definition api.hpp:1734
Buffer barrier for wis::CommandList.
Definition api.hpp:1921
wis::ResourceAccess access_before
Resource access before the barrier.
Definition api.hpp:1924
wis::BarrierSync sync_after
Synchronization after the barrier.
Definition api.hpp:1923
wis::ResourceAccess access_after
Resource access after the barrier.
Definition api.hpp:1925
uint64_t offset
Offset in the buffer in bytes. Default is 0.
Definition api.hpp:1926
wis::BarrierSync sync_before
Synchronization before the barrier.
Definition api.hpp:1922
uint64_t size
Size of the buffer in bytes. Default is UINT64_MAX, which means entire buffer.
Definition api.hpp:1927
Buffer region for copy operations.
Definition api.hpp:1571
uint64_t size_bytes
Size of portion of source buffer to take copy from in bytes.
Definition api.hpp:1574
uint64_t src_offset
Source offset in bytes. Default is 0.
Definition api.hpp:1572
uint64_t dst_offset
Destination offset in bytes. Default is 0.
Definition api.hpp:1573
Buffer to texture copy region.
Definition api.hpp:1837
wis::TextureRegion texture
Texture region.
Definition api.hpp:1839
uint64_t buffer_offset
Buffer offset in bytes.
Definition api.hpp:1838
Component mapping for wis::ShaderResourceDesc.
Definition api.hpp:2010
wis::ComponentSwizzle b
Component mapping for Blue channel. Default is wis::ComponentSwizzle::Blue.
Definition api.hpp:2013
wis::ComponentSwizzle r
Component mapping for Red channel. Default is wis::ComponentSwizzle::Red.
Definition api.hpp:2011
wis::ComponentSwizzle a
Component mapping for Alpha channel. Default is wis::ComponentSwizzle::Alpha.
Definition api.hpp:2014
wis::ComponentSwizzle g
Component mapping for Green channel. Default is wis::ComponentSwizzle::Green.
Definition api.hpp:2012
Depth stencil description for .
Definition api.hpp:1696
bool depth_bound_test
Depth bound test enable. Default is false.
Definition api.hpp:1703
bool depth_enable
Depth test enable. Default is false.
Definition api.hpp:1697
bool stencil_enable
Stencil test enable. Default is false.
Definition api.hpp:1700
wis::StencilDesc stencil_back
Stencil description for back faces.
Definition api.hpp:1702
wis::Compare depth_comp
Depth comparison function. Default is wis::Compare::Less.
Definition api.hpp:1699
wis::StencilDesc stencil_front
Stencil description for front faces.
Definition api.hpp:1701
bool depth_write_enable
Depth write enable. Default is false.
Definition api.hpp:1698
Descriptor binding description for RootSignature and Descriptor Storage creation. Description place i...
Definition api.hpp:2145
wis::DescriptorType binding_type
Binding type. Must be unique in array.
Definition api.hpp:2146
uint32_t space_overlap_count
Number of consecutive spaces this binding occupies. e.g. for binding_space = 1 and space_overlap_coun...
Definition api.hpp:2153
uint32_t binding_space
Binding space number in HLSL.
Definition api.hpp:2147
uint32_t binding_count
How many bindings should be allocated. Affects only the count of descriptors allocated in the descrip...
Definition api.hpp:2158
Descriptor table entry for wis::DescriptorTable.
Definition api.hpp:1958
uint32_t bind_register
Bind register number in HLSL.
Definition api.hpp:1960
wis::DescriptorType type
Descriptor type.
Definition api.hpp:1959
uint32_t binding
Binding number in HLSL.
Definition api.hpp:1961
uint32_t binding_space
Explicit binding space in HLSL. Used for DirectX 12 implementation. Default is 0.
Definition api.hpp:1963
uint32_t count
Descriptor count for Array descriptors. UINT32_MAX means unbounded array.
Definition api.hpp:1962
Descriptor table for wis::DescriptorBuffer.
Definition api.hpp:1973
uint32_t entry_count
Descriptor table entries count.
Definition api.hpp:1976
wis::DescriptorHeapType type
Descriptor heap type. Either Descriptor or Sampler.
Definition api.hpp:1974
const wis::DescriptorTableEntry * entries
Descriptor table entries array.
Definition api.hpp:1975
wis::ShaderStages stage
Shader stage. Defines the stage where the table is used.
Definition api.hpp:1977
Constants that device provide to work with it.
Definition api.hpp:2248
uint32_t min_buffer_offset_alingnment
Minimal structured or RW buffer offset alignment.
Definition api.hpp:2250
uint32_t min_cbuffer_offset_alingnment
Minimal constant buffer offset alignment.
Definition api.hpp:2249
Struct used to query the extensions for C code. Queried results should not be freed,...
Definition api.hpp:2074
void * result
Result of the query. Pointer is populated with the extension with queried ID. If the extension is not...
Definition api.hpp:2081
wis::DeviceExtID extension_id
Extension ID.
Definition api.hpp:2075
Struct used to query the extensions for C code. Queried results should not be freed,...
Definition api.hpp:2054
wis::FactoryExtID extension_id
Extension ID.
Definition api.hpp:2055
void * result
Result of the query. Pointer is populated with the extension with queried ID. If the extension is not...
Definition api.hpp:2061
Hit group description for Raytracing pipeline.
Definition api.hpp:2181
wis::HitGroupType type
Type of the hit group. wis::HitGroupType::Triangles - hit group for triangles. Uses closest hit shade...
Definition api.hpp:2187
uint32_t any_hit_export_index
Any hit shader.
Definition api.hpp:2189
uint32_t intersection_export_index
Intersection shader.
Definition api.hpp:2190
uint32_t closest_hit_export_index
Closest hit shader from wis::ShaderExport.
Definition api.hpp:2188
Input attribute description for wis::InputLayout.
Definition api.hpp:1619
uint32_t input_slot
Input slot number. Must be unique.
Definition api.hpp:1620
uint32_t offset_bytes
Offset in bytes from the beginning of the vertex.
Definition api.hpp:1625
uint32_t semantic_index
Semantic index of the attribute in HLSL. Must be unique.
Definition api.hpp:1622
wis::DataFormat format
Data format of the attribute.
Definition api.hpp:1624
const char * semantic_name
Semantic name of the attribute in HLSL. Must be unique.
Definition api.hpp:1621
uint32_t location
Location of the attribute in HLSL. Must be unique.
Definition api.hpp:1623
Input layout description for .
Definition api.hpp:1635
uint32_t slot_count
Input slots count. Max number is 16.
Definition api.hpp:1637
uint32_t attribute_count
Input attributes count.
Definition api.hpp:1639
const wis::InputAttribute * attributes
Input attributes array. Describes how the vertex data is read by the HLSL shader.
Definition api.hpp:1638
const wis::InputSlotDesc * slots
Input slots array. Made to pick up data from several arrays of vertex data.
Definition api.hpp:1636
Input slot description for wis::InputLayout.
Definition api.hpp:1606
wis::InputClass input_class
Input class. Defines how the data is read (Per vertex or Per instance).
Definition api.hpp:1609
uint32_t slot
Input slot number. Must be unique.
Definition api.hpp:1607
uint32_t stride_bytes
Stride in bytes. Size of one vertex in the slot.
Definition api.hpp:1608
A set of constants that get pushed directly to the pipeline. Only one set can be created per shader s...
Definition api.hpp:1759
uint32_t size_bytes
Size of the constant in bytes. Must be divisible by 4.
Definition api.hpp:1761
uint32_t bind_register
Bind register number in HLSL.
Definition api.hpp:1762
wis::ShaderStages stage
Shader stage. Defines the stage where the constant is used.
Definition api.hpp:1760
Push descriptor. Used to push data directly to pipeline.
Definition api.hpp:1849
wis::DescriptorType type
Descriptor type. Works only with buffer-like bindings.
Definition api.hpp:1851
wis::ShaderStages stage
Shader stage. Defines the stage where the descriptor is used.
Definition api.hpp:1850
Rasterizer description for .
Definition api.hpp:1649
wis::FillMode fill_mode
Fill mode. Solid or Wireframe. Default is wis::FillMode::Solid.
Definition api.hpp:1650
bool depth_clip_enable
Depth clip enable. Default is true.
Definition api.hpp:1657
wis::CullMode cull_mode
Cull mode. None, Front, Back. Default is wis::CullMode::Back.
Definition api.hpp:1651
bool depth_bias_enable
Depth bias enable. Default is false.
Definition api.hpp:1653
float depth_bias_slope_factor
Depth bias slope factor e.g. for shadows. Default is 0.0f.
Definition api.hpp:1656
wis::WindingOrder front_face
Front face winding order. Clockwise or CounterClockwise. Default is wis::WindingOrder::Clockwise.
Definition api.hpp:1652
float depth_bias_clamp
Depth bias clamp. Default is 0.0f.
Definition api.hpp:1655
float depth_bias
Depth bias. Default is 0.0f.
Definition api.hpp:1654
Constants that device provide to work with raytracing.
Definition api.hpp:2260
uint32_t max_recursion_depth
Max recursion depth for raytracing pipeline.
Definition api.hpp:2261
Raytracing dispatch description for wis::CommandList.
Definition api.hpp:2212
uint32_t miss_shader_table_stride
Stride of the miss shader table in bytes.
Definition api.hpp:2221
uint32_t callable_shader_table_stride
Stride of the callable shader table in bytes.
Definition api.hpp:2223
uint32_t width
Width of the dispatch in number of rays.
Definition api.hpp:2224
uint64_t hit_group_table_address
Address of the hit group shader table.
Definition api.hpp:2215
uint32_t callable_shader_table_size
Size of the callable shader table in bytes.
Definition api.hpp:2220
uint32_t height
Height of the dispatch in number of rays.
Definition api.hpp:2225
uint64_t callable_shader_table_address
Address of the callable shader table.
Definition api.hpp:2216
uint64_t ray_gen_shader_table_address
Address of the ray generation shader table.
Definition api.hpp:2213
uint32_t hit_group_table_size
Size of the hit group shader table in bytes.
Definition api.hpp:2219
uint32_t ray_gen_shader_table_size
Size of the ray generation shader table in bytes.
Definition api.hpp:2217
uint32_t depth
Depth of the dispatch in number of rays.
Definition api.hpp:2226
uint32_t hit_group_table_stride
Stride of the hit group shader table in bytes.
Definition api.hpp:2222
uint64_t miss_shader_table_address
Address of the miss shader table.
Definition api.hpp:2214
uint32_t miss_shader_table_size
Size of the miss shader table in bytes.
Definition api.hpp:2218
Render attachments description for .
Definition api.hpp:1745
std::array< wis::DataFormat, 8 > attachment_formats
Attachment formats array. Describes the format of the render target.
Definition api.hpp:1746
uint32_t attachments_count
Attachment formats count. Max is 8.
Definition api.hpp:1747
wis::DataFormat depth_attachment
Depth attachment format. Describes the format of the depth buffer.
Definition api.hpp:1748
Render target description for wis::RenderTarget creation.
Definition api.hpp:1875
uint32_t base_array_layer
Base array layer of the render target. Default is 0.
Definition api.hpp:1879
uint32_t layer_count
Array layers count of the render target. Default is 1.
Definition api.hpp:1880
wis::TextureLayout layout
Render target layout. Default is wis::TextureLayout::Texture2D.
Definition api.hpp:1877
wis::DataFormat format
Render target format.
Definition api.hpp:1876
uint32_t mip
Mip level of the render target. Default is 0.
Definition api.hpp:1878
Main source of communication of operation success. To check for success compare wis::Result::status w...
Definition api.hpp:1534
wis::Status status
Operation status. Compare with wis::Status::Ok.
Definition api.hpp:1535
const char * error
Error message. nullptr or 'Operation Succeeded.' if no error.
Definition api.hpp:1536
Sample description of Multisampling for .
Definition api.hpp:1667
wis::SampleRate rate
Sample rate. Default is wis::SampleRate::S1.
Definition api.hpp:1668
uint32_t sample_mask
Sample mask. Default is 0xffffffff.
Definition api.hpp:1670
float quality
Sample quality. Default is 0.0f.
Definition api.hpp:1669
Sampler description for wis::Sampler creation.
Definition api.hpp:1987
bool anisotropic
Anisotropic filtering enable.
Definition api.hpp:1991
float max_lod
Max LOD value.
Definition api.hpp:1997
float mip_lod_bias
Mip LOD bias value.
Definition api.hpp:1998
uint32_t max_anisotropy
Max anisotropy level. Max is 16.
Definition api.hpp:1992
wis::Filter min_filter
Minification filter.
Definition api.hpp:1988
wis::AddressMode address_u
Address mode for U coordinate.
Definition api.hpp:1993
std::array< float, 4 > border_color
Border color.
Definition api.hpp:2000
wis::AddressMode address_w
Address mode for W coordinate.
Definition api.hpp:1995
wis::Filter mag_filter
Magnification filter.
Definition api.hpp:1989
float min_lod
Min LOD value.
Definition api.hpp:1996
wis::Compare comparison_op
Comparison operation for comparison samplers.
Definition api.hpp:1999
wis::Filter mip_filter
Mip level filter.
Definition api.hpp:1990
wis::AddressMode address_v
Address mode for V coordinate.
Definition api.hpp:1994
Scissor description for wis::CommandList.
Definition api.hpp:1907
int32_t bottom
Bottom corner y coordinate.
Definition api.hpp:1911
int32_t left
Left corner x coordinate.
Definition api.hpp:1908
int32_t right
Right corner x coordinate.
Definition api.hpp:1910
int32_t top
Top corner y coordinate.
Definition api.hpp:1909
Shader binding table description for Raytracing pipeline.
Definition api.hpp:2200
uint32_t entry_size
Size/stride of the entry in bytes.
Definition api.hpp:2201
uint32_t table_start_alignment
Alignment of the table start in bytes.
Definition api.hpp:2202
Defines export shader functions from a library shader.
Definition api.hpp:2168
wis::RaytracingShaderType shader_type
Type of the shader.
Definition api.hpp:2170
uint32_t shader_array_index
Index of the shader in the shader array.
Definition api.hpp:2171
const char * entry_point
Entry point of the shader.
Definition api.hpp:2169
Shader resource description for .
Definition api.hpp:2024
wis::SubresourceRange subresource_range
Subresource range of the resource.
Definition api.hpp:2028
wis::ComponentMapping component_mapping
Component mapping.
Definition api.hpp:2027
wis::DataFormat format
Resource format.
Definition api.hpp:2025
wis::TextureViewType view_type
Resource view type.
Definition api.hpp:2026
2D unsigned size.
Definition api.hpp:1546
3D unsigned size.
Definition api.hpp:1558
uint32_t depth_or_layers
Depth for 3D textures, layers for 2D arrays.
Definition api.hpp:1561
Stencil description for wis::DepthStencilDesc.
Definition api.hpp:1680
wis::StencilOp pass_op
Stencil operation if the stencil test passes. Default is wis::StencilOp::Keep.
Definition api.hpp:1683
wis::Compare comparison
Stencil comparison function. Default is wis::Compare::Always.
Definition api.hpp:1684
wis::StencilOp depth_fail_op
Stencil operation if the stencil test passes and the depth test fails. Default is wis::StencilOp::Kee...
Definition api.hpp:1682
wis::StencilOp fail_op
Stencil operation if the stencil test fails. Default is wis::StencilOp::Keep.
Definition api.hpp:1681
uint8_t write_mask
Stencil write mask. Default is 0xff.
Definition api.hpp:1686
uint8_t read_mask
Stencil read mask. Default is 0xff.
Definition api.hpp:1685
Subresource range for wis::TextureBarrier.
Definition api.hpp:1861
uint32_t base_array_layer
Base array layer.
Definition api.hpp:1864
uint32_t level_count
Mip levels count.
Definition api.hpp:1863
uint32_t base_mip_level
Base mip level.
Definition api.hpp:1862
uint32_t layer_count
Array layers count.
Definition api.hpp:1865
Swapchain description for wis::SwapChain creation.
Definition api.hpp:1772
wis::Size2D size
Swapchain texture size.
Definition api.hpp:1773
bool stereo
Stereo mode enable. If there is no stereo in the system will be ignored.
Definition api.hpp:1776
uint32_t buffer_count
Swapchain buffer count.
Definition api.hpp:1775
bool tearing
Tearing enable. If VSync is disabled, Tearing may be enabled. If System does not allow tearing the fl...
Definition api.hpp:1778
bool vsync
VSync enable. Specifies Initial VSync. This value may be changed on per-present bases with wis::Devic...
Definition api.hpp:1777
wis::DataFormat format
Swapchain texture format.
Definition api.hpp:1774
wis::SwapchainScaling scaling
Swapchain scaling mode.
Definition api.hpp:1779
Texture barrier for wis::CommandList.
Definition api.hpp:1937
wis::SubresourceRange subresource_range
Subresource range of the texture. Zero initialized range means all subresources are selected.
Definition api.hpp:1948
wis::ResourceAccess access_before
Resource access before the barrier.
Definition api.hpp:1940
wis::TextureState state_after
Texture state after the barrier.
Definition api.hpp:1943
wis::BarrierSync sync_before
Synchronization before the barrier.
Definition api.hpp:1938
wis::TextureState state_before
Texture state before the barrier.
Definition api.hpp:1942
wis::BarrierSync sync_after
Synchronization after the barrier.
Definition api.hpp:1939
wis::ResourceAccess access_after
Resource access after the barrier.
Definition api.hpp:1941
Texture to texture copy region.
Definition api.hpp:2236
wis::TextureRegion dst
Destination texture region.
Definition api.hpp:2238
wis::TextureRegion src
Source texture region.
Definition api.hpp:2237
Texture description for wis::Texture creation.
Definition api.hpp:1789
wis::SampleRate sample_count
Sample count. Default is wis::SampleRate::S1.
Definition api.hpp:1794
uint32_t mip_levels
Mip levels count. Default is 1.
Definition api.hpp:1792
wis::DataFormat format
Texture pixel/block format.
Definition api.hpp:1790
wis::TextureLayout layout
Texture layout. Default is wis::TextureLayout::Texture2D.
Definition api.hpp:1793
wis::TextureUsage usage
Texture usage flags.
Definition api.hpp:1795
wis::Size3D size
Texture size. Third dimension may be used for array layers or depth layers, depending on wis::Texture...
Definition api.hpp:1791
Texture region for copy operations.
Definition api.hpp:1817
wis::Size3D offset
Offset in the texture in pixels. In BufferToTexture determines offset of destination texture....
Definition api.hpp:1823
uint32_t array_layer
Array layer of the texture.
Definition api.hpp:1826
uint32_t mip
Mip level of the texture.
Definition api.hpp:1825
wis::DataFormat format
Format of the texture.
Definition api.hpp:1827
wis::Size3D size
Size of the region in pixels.
Definition api.hpp:1824
Top level acceleration structure build description.
Definition api.hpp:2091
wis::AccelerationStructureFlags flags
Build flags.
Definition api.hpp:2092
uint32_t instance_count
Instance count.
Definition api.hpp:2093
bool indirect
If true Buffer under address contains pointers to the instances, rather than instances themselves.
Definition api.hpp:2095
bool update
true means the acceleration structure is being updated. flags must have contained wis::AccelerationSt...
Definition api.hpp:2100
uint64_t gpu_address
Address of instances.
Definition api.hpp:2094
Unordered access description for RW Texture creation.
Definition api.hpp:2038
wis::DataFormat format
Resource format.
Definition api.hpp:2039
wis::SubresourceRange subresource_range
Subresource range of the resource.
Definition api.hpp:2041
wis::TextureViewType view_type
Resource view type.
Definition api.hpp:2040
Viewport description for wis::CommandList. Viewport is considered from Top Left corner.
Definition api.hpp:1891
float height
Viewport height.
Definition api.hpp:1895
float width
Viewport width.
Definition api.hpp:1894
float min_depth
Minimum depth of the viewport.
Definition api.hpp:1896
float max_depth
Maximum depth of the viewport.
Definition api.hpp:1897
float top_lefty
Top left corner y coordinate.
Definition api.hpp:1893
float top_leftx
Top left corner x coordinate.
Definition api.hpp:1892