mirror of
https://github.com/Ed94/Odin.git
synced 2026-07-09 13:01:38 -07:00
Update many enums to bit_sets for D3D11
This commit is contained in:
Vendored
+177
-135
@@ -30,7 +30,7 @@ foreign d3d11 {
|
||||
DriverType: DRIVER_TYPE,
|
||||
Software: HMODULE,
|
||||
Flags: CREATE_DEVICE_FLAGS,
|
||||
pFeatureLevels: ^FEATURE_LEVEL,
|
||||
pFeatureLevels: [^]FEATURE_LEVEL,
|
||||
FeatureLevels: u32,
|
||||
SDKVersion: u32,
|
||||
ppDevice: ^^IDevice,
|
||||
@@ -41,8 +41,8 @@ foreign d3d11 {
|
||||
pAdapter: ^dxgi.IAdapter,
|
||||
DriverType: DRIVER_TYPE,
|
||||
Software: HMODULE,
|
||||
Flags: u32,
|
||||
pFeatureLevels: ^FEATURE_LEVEL,
|
||||
Flags: CREATE_DEVICE_FLAGS,
|
||||
pFeatureLevels: [^]FEATURE_LEVEL,
|
||||
FeatureLevels: u32,
|
||||
SDKVersion: u32,
|
||||
pSwapChainDesc: ^dxgi.SWAP_CHAIN_DESC,
|
||||
@@ -539,25 +539,37 @@ ANISOTROPIC_FILTERING_BIT :: 0x40
|
||||
SDK_VERSION :: 7
|
||||
RETURN_PARAMETER_INDEX :: -1
|
||||
|
||||
COMPONENT_MASK :: enum u32 { // TODO: make bit_set
|
||||
COMPONENT_MASK :: distinct bit_set[COMPONENT_MASK_ELEMENT; u32]
|
||||
COMPONENT_MASK_ELEMENT :: enum u32 {
|
||||
X = 1,
|
||||
Y = 2,
|
||||
Z = 4,
|
||||
W = 8,
|
||||
}
|
||||
|
||||
SHADER_REQUIRES :: enum u32 { // TODO: make bit_set
|
||||
DOUBLES = 0x00000001,
|
||||
EARLY_DEPTH_STENCIL = 0x00000002,
|
||||
UAVS_AT_EVERY_STAGE = 0x00000004,
|
||||
_64_UAVS = 0x00000008,
|
||||
MINIMUM_PRECISION = 0x00000010,
|
||||
_11_1_DOUBLE_EXTENSIONS = 0x00000020,
|
||||
_11_1_SHADER_EXTENSIONS = 0x00000040,
|
||||
LEVEL_9_COMPARISON_FILTERING = 0x00000080,
|
||||
TILED_RESOURCES = 0x00000100,
|
||||
SHADER_REQUIRES_FLAGS :: distinct bit_set[SHADER_REQUIRES_FLAG; u64]
|
||||
SHADER_REQUIRES_FLAG :: enum u64 {
|
||||
DOUBLES = 0,
|
||||
EARLY_DEPTH_STENCIL = 1,
|
||||
UAVS_AT_EVERY_STAGE = 2,
|
||||
_64_UAVS = 3,
|
||||
MINIMUM_PRECISION = 4,
|
||||
_11_1_DOUBLE_EXTENSIONS = 5,
|
||||
_11_1_SHADER_EXTENSIONS = 6,
|
||||
LEVEL_9_COMPARISON_FILTERING = 7,
|
||||
TILED_RESOURCES = 8,
|
||||
}
|
||||
|
||||
SHADER_REQUIRES_DOUBLES :: SHADER_REQUIRES_FLAGS{.DOUBLES}
|
||||
SHADER_REQUIRES_EARLY_DEPTH_STENCIL :: SHADER_REQUIRES_FLAGS{.EARLY_DEPTH_STENCIL}
|
||||
SHADER_REQUIRES_UAVS_AT_EVERY_STAGE :: SHADER_REQUIRES_FLAGS{.UAVS_AT_EVERY_STAGE}
|
||||
SHADER_REQUIRES_64_UAVS :: SHADER_REQUIRES_FLAGS{._64_UAVS}
|
||||
SHADER_REQUIRES_MINIMUM_PRECISION :: SHADER_REQUIRES_FLAGS{.MINIMUM_PRECISION}
|
||||
SHADER_REQUIRES_11_1_DOUBLE_EXTENSIONS :: SHADER_REQUIRES_FLAGS{._11_1_DOUBLE_EXTENSIONS}
|
||||
SHADER_REQUIRES_11_1_SHADER_EXTENSIONS :: SHADER_REQUIRES_FLAGS{._11_1_SHADER_EXTENSIONS}
|
||||
SHADER_REQUIRES_LEVEL_9_COMPARISON_FILTERING :: SHADER_REQUIRES_FLAGS{.LEVEL_9_COMPARISON_FILTERING}
|
||||
SHADER_REQUIRES_TILED_RESOURCES :: SHADER_REQUIRES_FLAGS{.TILED_RESOURCES}
|
||||
|
||||
DRIVER_TYPE :: enum i32 {
|
||||
UNKNOWN = 0,
|
||||
HARDWARE = 1,
|
||||
@@ -708,11 +720,12 @@ SHADER_VARIABLE_CLASS :: enum i32 {
|
||||
INTERFACE_POINTER = 7,
|
||||
}
|
||||
|
||||
SHADER_VARIABLE_FLAGS :: enum u32 { // TODO: make bit_set
|
||||
USERPACKED = 0x1,
|
||||
USED = 0x2,
|
||||
INTERFACE_POINTER = 0x4,
|
||||
INTERFACE_PARAMETER = 0x8,
|
||||
SHADER_VARIABLE_FLAGS :: distinct bit_set[SHADER_VARIABLE_FLAG; u32]
|
||||
SHADER_VARIABLE_FLAG :: enum u32 {
|
||||
USERPACKED = 0,
|
||||
USED = 1,
|
||||
INTERFACE_POINTER = 2,
|
||||
INTERFACE_PARAMETER = 3,
|
||||
}
|
||||
|
||||
SHADER_VARIABLE_TYPE :: enum i32 {
|
||||
@@ -776,14 +789,21 @@ SHADER_VARIABLE_TYPE :: enum i32 {
|
||||
MIN16UINT = 57,
|
||||
}
|
||||
|
||||
SHADER_INPUT_FLAGS :: enum u32 { // TODO: make bit_set
|
||||
USERPACKED = 0x1,
|
||||
COMPARISON_SAMPLER = 0x2,
|
||||
TEXTURE_COMPONENT_0 = 0x4,
|
||||
TEXTURE_COMPONENT_1 = 0x8,
|
||||
SHADER_INPUT_FLAGS :: distinct bit_set[SHADER_INPUT_FLAG; u32]
|
||||
SHADER_INPUT_FLAG :: enum u32 {
|
||||
USERPACKED = 0,
|
||||
COMPARISON_SAMPLER = 1,
|
||||
TEXTURE_COMPONENT_0 = 2,
|
||||
TEXTURE_COMPONENT_1 = 3,
|
||||
TEXTURE_COMPONENTS = 0xc,
|
||||
UNUSED = 0x10,
|
||||
UNUSED = 4,
|
||||
}
|
||||
SHADER_INPUT_FLAG_USERPACKED :: SHADER_INPUT_FLAGS{.USERPACKED}
|
||||
SHADER_INPUT_FLAG_COMPARISON_SAMPLER :: SHADER_INPUT_FLAGS{.COMPARISON_SAMPLER}
|
||||
SHADER_INPUT_FLAG_TEXTURE_COMPONENT_0 :: SHADER_INPUT_FLAGS{.TEXTURE_COMPONENT_0}
|
||||
SHADER_INPUT_FLAG_TEXTURE_COMPONENT_1 :: SHADER_INPUT_FLAGS{.TEXTURE_COMPONENT_1}
|
||||
SHADER_INPUT_FLAG_TEXTURE_COMPONENTS :: SHADER_INPUT_FLAGS{.TEXTURE_COMPONENT_0, .TEXTURE_COMPONENT_1}
|
||||
SHADER_INPUT_FLAG_UNUSED :: SHADER_INPUT_FLAGS{.UNUSED}
|
||||
|
||||
SHADER_INPUT_TYPE :: enum i32 {
|
||||
CBUFFER = 0,
|
||||
@@ -802,8 +822,9 @@ SHADER_INPUT_TYPE :: enum i32 {
|
||||
UAV_FEEDBACKTEXTURE = 13,
|
||||
}
|
||||
|
||||
SHADER_CBUFFER_FLAGS :: enum u32 { // TODO: make bit_set
|
||||
USERPACKED = 0x1,
|
||||
SHADER_CBUFFER_FLAGS :: distinct bit_set[SHADER_CBUFFER_FLAG; u32]
|
||||
SHADER_CBUFFER_FLAG :: enum u32 {
|
||||
USERPACKED = 0,
|
||||
}
|
||||
|
||||
CBUFFER_TYPE :: enum i32 {
|
||||
@@ -906,10 +927,10 @@ INTERPOLATION_MODE :: enum i32 {
|
||||
LINEAR_NOPERSPECTIVE_SAMPLE = 7,
|
||||
}
|
||||
|
||||
PARAMETER_FLAGS :: enum u32 { // TODO: make bit_set
|
||||
NONE = 0x0,
|
||||
IN = 0x1,
|
||||
OUT = 0x2,
|
||||
PARAMETER_FLAGS :: distinct bit_set[PARAMETER_FLAG; u32]
|
||||
PARAMETER_FLAG :: enum u32 {
|
||||
IN = 0,
|
||||
OUT = 1,
|
||||
}
|
||||
|
||||
CDEFAULT :: struct {
|
||||
@@ -1022,43 +1043,46 @@ USAGE :: enum i32 {
|
||||
STAGING = 3,
|
||||
}
|
||||
|
||||
BIND_FLAG :: enum u32 { // TODO: make bit_set
|
||||
VERTEX_BUFFER = 0x1,
|
||||
INDEX_BUFFER = 0x2,
|
||||
CONSTANT_BUFFER = 0x4,
|
||||
SHADER_RESOURCE = 0x8,
|
||||
STREAM_OUTPUT = 0x10,
|
||||
RENDER_TARGET = 0x20,
|
||||
DEPTH_STENCIL = 0x40,
|
||||
UNORDERED_ACCESS = 0x80,
|
||||
DECODER = 0x200,
|
||||
VIDEO_ENCODER = 0x400,
|
||||
BIND_FLAGS :: distinct bit_set[BIND_FLAG; u32]
|
||||
BIND_FLAG :: enum u32 {
|
||||
VERTEX_BUFFER = 0,
|
||||
INDEX_BUFFER = 1,
|
||||
CONSTANT_BUFFER = 2,
|
||||
SHADER_RESOURCE = 3,
|
||||
STREAM_OUTPUT = 4,
|
||||
RENDER_TARGET = 5,
|
||||
DEPTH_STENCIL = 6,
|
||||
UNORDERED_ACCESS = 7,
|
||||
DECODER = 9,
|
||||
VIDEO_ENCODER = 10,
|
||||
}
|
||||
|
||||
CPU_ACCESS_FLAG :: enum u32 { // TODO: make bit_set
|
||||
WRITE = 0x10000,
|
||||
READ = 0x20000,
|
||||
CPU_ACCESS_FLAGS :: distinct bit_set[CPU_ACCESS_FLAG; u32]
|
||||
CPU_ACCESS_FLAG :: enum u32 {
|
||||
WRITE = 16,
|
||||
READ = 17,
|
||||
|
||||
}
|
||||
|
||||
RESOURCE_MISC_FLAG :: enum u32 { // TODO: make bit_set
|
||||
GENERATE_MIPS = 0x1,
|
||||
SHARED = 0x2,
|
||||
TEXTURECUBE = 0x4,
|
||||
DRAWINDIRECT_ARGS = 0x10,
|
||||
BUFFER_ALLOW_RAW_VIEWS = 0x20,
|
||||
BUFFER_STRUCTURED = 0x40,
|
||||
RESOURCE_CLAMP = 0x80,
|
||||
SHARED_KEYEDMUTEX = 0x100,
|
||||
GDI_COMPATIBLE = 0x200,
|
||||
SHARED_NTHANDLE = 0x800,
|
||||
RESTRICTED_CONTENT = 0x1000,
|
||||
RESTRICT_SHARED_RESOURCE = 0x2000,
|
||||
RESTRICT_SHARED_RESOURCE_DRIVER = 0x4000,
|
||||
GUARDED = 0x8000,
|
||||
TILE_POOL = 0x20000,
|
||||
TILED = 0x40000,
|
||||
HW_PROTECTED = 0x80000,
|
||||
RESOURCE_MISC_FLAGS :: distinct bit_set[RESOURCE_MISC_FLAG; u32]
|
||||
RESOURCE_MISC_FLAG :: enum u32 {
|
||||
GENERATE_MIPS = 0,
|
||||
SHARED = 1,
|
||||
TEXTURECUBE = 2,
|
||||
DRAWINDIRECT_ARGS = 4,
|
||||
BUFFER_ALLOW_RAW_VIEWS = 5,
|
||||
BUFFER_STRUCTURED = 6,
|
||||
RESOURCE_CLAMP = 7,
|
||||
SHARED_KEYEDMUTEX = 8,
|
||||
GDI_COMPATIBLE = 9,
|
||||
SHARED_NTHANDLE = 11,
|
||||
RESTRICTED_CONTENT = 12,
|
||||
RESTRICT_SHARED_RESOURCE = 13,
|
||||
RESTRICT_SHARED_RESOURCE_DRIVER = 14,
|
||||
GUARDED = 15,
|
||||
TILE_POOL = 17,
|
||||
TILED = 18,
|
||||
HW_PROTECTED = 19,
|
||||
}
|
||||
|
||||
MAP :: enum i32 {
|
||||
@@ -1069,17 +1093,20 @@ MAP :: enum i32 {
|
||||
WRITE_NO_OVERWRITE = 5,
|
||||
}
|
||||
|
||||
MAP_FLAG :: enum u32 { // TODO: make bit_set
|
||||
DO_NOT_WAIT = 0x100000,
|
||||
MAP_FLAGS :: distinct bit_set[MAP_FLAG; u32]
|
||||
MAP_FLAG :: enum u32 {
|
||||
DO_NOT_WAIT = 20,
|
||||
}
|
||||
|
||||
RAISE_FLAG :: enum u32 { // TODO: make bit_set
|
||||
DRIVER_INTERNAL_ERROR = 0x1,
|
||||
RAISE_FLAGS :: distinct bit_set[RAISE_FLAG; u32]
|
||||
RAISE_FLAG :: enum u32 {
|
||||
DRIVER_INTERNAL_ERROR = 0,
|
||||
}
|
||||
|
||||
CLEAR_FLAG :: enum u32 { // TODO: make bit_set
|
||||
DEPTH = 0x1,
|
||||
STENCIL = 0x2,
|
||||
CLEAR_FLAGS :: distinct bit_set[CLEAR_FLAG; u32]
|
||||
CLEAR_FLAG :: enum u32 {
|
||||
DEPTH = 0,
|
||||
STENCIL = 1,
|
||||
}
|
||||
|
||||
|
||||
@@ -1206,7 +1233,15 @@ BLEND_OP :: enum i32 {
|
||||
MAX = 5,
|
||||
}
|
||||
|
||||
COLOR_WRITE_ENABLE :: enum i32 { // TODO: make bit_set
|
||||
COLOR_WRITE_ENABLE_MASK :: distinct bit_set[COLOR_WRITE_ENABLE; u32]
|
||||
|
||||
COLOR_WRITE_ENABLE_RED :: COLOR_WRITE_ENABLE_MASK{.RED}
|
||||
COLOR_WRITE_ENABLE_GREEN :: COLOR_WRITE_ENABLE_MASK{.GREEN}
|
||||
COLOR_WRITE_ENABLE_BLUE :: COLOR_WRITE_ENABLE_MASK{.BLUE}
|
||||
COLOR_WRITE_ENABLE_ALPHA :: COLOR_WRITE_ENABLE_MASK{.ALPHA}
|
||||
COLOR_WRITE_ENABLE_ALL :: COLOR_WRITE_ENABLE_MASK{.RED, .GREEN, .BLUE, .ALPHA}
|
||||
|
||||
COLOR_WRITE_ENABLE :: enum i32 {
|
||||
RED = 1,
|
||||
GREEN = 2,
|
||||
BLUE = 4,
|
||||
@@ -1308,9 +1343,9 @@ IResource_VTable :: struct {
|
||||
BUFFER_DESC :: struct {
|
||||
ByteWidth: u32,
|
||||
Usage: USAGE,
|
||||
BindFlags: BIND_FLAG,
|
||||
CPUAccessFlags: CPU_ACCESS_FLAG,
|
||||
MiscFlags: RESOURCE_MISC_FLAG,
|
||||
BindFlags: BIND_FLAGS,
|
||||
CPUAccessFlags: CPU_ACCESS_FLAGS,
|
||||
MiscFlags: RESOURCE_MISC_FLAGS,
|
||||
StructureByteStride: u32,
|
||||
}
|
||||
|
||||
@@ -1337,9 +1372,9 @@ TEXTURE1D_DESC :: struct {
|
||||
ArraySize: u32,
|
||||
Format: dxgi.FORMAT,
|
||||
Usage: USAGE,
|
||||
BindFlags: BIND_FLAG,
|
||||
CPUAccessFlags: CPU_ACCESS_FLAG,
|
||||
MiscFlags: RESOURCE_MISC_FLAG,
|
||||
BindFlags: BIND_FLAGS,
|
||||
CPUAccessFlags: CPU_ACCESS_FLAGS,
|
||||
MiscFlags: RESOURCE_MISC_FLAGS,
|
||||
}
|
||||
|
||||
CTEXTURE1D_DESC :: struct {
|
||||
@@ -1367,9 +1402,9 @@ TEXTURE2D_DESC :: struct {
|
||||
Format: dxgi.FORMAT,
|
||||
SampleDesc: dxgi.SAMPLE_DESC,
|
||||
Usage: USAGE,
|
||||
BindFlags: BIND_FLAG,
|
||||
CPUAccessFlags: CPU_ACCESS_FLAG,
|
||||
MiscFlags: RESOURCE_MISC_FLAG,
|
||||
BindFlags: BIND_FLAGS,
|
||||
CPUAccessFlags: CPU_ACCESS_FLAGS,
|
||||
MiscFlags: RESOURCE_MISC_FLAGS,
|
||||
}
|
||||
|
||||
CTEXTURE2D_DESC :: struct {
|
||||
@@ -1396,9 +1431,9 @@ TEXTURE3D_DESC :: struct {
|
||||
MipLevels: u32,
|
||||
Format: dxgi.FORMAT,
|
||||
Usage: USAGE,
|
||||
BindFlags: BIND_FLAG,
|
||||
CPUAccessFlags: CPU_ACCESS_FLAG,
|
||||
MiscFlags: RESOURCE_MISC_FLAG,
|
||||
BindFlags: BIND_FLAGS,
|
||||
CPUAccessFlags: CPU_ACCESS_FLAGS,
|
||||
MiscFlags: RESOURCE_MISC_FLAGS,
|
||||
}
|
||||
|
||||
CTEXTURE3D_DESC :: struct {
|
||||
@@ -1451,14 +1486,15 @@ BUFFER_SRV :: struct {
|
||||
},
|
||||
}
|
||||
|
||||
BUFFEREX_SRV_FLAG :: enum u32 { // TODO: make bit_set
|
||||
RAW = 0x1,
|
||||
BUFFEREX_SRV_FLAGS :: distinct bit_set[BUFFEREX_SRV_FLAG; u32]
|
||||
BUFFEREX_SRV_FLAG :: enum u32 {
|
||||
RAW = 0,
|
||||
}
|
||||
|
||||
BUFFEREX_SRV :: struct {
|
||||
FirstElement: u32,
|
||||
NumElements: u32,
|
||||
Flags: u32,
|
||||
Flags: BUFFEREX_SRV_FLAGS,
|
||||
}
|
||||
|
||||
TEX1D_SRV :: struct {
|
||||
@@ -1657,15 +1693,16 @@ TEX2DMS_ARRAY_DSV :: struct {
|
||||
ArraySize: u32,
|
||||
}
|
||||
|
||||
DSV_FLAG :: enum u32 { // TODO: make bit_set
|
||||
DEPTH = 0x1,
|
||||
STENCIL = 0x2,
|
||||
DSV_FLAGS :: distinct bit_set[DSV_FLAG; u32]
|
||||
DSV_FLAG :: enum u32 {
|
||||
DEPTH = 0,
|
||||
STENCIL = 1,
|
||||
}
|
||||
|
||||
DEPTH_STENCIL_VIEW_DESC :: struct {
|
||||
Format: dxgi.FORMAT,
|
||||
ViewDimension: DSV_DIMENSION,
|
||||
Flags: u32,
|
||||
Flags: DSV_FLAGS,
|
||||
using _: struct #raw_union {
|
||||
Texture1D: TEX1D_DSV,
|
||||
Texture1DArray: TEX1D_ARRAY_DSV,
|
||||
@@ -1693,16 +1730,17 @@ IDepthStencilView_VTable :: struct {
|
||||
}
|
||||
|
||||
|
||||
BUFFER_UAV_FLAG :: enum u32 { // TODO: make bit_set
|
||||
RAW = 0x1,
|
||||
APPEND = 0x2,
|
||||
COUNTER = 0x4,
|
||||
BUFFER_UAV_FLAGS :: distinct bit_set[BUFFER_UAV_FLAG; u32]
|
||||
BUFFER_UAV_FLAG :: enum u32 {
|
||||
RAW = 0,
|
||||
APPEND = 1,
|
||||
COUNTER = 2,
|
||||
}
|
||||
|
||||
BUFFER_UAV :: struct {
|
||||
FirstElement: u32,
|
||||
NumElements: u32,
|
||||
Flags: u32,
|
||||
Flags: BUFFER_UAV_FLAGS,
|
||||
}
|
||||
|
||||
TEX1D_UAV :: struct {
|
||||
@@ -1961,8 +1999,9 @@ IAsynchronous_VTable :: struct {
|
||||
}
|
||||
|
||||
|
||||
ASYNC_GETDATA_FLAG :: enum u32 { // TODO: make bit_set
|
||||
DONOTFLUSH = 0x1,
|
||||
ASYNC_GETDATA_FLAGS :: distinct bit_set[ASYNC_GETDATA_FLAG; u32]
|
||||
ASYNC_GETDATA_FLAG :: enum u32 {
|
||||
DONOTFLUSH = 0,
|
||||
}
|
||||
|
||||
QUERY :: enum i32 {
|
||||
@@ -1984,13 +2023,14 @@ QUERY :: enum i32 {
|
||||
SO_OVERFLOW_PREDICATE_STREAM3 = 15,
|
||||
}
|
||||
|
||||
QUERY_MISC_FLAG :: enum u32 { // TODO: make bit_set
|
||||
QUERY_MISC_PREDICATEHINT = 0x1,
|
||||
QUERY_MISC_FLAGS :: distinct bit_set[QUERY_MISC_FLAG; u32]
|
||||
QUERY_MISC_FLAG :: enum u32 {
|
||||
PREDICATEHINT = 0,
|
||||
}
|
||||
|
||||
QUERY_DESC :: struct {
|
||||
Query: QUERY,
|
||||
MiscFlags: RESOURCE_MISC_FLAG,
|
||||
MiscFlags: QUERY_MISC_FLAGS,
|
||||
}
|
||||
|
||||
CQUERY_DESC :: struct {
|
||||
@@ -2054,7 +2094,7 @@ COUNTER_TYPE :: enum i32 {
|
||||
|
||||
COUNTER_DESC :: struct {
|
||||
Counter: COUNTER,
|
||||
MiscFlags: RESOURCE_MISC_FLAG,
|
||||
MiscFlags: RESOURCE_MISC_FLAGS,
|
||||
}
|
||||
|
||||
CCOUNTER_DESC :: struct {
|
||||
@@ -2150,21 +2190,21 @@ FEATURE :: enum i32 {
|
||||
FORMAT_SUPPORT = 2,
|
||||
FORMAT_SUPPORT2 = 3,
|
||||
D3D10_X_HARDWARE_OPTIONS = 4,
|
||||
OPTIONS = 5,
|
||||
OPTIONS = 5,
|
||||
ARCHITECTURE_INFO = 6,
|
||||
D3D9_OPTIONS = 7,
|
||||
SHADER_MIN_PRECISION_SUPPORT = 8,
|
||||
D3D9_SHADOW_SUPPORT = 9,
|
||||
OPTIONS1 = 10,
|
||||
OPTIONS1 = 10,
|
||||
D3D9_SIMPLE_INSTANCING_SUPPORT = 11,
|
||||
MARKER_SUPPORT = 12,
|
||||
D3D9_OPTIONS1 = 13,
|
||||
OPTIONS2 = 14,
|
||||
OPTIONS3 = 15,
|
||||
OPTIONS2 = 14,
|
||||
OPTIONS3 = 15,
|
||||
GPU_VIRTUAL_ADDRESS_SUPPORT = 16,
|
||||
OPTIONS4 = 17,
|
||||
OPTIONS4 = 17,
|
||||
SHADER_CACHE = 18,
|
||||
OPTIONS5 = 19,
|
||||
OPTIONS5 = 19,
|
||||
}
|
||||
|
||||
FEATURE_DATA_THREADING :: struct {
|
||||
@@ -2285,14 +2325,14 @@ FEATURE_DATA_GPU_VIRTUAL_ADDRESS_SUPPORT :: struct {
|
||||
MaxGPUVirtualAddressBitsPerProcess: u32,
|
||||
}
|
||||
|
||||
SHADER_CACHE_SUPPORT_FLAGS :: enum u32 { // TODO: make bit_set
|
||||
NONE = 0x0,
|
||||
AUTOMATIC_INPROC_CACHE = 0x1,
|
||||
AUTOMATIC_DISK_CACHE = 0x2,
|
||||
SHADER_CACHE_SUPPORT_FLAGS :: distinct bit_set[SHADER_CACHE_SUPPORT_FLAG; u32]
|
||||
SHADER_CACHE_SUPPORT_FLAG :: enum u32 {
|
||||
AUTOMATIC_INPROC_CACHE = 0,
|
||||
AUTOMATIC_DISK_CACHE = 1,
|
||||
}
|
||||
|
||||
FEATURE_DATA_SHADER_CACHE :: struct {
|
||||
SupportFlags: u32,
|
||||
SupportFlags: SHADER_CACHE_SUPPORT_FLAGS,
|
||||
}
|
||||
|
||||
SHARED_RESOURCE_TIER :: enum i32 {
|
||||
@@ -2322,7 +2362,7 @@ IDeviceContext_VTable :: struct {
|
||||
VSSetShader: proc "stdcall" (this: ^IDeviceContext, pVertexShader: ^IVertexShader, ppClassInstances: ^^IClassInstance, NumClassInstances: u32),
|
||||
DrawIndexed: proc "stdcall" (this: ^IDeviceContext, IndexCount: u32, StartIndexLocation: u32, BaseVertexLocation: i32),
|
||||
Draw: proc "stdcall" (this: ^IDeviceContext, VertexCount: u32, StartVertexLocation: u32),
|
||||
Map: proc "stdcall" (this: ^IDeviceContext, pResource: ^IResource, Subresource: u32, MapType: MAP, MapFlags: u32, pMappedResource: ^MAPPED_SUBRESOURCE) -> HRESULT,
|
||||
Map: proc "stdcall" (this: ^IDeviceContext, pResource: ^IResource, Subresource: u32, MapType: MAP, MapFlags: MAP_FLAGS, pMappedResource: ^MAPPED_SUBRESOURCE) -> HRESULT,
|
||||
Unmap: proc "stdcall" (this: ^IDeviceContext, pResource: ^IResource, Subresource: u32),
|
||||
PSSetConstantBuffers: proc "stdcall" (this: ^IDeviceContext, StartSlot: u32, NumBuffers: u32, ppConstantBuffers: ^^IBuffer),
|
||||
IASetInputLayout: proc "stdcall" (this: ^IDeviceContext, pInputLayout: ^IInputLayout),
|
||||
@@ -2343,7 +2383,7 @@ IDeviceContext_VTable :: struct {
|
||||
GSSetSamplers: proc "stdcall" (this: ^IDeviceContext, StartSlot: u32, NumSamplers: u32, ppSamplers: ^^ISamplerState),
|
||||
OMSetRenderTargets: proc "stdcall" (this: ^IDeviceContext, NumViews: u32, ppRenderTargetViews: ^^IRenderTargetView, pDepthStencilView: ^IDepthStencilView),
|
||||
OMSetRenderTargetsAndUnorderedAccessViews: proc "stdcall" (this: ^IDeviceContext, NumRTVs: u32, ppRenderTargetViews: ^^IRenderTargetView, pDepthStencilView: ^IDepthStencilView, UAVStartSlot: u32, NumUAVs: u32, ppUnorderedAccessViews: ^^IUnorderedAccessView, pUAVInitialCounts: ^u32),
|
||||
OMSetBlendState: proc "stdcall" (this: ^IDeviceContext, pBlendState: ^IBlendState, BlendFactor: ^[4]f32, SampleMask: u32),
|
||||
OMSetBlendState: proc "stdcall" (this: ^IDeviceContext, pBlendState: ^IBlendState, BlendFactor: ^[4]f32, SampleMask: COLOR_WRITE_ENABLE_MASK),
|
||||
OMSetDepthStencilState: proc "stdcall" (this: ^IDeviceContext, pDepthStencilState: ^IDepthStencilState, StencilRef: u32),
|
||||
SOSetTargets: proc "stdcall" (this: ^IDeviceContext, NumBuffers: u32, ppSOTargets: ^^IBuffer, pOffsets: ^u32),
|
||||
DrawAuto: proc "stdcall" (this: ^IDeviceContext),
|
||||
@@ -2399,7 +2439,7 @@ IDeviceContext_VTable :: struct {
|
||||
GSGetSamplers: proc "stdcall" (this: ^IDeviceContext, StartSlot: u32, NumSamplers: u32, ppSamplers: ^^ISamplerState),
|
||||
OMGetRenderTargets: proc "stdcall" (this: ^IDeviceContext, NumViews: u32, ppRenderTargetViews: ^^IRenderTargetView, ppDepthStencilView: ^^IDepthStencilView),
|
||||
OMGetRenderTargetsAndUnorderedAccessViews: proc "stdcall" (this: ^IDeviceContext, NumRTVs: u32, ppRenderTargetViews: ^^IRenderTargetView, ppDepthStencilView: ^^IDepthStencilView, UAVStartSlot: u32, NumUAVs: u32, ppUnorderedAccessViews: ^^IUnorderedAccessView),
|
||||
OMGetBlendState: proc "stdcall" (this: ^IDeviceContext, ppBlendState: ^^IBlendState, BlendFactor: ^[4]f32, pSampleMask: ^u32),
|
||||
OMGetBlendState: proc "stdcall" (this: ^IDeviceContext, ppBlendState: ^^IBlendState, BlendFactor: ^[4]f32, pSampleMask: ^COLOR_WRITE_ENABLE_MASK),
|
||||
OMGetDepthStencilState: proc "stdcall" (this: ^IDeviceContext, ppDepthStencilState: ^^IDepthStencilState, pStencilRef: ^u32),
|
||||
SOGetTargets: proc "stdcall" (this: ^IDeviceContext, NumBuffers: u32, ppSOTargets: ^^IBuffer),
|
||||
RSGetState: proc "stdcall" (this: ^IDeviceContext, ppRasterizerState: ^^IRasterizerState),
|
||||
@@ -3315,13 +3355,13 @@ IDevice_VTable :: struct {
|
||||
GetCreationFlags: proc "stdcall" (this: ^IDevice) -> u32,
|
||||
GetDeviceRemovedReason: proc "stdcall" (this: ^IDevice) -> HRESULT,
|
||||
GetImmediateContext: proc "stdcall" (this: ^IDevice, ppImmediateContext: ^^IDeviceContext),
|
||||
SetExceptionMode: proc "stdcall" (this: ^IDevice, RaiseFlags: u32) -> HRESULT,
|
||||
SetExceptionMode: proc "stdcall" (this: ^IDevice, RaiseFlags: RAISE_FLAGS) -> HRESULT,
|
||||
GetExceptionMode: proc "stdcall" (this: ^IDevice) -> u32,
|
||||
}
|
||||
|
||||
|
||||
CREATE_DEVICE_FLAGS :: distinct bit_set[CREATE_DEVICE_FLAG; u32]
|
||||
CREATE_DEVICE_FLAG :: enum u32 { // TODO: make bit_set
|
||||
CREATE_DEVICE_FLAG :: enum u32 {
|
||||
SINGLETHREADED = 0,
|
||||
DEBUG = 1,
|
||||
SWITCH_TO_REF = 2,
|
||||
@@ -3367,14 +3407,14 @@ SHADER_BUFFER_DESC :: struct {
|
||||
Type: CBUFFER_TYPE,
|
||||
Variables: u32,
|
||||
Size: u32,
|
||||
uFlags: u32,
|
||||
uFlags: SHADER_CBUFFER_FLAGS,
|
||||
}
|
||||
|
||||
SHADER_VARIABLE_DESC :: struct {
|
||||
Name: cstring,
|
||||
StartOffset: u32,
|
||||
Size: u32,
|
||||
uFlags: u32,
|
||||
uFlags: SHADER_VARIABLE_FLAGS,
|
||||
DefaultValue: rawptr,
|
||||
StartTexture: u32,
|
||||
TextureSize: u32,
|
||||
@@ -3443,7 +3483,7 @@ SHADER_INPUT_BIND_DESC :: struct {
|
||||
BindPoint: u32,
|
||||
BindCount: u32,
|
||||
|
||||
uFlags: u32,
|
||||
uFlags: SHADER_INPUT_FLAGS,
|
||||
ReturnType: RESOURCE_RETURN_TYPE,
|
||||
Dimension: SRV_DIMENSION,
|
||||
NumSamples: u32,
|
||||
@@ -3485,7 +3525,7 @@ FUNCTION_DESC :: struct {
|
||||
ConversionInstructionCount: u32,
|
||||
BitwiseInstructionCount: u32,
|
||||
MinFeatureLevel: FEATURE_LEVEL,
|
||||
RequiredFeatureFlags: u64,
|
||||
RequiredFeatureFlags: SHADER_REQUIRES_FLAGS,
|
||||
|
||||
Name: cstring,
|
||||
FunctionParameterCount: i32,
|
||||
@@ -3571,7 +3611,7 @@ IShaderReflection_VTable :: struct {
|
||||
GetNumInterfaceSlots: proc "stdcall" (this: ^IShaderReflection) -> u32,
|
||||
GetMinFeatureLevel: proc "stdcall" (this: ^IShaderReflection, pLevel: ^FEATURE_LEVEL) -> HRESULT,
|
||||
GetThreadGroupSize: proc "stdcall" (this: ^IShaderReflection, pSizeX: ^u32, pSizeY: ^u32, pSizeZ: ^u32) -> u32,
|
||||
GetRequiresFlags: proc "stdcall" (this: ^IShaderReflection) -> u64,
|
||||
GetRequiresFlags: proc "stdcall" (this: ^IShaderReflection) -> SHADER_REQUIRES_FLAGS,
|
||||
}
|
||||
|
||||
|
||||
@@ -3634,22 +3674,24 @@ IDebug :: struct #raw_union {
|
||||
using id3d11debug_vtable: ^IDebug_VTable,
|
||||
}
|
||||
|
||||
RLDO_FLAGS :: enum u32 { // TODO: make bit_set
|
||||
SUMMARY = 0x1,
|
||||
DETAIL = 0x2,
|
||||
IGNORE_INTERNAL = 0x4,
|
||||
RLDO_FLAGS :: distinct bit_set[RLDO_FLAG; u32]
|
||||
RLDO_FLAG :: enum u32 {
|
||||
SUMMARY = 0,
|
||||
DETAIL = 1,
|
||||
IGNORE_INTERNAL = 2,
|
||||
}
|
||||
|
||||
DEBUG_FEATURE :: enum u32 { // TODO: make bit_set
|
||||
FLUSH_PER_RENDER_OP = 0x1,
|
||||
FINISH_PER_RENDER_OP = 0x2,
|
||||
FEATURE_PRESENT_PER_RENDER_OP = 0x4,
|
||||
DEBUG_FEATURES :: distinct bit_set[DEBUG_FEATURE; u32]
|
||||
DEBUG_FEATURE :: enum u32 {
|
||||
FLUSH_PER_RENDER_OP = 0,
|
||||
FINISH_PER_RENDER_OP = 1,
|
||||
FEATURE_PRESENT_PER_RENDER_OP = 2,
|
||||
}
|
||||
|
||||
IDebug_VTable :: struct {
|
||||
using iunkown_vtable: IUnknown_VTable,
|
||||
SetFeatureMask: proc "stdcall" (this: ^IDebug, mask: DEBUG_FEATURE) -> HRESULT,
|
||||
GetFeatureMask: proc "stdcall" (this: ^IDebug) -> DEBUG_FEATURE,
|
||||
SetFeatureMask: proc "stdcall" (this: ^IDebug, mask: DEBUG_FEATURES) -> HRESULT,
|
||||
GetFeatureMask: proc "stdcall" (this: ^IDebug) -> DEBUG_FEATURES,
|
||||
SetPresentPerRenderOpDelay: proc "stdcall" (this: ^IDebug, Milliseconds: u32) -> HRESULT,
|
||||
GetPresentPerRenderOpDelay: proc "stdcall" (this: ^IDebug) -> u32,
|
||||
SetSwapChain: proc "stdcall" (this: ^IDebug, pSwapChain: ^dxgi.ISwapChain) -> HRESULT,
|
||||
@@ -3667,7 +3709,7 @@ IInfoQueue :: struct #raw_union {
|
||||
using id3d11infoqueue_vtable: ^IInfoQueue_VTable,
|
||||
}
|
||||
|
||||
MESSAGE_SEVERITY :: enum u32 { // TODO: make bit_set
|
||||
MESSAGE_SEVERITY :: enum u32 {
|
||||
CORRUPTION = 0,
|
||||
ERROR,
|
||||
WARNING,
|
||||
@@ -3675,7 +3717,7 @@ MESSAGE_SEVERITY :: enum u32 { // TODO: make bit_set
|
||||
MESSAGE, // Not supported until D3D 11.1
|
||||
}
|
||||
|
||||
MESSAGE_CATEGORY :: enum u32 { // TODO: make bit_set
|
||||
MESSAGE_CATEGORY :: enum u32 {
|
||||
APPLICATION_DEFINED = 0,
|
||||
MISCELLANEOUS,
|
||||
INITIALIZATION,
|
||||
@@ -3750,7 +3792,7 @@ IInfoQueue_VTable :: struct {
|
||||
SetMuteDebugOutput: proc "stdcall" (this: ^IInfoQueue, bMute: BOOL),
|
||||
}
|
||||
|
||||
MESSAGE_ID :: enum u32 { // TODO: make bit_set
|
||||
MESSAGE_ID :: enum u32 {
|
||||
UNKNOWN = 0,
|
||||
DEVICE_IASETVERTEXBUFFERS_HAZARD,
|
||||
DEVICE_IASETINDEXBUFFER_HAZARD,
|
||||
|
||||
Reference in New Issue
Block a user