Created
May 23, 2022 06:36
-
-
Save DaseinPhaos/54895ea4b18e08f1aeff4ba6edb6d3df to your computer and use it in GitHub Desktop.
DirectXShaderCompiler bindings for Odin
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| package dxc | |
| import d3d12 "vendor:directx/d3d12" | |
| SHADER_VERSION_TYPE :: enum u32 { | |
| PIXEL_SHADER = 0, | |
| VERTEX_SHADER = 1, | |
| GEOMETRY_SHADER = 2, | |
| HULL_SHADER = 3, | |
| DOMAIN_SHADER = 4, | |
| COMPUTE_SHADER = 5, | |
| LIBRARY = 6, | |
| RAY_GENERATION_SHADER = 7, | |
| INTERSECTION_SHADER = 8, | |
| ANY_HIT_SHADER = 9, | |
| CLOSEST_HIT_SHADER = 10, | |
| MISS_SHADER = 11, | |
| CALLABLE_SHADER = 12, | |
| MESH_SHADER = 13, | |
| AMPLIFICATION_SHADER = 14, | |
| RESERVED0 = 0xFFF0, | |
| } | |
| shver_get_type :: proc "contextless" (version: u32) -> SHADER_VERSION_TYPE { | |
| return SHADER_VERSION_TYPE((version >> 16) & 0xffff) | |
| } | |
| shver_get_major :: proc "contextless" (version: u32) -> u8 { | |
| return u8((version >> 4) & 0xf) | |
| } | |
| shver_get_minor :: proc "contextless" (version: u32) -> u8 { | |
| return u8((version >> 0) & 0xf) | |
| } | |
| SIGNATURE_PARAMETER_DESC :: struct { | |
| SemanticName: cstring, | |
| SemanticIndex: u32, | |
| Register: u32, | |
| SystemValueType: d3d12.NAME, | |
| ComponentType: d3d12.REGISTER_COMPONENT_TYPE, | |
| Mask: u8, | |
| ReadWriteMask: u8, | |
| Stream: u32, | |
| MinPrecision: d3d12.MIN_PRECISION, | |
| } | |
| SHADER_BUFFER_DESC :: struct { | |
| Name: cstring, | |
| Type: d3d12.CBUFFER_TYPE, | |
| Variables: u32, | |
| Size: u32, | |
| uFlags: u32, | |
| } | |
| SHADER_VARIABLE_DESC :: struct { | |
| Name: cstring, | |
| StartOffset: u32, | |
| Size: u32, | |
| uFlags: u32, | |
| DefaultValue: rawptr, | |
| StartTexture: u32, | |
| TextureSize: u32, | |
| StartSampler: u32, | |
| SamplerSize: u32, | |
| } | |
| SHADER_TYPE_DESC :: struct { | |
| Class: d3d12.SHADER_VARIABLE_CLASS, | |
| Type: d3d12.SHADER_VARIABLE_TYPE, | |
| Rows: u32, | |
| Columns: u32, | |
| Elements: u32, | |
| Members: u32, | |
| Offset: u32, | |
| Name: cstring, | |
| } | |
| SHADER_DESC :: struct { | |
| Version: u32, | |
| Creator: cstring, | |
| Flags: u32, | |
| ConstantBuffers: u32, | |
| BoundResources: u32, | |
| InputParameters: u32, | |
| OutputParameters: u32, | |
| InstructionCount: u32, | |
| TempRegisterCount: u32, | |
| TempArrayCount: u32, | |
| DefCount: u32, | |
| DclCount: u32, | |
| TextureNormalInstructions: u32, | |
| TextureLoadInstructions: u32, | |
| TextureCompInstructions: u32, | |
| TextureBiasInstructions: u32, | |
| TextureGradientInstructions: u32, | |
| FloatInstructionCount: u32, | |
| IntInstructionCount: u32, | |
| UintInstructionCount: u32, | |
| StaticFlowControlCount: u32, | |
| DynamicFlowControlCount: u32, | |
| MacroInstructionCount: u32, | |
| ArrayInstructionCount: u32, | |
| CutInstructionCount: u32, | |
| EmitInstructionCount: u32, | |
| GSOutputTopology: d3d12.PRIMITIVE_TOPOLOGY, | |
| GSMaxOutputVertexCount: u32, | |
| InputPrimitive: d3d12.PRIMITIVE, | |
| PatchConstantParameters: u32, | |
| cGSInstanceCount: u32, | |
| cControlPoints: u32, | |
| HSOutputPrimitive: d3d12.TESSELLATOR_OUTPUT_PRIMITIVE, | |
| HSPartitioning: d3d12.TESSELLATOR_PARTITIONING, | |
| TessellatorDomain: d3d12.TESSELLATOR_DOMAIN, | |
| cBarrierInstructions: u32, | |
| cInterlockedInstructions: u32, | |
| cTextureStoreInstructions: u32, | |
| } | |
| SHADER_INPUT_BIND_DESC :: struct { | |
| Name: cstring, | |
| Type: d3d12.SHADER_INPUT_TYPE, | |
| BindPoint: u32, | |
| BindCount: u32, | |
| uFlags: u32, | |
| ReturnType: d3d12.RESOURCE_RETURN_TYPE, | |
| Dimension: d3d12.SRV_DIMENSION, | |
| NumSamples: u32, | |
| Space: u32, | |
| uID: u32, | |
| } | |
| SHADER_REQUIRES :: enum u32 { | |
| 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, | |
| STENCIL_REF = 0x00000200, | |
| INNER_COVERAGE = 0x00000400, | |
| TYPED_UAV_LOAD_ADDITIONAL_FORMATS = 0x00000800, | |
| ROVS = 0x00001000, | |
| VIEWPORT_AND_RT_ARRAY_INDEX_FROM_ANY_SHADER_FEEDING_RASTERIZER = 0x00002000, | |
| WAVE_OPS = 0x00004000, | |
| INT64_OPS = 0x00008000, | |
| VIEW_ID = 0x00010000, | |
| BARYCENTRICS = 0x00020000, | |
| NATIVE_16BIT_OPS = 0x00040000, | |
| SHADING_RATE = 0x00080000, | |
| RAYTRACING_TIER_1_1 = 0x00100000, | |
| SAMPLER_FEEDBACK = 0x00200000, | |
| ATOMIC_INT64_ON_TYPED_RESOURCE = 0x00400000, | |
| ATOMIC_INT64_ON_GROUP_SHARED = 0x00800000, | |
| DERIVATIVES_IN_MESH_AND_AMPLIFICATION_SHADERS = 0x01000000, | |
| RESOURCE_DESCRIPTOR_HEAP_INDEXING = 0x02000000, | |
| SAMPLER_DESCRIPTOR_HEAP_INDEXING = 0x04000000, | |
| WAVE_MMA = 0x08000000, | |
| ATOMIC_INT64_ON_DESCRIPTOR_HEAP_RESOURCE = 0x10000000, | |
| } | |
| LIBARARY_DESC :: struct { | |
| Creator: cstring, | |
| Flags: u32, | |
| FunctionCount: u32, | |
| } | |
| FUNCTION_DESC :: struct { | |
| Version: u32, | |
| Creator: cstring, | |
| Flags: u32, | |
| ConstantBuffers: u32, | |
| BoundResources: u32, | |
| InstructionCount: u32, | |
| TempRegisterCount: u32, | |
| TempArrayCount: u32, | |
| DefCount: u32, | |
| DclCount: u32, | |
| TextureNormalInstructions: u32, | |
| TextureLoadInstructions: u32, | |
| TextureCompInstructions: u32, | |
| TextureBiasInstructions: u32, | |
| TextureGradientInstructions: u32, | |
| FloatInstructionCount: u32, | |
| IntInstructionCount: u32, | |
| UintInstructionCount: u32, | |
| StaticFlowControlCount: u32, | |
| DynamicFlowControlCount: u32, | |
| MacroInstructionCount: u32, | |
| ArrayInstructionCount: u32, | |
| MovInstructionCount: u32, | |
| MovcInstructionCount: u32, | |
| ConversionInstructionCount: u32, | |
| BitwiseInstructionCount: u32, | |
| MinFeatureLevel: d3d12.FEATURE_LEVEL, | |
| RequiredFeatureFlags: u64, | |
| Name: cstring, | |
| FunctionParameterCount: i32, | |
| HasReturn: d3d12.BOOL, | |
| Has10Level9VertexShader: d3d12.BOOL, | |
| Has10Level9PixelShader: d3d12.BOOL, | |
| } | |
| PARAMETER_DESC :: struct { | |
| Name: cstring, | |
| SemanticName: cstring, | |
| Type: d3d12.SHADER_VARIABLE_TYPE, | |
| Class: d3d12.SHADER_VARIABLE_CLASS, | |
| Rows: u32, | |
| Columns: u32, | |
| InterpolationMode: d3d12.INTERPOLATION_MODE, | |
| Flags: d3d12.PARAMETER_FLAGS, | |
| FirstInRegister: u32, | |
| FirstInComponent: u32, | |
| FirstOutRegister: u32, | |
| FirstOutComponent: u32, | |
| } | |
| IShaderReflectionType_UUID_STRING :: "E913C351-783D-48CA-A1D1-4F306284AD56" | |
| IShaderReflectionType_UUID := &d3d12.IID{0xE913C351, 0x783D, 0x48CA, {0xA1, 0xD1, 0x4F, 0x30, 0x62, 0x84, 0xAD, 0x56}} | |
| IShaderReflectionVariable_UUID_STRING :: "8337A8A6-A216-444A-B2F4-314733A73AEA" | |
| IShaderReflectionVariable_UUID := &d3d12.IID{0x8337A8A6, 0xA216, 0x444A, {0xB2, 0xF4, 0x31, 0x47, 0x33, 0xA7, 0x3A, 0xEA}} | |
| IShaderReflectionConstantBuffer_UUID_STRING :: "C59598B4-48B3-4869-B9B1-B1618B14A8B7" | |
| IShaderReflectionConstantBuffer_UUID := &d3d12.IID{0xC59598B4, 0x48B3, 0x4869, {0xB9, 0xB1, 0xB1, 0x61, 0x8B, 0x14, 0xA8, 0xB7}} | |
| IShaderReflection_UUID_STRING :: "5A58797D-A72C-478D-8BA2-EFC6B0EFE88E" | |
| IShaderReflection_UUID := &d3d12.IID{0x5A58797D, 0xA72C, 0x478D, {0x8B, 0xA2, 0xEF, 0xC6, 0xB0, 0xEF, 0xE8, 0x8E}} | |
| ILibraryReflection_UUID_STRING :: "8E349D19-54DB-4A56-9DC9-119D87BDB804" | |
| ILibraryReflection_UUID := &d3d12.IID{0x8E349D19, 0x54DB, 0x4A56, {0x9D, 0xC9, 0x11, 0x9D, 0x87, 0xBD, 0xB8, 0x04}} | |
| IFunctionReflection_UUID_STRING :: "1108795C-2772-4BA9-B2A8-D464DC7E2799" | |
| IFunctionReflection_UUID := &d3d12.IID{0x1108795C, 0x2772, 0x4BA9, {0xB2, 0xA8, 0xD4, 0x64, 0xDC, 0x7E, 0x27, 0x99}} | |
| IFunctionParameterReflection_UUID_STRING :: "EC25F42D-7006-4F2B-B33E-02CC3375733F" | |
| IFunctionParameterReflection_UUID := &d3d12.IID{0xEC25F42D, 0x7006, 0x4F2B, {0xB3, 0x3E, 0x2, 0xCC, 0x33, 0x75, 0x73, 0x3F}} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| package dxc | |
| import win32 "core:sys/windows" | |
| import dxgi "vendor:directx/dxgi" | |
| foreign import "dxcompiler.lib" | |
| BOOL :: dxgi.BOOL | |
| SIZE_T :: dxgi.SIZE_T | |
| ULONG :: dxgi.ULONG | |
| CLSID :: dxgi.GUID | |
| IID :: dxgi.IID | |
| HRESULT :: dxgi.HRESULT | |
| IUnknown :: dxgi.IUnknown | |
| IUnknown_VTable :: dxgi.IUnknown_VTable | |
| wstring :: win32.wstring | |
| FILETIME :: win32.FILETIME | |
| BSTR :: wstring | |
| @(default_calling_convention="c", link_prefix="Dxc") | |
| foreign dxcompiler { | |
| CreateInstance :: proc (rclsid: ^CLSID, riid: ^IID, ppv: rawptr) -> HRESULT --- | |
| CreateInstance2 :: proc (pMalloc: ^IMalloc, rclsid: ^CLSID, riid: ^IID, ppv: rawptr) -> HRESULT --- | |
| } | |
| pCreateInstanceProc :: #type proc "c" (rclsid: ^CLSID, riid: ^IID, ppv: rawptr) -> HRESULT | |
| pCreateInstance2Proc :: #type proc "c" (pMalloc: ^IMalloc, rclsid: ^CLSID, riid: ^IID, ppv: rawptr) -> HRESULT | |
| CreateInstance_ProcName :: "DxcCreateInstance" | |
| CreateInstance2_ProcName :: "DxcCreateInstance2" | |
| IMalloc :: struct #raw_union { | |
| #subtype iunknown: IUnknown, | |
| using imalloc_vtable: ^IMalloc_VTable, | |
| } | |
| IMalloc_VTable :: struct { | |
| using iunknown_vtable: IUnknown_VTable, | |
| Alloc: proc "stdcall" (this: ^IMalloc, cb: SIZE_T) -> rawptr, | |
| Realloc: proc "stdcall" (this: ^IMalloc, pv: rawptr, cb: SIZE_T) -> rawptr, | |
| Free: proc "stdcall" (this: ^IMalloc, pv: rawptr), | |
| GetSize: proc "stdcall" (this: ^IMalloc, pv: rawptr) -> SIZE_T, | |
| DidAlloc: proc "stdcall" (this: ^IMalloc, pv: rawptr) -> i32, | |
| HeapMinimize: proc "stdcall" (this: ^IMalloc), | |
| } | |
| ISequentialStream :: struct #raw_union { | |
| #subtype iunknown: IUnknown, | |
| using isequentialstream_vtable: ^ISequentialStream_VTable, | |
| } | |
| ISequentialStream_VTable :: struct { | |
| using iunknown_vtable: IUnknown_VTable, | |
| Read: proc "stdcall" (this: ^ISequentialStream, pv: rawptr, cb: ULONG, pcbRead: ^ULONG) -> HRESULT, | |
| Write: proc "stdcall" (this: ^ISequentialStream, pv: rawptr, cb: ULONG, pcbWritten: ^ULONG) -> HRESULT, | |
| } | |
| STATSTG :: struct { | |
| pwcsName: wstring, | |
| type: u32, | |
| cbSize: u64, | |
| mtime: FILETIME, | |
| ctime: FILETIME, | |
| atime: FILETIME, | |
| grfMode: u32, | |
| grfLocksSupported: u32, | |
| clsid: CLSID, | |
| grfStateBits: u32, | |
| reserved: u32, | |
| } | |
| IStream :: struct #raw_union { | |
| #subtype isequentialstream: ISequentialStream, | |
| using istream_vtable: ^IStream_VTable, | |
| } | |
| IStream_VTable :: struct { | |
| using isequentialstream_vtable: ISequentialStream_VTable, | |
| Seek: proc "stdcall" (this: ^IStream, dlibMove: i64, dwOrigin: u32, plibNewPosition: ^u64) -> HRESULT, | |
| SetSize: proc "stdcall" (this: ^IStream, libNewSize: u64) -> HRESULT, | |
| CopyTo: proc "stdcall" (this: ^IStream, pstm: ^IStream, cb: u64, pcbRead: ^u64, pcbWritten: ^u64) -> HRESULT, | |
| Commit: proc "stdcall" (this: ^IStream, grfCommitFlags: u32) -> HRESULT, | |
| Revert: proc "stdcall" (this: ^IStream) -> HRESULT, | |
| LockRegion: proc "stdcall" (this: ^IStream, libOffset: u64, cb: u64, dwLockType: u32) -> HRESULT, | |
| UnlockRegion: proc "stdcall" (this: ^IStream, libOffset: u64, cb: u64, dwLockType: u32) -> HRESULT, | |
| Stat: proc "stdcall" (this: ^IStream, pstatstg: ^STATSTG, grfStatFlag: u32) -> HRESULT, | |
| Clone: proc "stdcall" (this: ^IStream, ppstm: ^^IStream) -> HRESULT, | |
| } | |
| IBlob_UUID_STRING :: "8BA5FB08-5195-40E2-AC58-0D989C3A0102" | |
| IBlob_UUID := &IID{0x8BA5FB08, 0x5195, 0x40E2, {0xAC, 0x58, 0x0D, 0x98, 0x9C, 0x3A, 0x01, 0x02}} | |
| IBlob :: struct #raw_union { | |
| #subtype iunknown: IUnknown, | |
| using id3d10blob_vtable: ^IBlob_VTable, | |
| } | |
| IBlob_VTable :: struct { | |
| using iunknown_vtable: IUnknown_VTable, | |
| GetBufferPointer: proc "stdcall" (this: ^IBlob) -> rawptr, | |
| GetBufferSize: proc "stdcall" (this: ^IBlob) -> SIZE_T, | |
| } | |
| IBlobEncoding_UUID_STRRING :: "7241D424-2646-4191-97C0-98E96E42FC68" | |
| IBlobEncoding_UUID := &IID{0x7241D424, 0x2646, 0x4191, {0x97, 0xC0, 0x98, 0xE9, 0x6E, 0x42, 0xFC, 0x68}} | |
| IBlobEncoding :: struct #raw_union { | |
| #subtype idxcblob: IBlob, | |
| using idxcblobencoding_vtable: ^IBlobEncoding_VTable, | |
| } | |
| IBlobEncoding_VTable :: struct { | |
| using idxcblob_vtable: IBlob_VTable, | |
| GetEncoding: proc "stdcall" (pKnown: ^BOOL, pCodePage: ^u32) -> HRESULT, | |
| } | |
| IBlobUtf16_UUID_STRING :: "A3F84EAB-0FAA-497E-A39C-EE6ED60B2D84" | |
| IBlobUtf16_UUID := &IID{0xA3F84EAB, 0x0FAA, 0x497E, {0xA3, 0x9C, 0xEE, 0x6E, 0xD6, 0x0B, 0x2D, 0x84}} | |
| IBlobUtf16 :: struct #raw_union { | |
| #subtype idxcblobencoding: IBlobEncoding, | |
| using idxcblobutf16_vtable : ^IBlobUtf16_VTable, | |
| } | |
| IBlobUtf16_VTable :: struct { | |
| using idxcblobencoding_vtable: IBlobEncoding_VTable, | |
| GetStringPointer: proc "stdcall" (this: ^IBlobUtf16) -> wstring, | |
| GetStringLength: proc "stdcall" (this: ^IBlobUtf16) -> SIZE_T, | |
| } | |
| IBlobUtf8_UUID_STRING :: "3DA636C9-BA71-4024-A301-30CBF125305B" | |
| IBlobUtf8_UUID := &IID{0x3DA636C9, 0xBA71, 0x4024, {0xA3, 0x01, 0x30, 0xCB, 0xF1, 0x25, 0x30, 0x5B}} | |
| IBlobUtf8 :: struct #raw_union { | |
| #subtype idxcblobencoding: IBlobEncoding, | |
| using idxcblobutf8_vtable : ^IBlobUtf8_VTable, | |
| } | |
| IBlobUtf8_VTable :: struct { | |
| using idxcblobencoding_vtable: IBlobEncoding_VTable, | |
| GetStringPointer: proc "stdcall" (this: ^IBlobUtf8) -> cstring, | |
| GetStringLength: proc "stdcall" (this: ^IBlobUtf8) -> SIZE_T, | |
| } | |
| IIncludeHandler_UUID_STRING :: "7F61FC7D-950D-467F-B3E3-3C02FB49187C" | |
| IIncludeHandler_UUID := &IID{0x7F61FC7D, 0x950D, 0x467F, {0xB3, 0xE3, 0x3C, 0x02, 0xFB, 0x49, 0x18, 0x7C}} | |
| IIncludeHandler :: struct #raw_union { | |
| #subtype iunknown: IUnknown, | |
| using idxcincludehandler_vtable: ^IIncludeHandler_VTable, | |
| } | |
| IIncludeHandler_VTable :: struct { | |
| using iunknown_vtable: IUnknown_VTable, | |
| LoadSource: proc "stdcall" (this: ^IIncludeHandler, pFilename: wstring, ppIncludeSource: ^^IBlob) -> HRESULT, | |
| } | |
| Define :: struct { | |
| Name: wstring, | |
| Value: wstring, | |
| } | |
| ICompilerArgs_UUID_STRING :: "73EFFE2A-70DC-45F8-9690-EFF64C02429D" | |
| ICompilerArgs_UUID := &IID{0x73EFFE2A, 0x70DC, 0x45F8, {0x96, 0x90, 0xEF, 0xF6, 0x4C, 0x02, 0x42, 0x9D}} | |
| ICompilerArgs :: struct #raw_union { | |
| #subtype iunknown: IUnknown, | |
| using idxccompilerargs_vtable: ^ICompilerArgs_VTable, | |
| } | |
| ICompilerArgs_VTable :: struct { | |
| using iunknown_vtable: IUnknown_VTable, | |
| GetArguments: proc "stdcall" (this: ^ICompilerArgs) -> [^]wstring, | |
| GetCount: proc "stdcall" (this: ^ICompilerArgs) -> u32, | |
| AddArguments: proc "stdcall" (this: ^ICompilerArgs, pArguments: [^]wstring, argCount: u32) -> HRESULT, | |
| AddArgumentsUTF8: proc "stdcall" (this: ^ICompilerArgs, pArguments: [^]cstring, argCount: u32) -> HRESULT, | |
| AddDefines: proc "stdcall" (this: ^ICompilerArgs, pDefines: [^]Define, defineCount: u32) -> HRESULT, | |
| } | |
| IOperationResult_UUID_STRING :: "CEDB484A-D4E9-445A-B991-CA21CA157DC2" | |
| IOperationResult_UUID := &IID{0xCEDB484A, 0xD4E9, 0x445A, {0xB9, 0x91, 0xCA, 0x21, 0xCA, 0x15, 0x7D, 0xC2}} | |
| IOperationResult :: struct #raw_union { | |
| #subtype iunknown: IUnknown, | |
| using idxcoperationresult_vtable: ^IOperationResult_VTable, | |
| } | |
| IOperationResult_VTable :: struct { | |
| using iunknown_vtable: IUnknown_VTable, | |
| GetStatus: proc "stdcall" (this: ^IResult, pStatus: ^HRESULT) -> HRESULT, | |
| GetResult: proc "stdcall" (this: ^IResult, ppResult: ^^IBlob) -> HRESULT, | |
| GetErrorBuffer: proc "stdcall" (this: ^IResult, ppErrors: ^^IBlobEncoding) -> HRESULT, | |
| } | |
| // TODO: other legacy interfaces | |
| // ILibrary_UUID_STRING :: "E5204DC7-D18C-4C3C-BDFB-851673980FE7" | |
| // ILibrary_UUID := &IID{0xE5204DC7, 0xD18C, 0x4C3C, {0xBD, 0xFB, 0x85, 0x16, 0x73, 0x98, 0x0F, 0xE7}} | |
| // ICompiler_UUID_STRING :: "8C210BF3-011F-4422-8D70-6F9ACB8DB617" | |
| // ICompiler_UUID := &IID{0x8C210BF3, 0x011F, 0x4422, {0x8D, 0x70, 0x6F, 0x9A, 0xCB, 0x8D, 0xB6, 0x17}} | |
| // ICompiler2_UUID_STRING :: "A005A9D9-B8BB-4594-B5C9-0E633BEC4D37" | |
| // ICompiler2_UUID := &IID{0xA005A9D9, 0xB8BB, 0x4594, {0xB5, 0xC9, 0x0E, 0x63, 0x3B, 0xEC, 0x4D, 0x37}} | |
| // ILinker_UUID_STRING :: "F1B5BE2A-62DD-4327-A1C2-42AC1E1E78E6" | |
| // ILinker_UUID := &IID{0xF1B5BE2A, 0x62DD, 0x4327, {0xA1, 0xC2, 0x42, 0xAC, 0x1E, 0x1E, 0x78, 0xE6}} | |
| Buffer :: struct { | |
| Ptr: rawptr, | |
| Size: SIZE_T, | |
| Encoding: u32, | |
| } | |
| IUtils_UUID_STRING :: "4605C4CB-2019-492A-ADA4-65F20BB7D67F" | |
| IUtils_UUID := &IID{0x4605C4CB, 0x2019, 0x492A, {0xAD, 0xA4, 0x65, 0xF2, 0x0B, 0xB7, 0xD6, 0x7F}} | |
| IUtils :: struct #raw_union { | |
| #subtype iunknown: IUnknown, | |
| using idxcutils_vtable: ^IUtils_VTable, | |
| } | |
| IUtils_VTable :: struct { | |
| using iunknown_vtable: IUnknown_VTable, | |
| CreateBlobFromBlob: proc "stdcall" (this: ^IUtils, pBlob: ^IBlob, offset: u32, length: u32, ppResult: ^^IBlob) -> HRESULT, | |
| CreateBlobFromPinned: proc "stdcall" (this: ^IUtils, pData: rawptr, size: u32, codePage: u32, pBlobEncoding: ^^IBlobEncoding) -> HRESULT, | |
| MoveToBlob: proc "stdcall" (this: ^IUtils, pData: rawptr, pIMalloc: ^IMalloc, size: u32, codePage: u32, pBlobEncoding: ^^IBlobEncoding) -> HRESULT, | |
| CreateBlob: proc "stdcall" (this: ^IUtils, pData: rawptr, size: u32, codePage: u32, pBlobEncoding: ^^IBlobEncoding) -> HRESULT, | |
| LoadFile: proc "stdcall" (this: ^IUtils, pFileName: wstring, pCodePage: ^u32, pBlobEncoding: ^^IBlobEncoding) -> HRESULT, | |
| CreateReadOnlyStreamFromBlob: proc "stdcall" (this: ^IUtils, pBlob: ^IBlob, ppStream: ^^IStream) -> HRESULT, | |
| CreateDefaultIncludeHandler: proc "stdcall" (this: ^IUtils, ppResult: ^^IIncludeHandler) -> HRESULT, | |
| GetBlobAsUtf8: proc "stdcall" (this: ^IUtils, pBlob: ^IBlob, pBlobEncoding: ^^IBlobUtf8) -> HRESULT, | |
| GetBlobAsUtf16: proc "stdcall" (this: ^IUtils, pBlob: ^IBlob, pBlobEncoding: ^^IBlobUtf16) -> HRESULT, | |
| GetDxilContainerPart: proc "stdcall" (this: ^IUtils, pShader: ^Buffer, Part: u32, ppPartData: rawptr, pPartSizeInBytes: ^u32) -> HRESULT, | |
| CreateReflection: proc "stdcall" (this: ^IUtils, pData: ^Buffer, iid: ^IID, ppvReflection: rawptr) -> HRESULT, | |
| BuildArguments: proc "stdcall" (this: ^IUtils, pSourceName: wstring, pEntryPoint: wstring, pTargetProfile: wstring, pArguments: [^]wstring, argCount: u32, pDefines: [^]Define, defineCount: u32, ppArgs: ^[^]ICompilerArgs) -> HRESULT, | |
| GetPDBContents: proc "stdcall" (this: ^IUtils, pPDBBlob: ^IBlob, ppHash: ^^IBlob, ppContainer: ^^IBlob) -> HRESULT, | |
| } | |
| DXC_OUT_KIND :: enum u32 { | |
| NONE = 0, | |
| OBJECT = 1, | |
| ERRORS = 2, | |
| PDB = 3, | |
| SHADER_HASH = 4, | |
| DISASSEMBLY = 5, | |
| HLSL = 6, | |
| TEXT = 7, | |
| REFLECTION = 8, | |
| ROOT_SIGNATURE = 9, | |
| EXTRA_OUTPUTS = 10, | |
| FORCE_DWORD = 0xFFFFFFFF, | |
| } | |
| IResult_UUID_STRING :: "58346CDA-DDE7-4497-9461-6F87AF5E0659" | |
| IResult_UUID := &IID{0x58346CDA, 0xDDE7, 0x4497, {0x94, 0x61, 0x6F, 0x87, 0xAF, 0x5E, 0x06, 0x59}} | |
| IResult :: struct #raw_union { | |
| #subtype idxcoperationresult: IOperationResult, | |
| using idxcresult_vtable: ^IResult_VTable, | |
| } | |
| IResult_VTable :: struct { | |
| using idxcoperationresult_vtable: IOperationResult_VTable, | |
| HasOutput: proc "stdcall" (this: ^IResult, dxcOutKind: DXC_OUT_KIND) -> BOOL, | |
| GetOutput: proc "stdcall" (this: ^IResult, dxcOutKind: DXC_OUT_KIND, iid: ^IID, ppvObject: rawptr, ppOutputName: ^^IBlobUtf16) -> HRESULT, | |
| GetNumOutputs: proc "stdcall" (this: ^IResult) -> u32, | |
| GetOutputByIndex: proc "stdcall" (this: ^IResult, Index: u32) -> DXC_OUT_KIND, | |
| PrimaryOutput: proc "stdcall" (this: ^IResult) -> DXC_OUT_KIND, | |
| } | |
| IExtraOutputs_UUID_STRING :: "319B37A2-A5C2-494A-A5DE-4801B2FAF989" | |
| IExtraOutputs_UUID := &IID{0x319B37A2, 0xA5C2, 0x494A, {0xA5, 0xDE, 0x48, 0x01, 0xB2, 0xFA, 0xF9, 0x89}} | |
| IExtraOutputs :: struct #raw_union { | |
| #subtype iunknown: IUnknown, | |
| using idxcextraoutputs_vtable: ^IExtraOutputs_VTable, | |
| } | |
| IExtraOutputs_VTable :: struct { | |
| using iunknown_vtable: IUnknown_VTable, | |
| GetOutputCount: proc "stdcall" (this: ^IExtraOutputs) -> u32, | |
| GetOutput: proc "stdcall" (this: ^IExtraOutputs, uIndex: u32, iid: ^IID, ppvObject: rawptr, ppOutputType: ^^IBlobUtf16, ppOutputName: ^^IBlobUtf16) -> HRESULT, | |
| } | |
| ICompiler3_UUID_STRING :: "228B4687-5A6A-4730-900C-9702B2203F54" | |
| ICompiler3_UUID := &IID{0x228B4687, 0x5A6A, 0x4730, {0x90, 0x0C, 0x97, 0x02, 0xB2, 0x20, 0x3F, 0x54}} | |
| ICompiler3 :: struct #raw_union { | |
| #subtype iunknown: IUnknown, | |
| using idxccompiler3_vtable: ^ICompiler3_VTable, | |
| } | |
| ICompiler3_VTable :: struct { | |
| using iunknown_vtable: IUnknown_VTable, | |
| Compile: proc "stdcall" (this: ^ICompiler3, pSource: ^Buffer, pArguments: [^]wstring, argCount: u32, pIncludeHandler: ^IIncludeHandler, riid: ^IID, ppResult: rawptr) -> HRESULT, | |
| Disassemble: proc "stdcall" (this: ^ICompiler3, pObject: ^Buffer, riid: ^IID, ppResult: rawptr) -> HRESULT, | |
| } | |
| IValidator_UUID_STRING :: "A6E82BD2-1FD7-4826-9811-2857E797F49A" | |
| IValidator_UUID := &IID{0xA6E82BD2, 0x1FD7, 0x4826, {0x98, 0x11, 0x28, 0x57, 0xE7, 0x97, 0xF4, 0x9A}} | |
| IValidator :: struct #raw_union { | |
| #subtype iunknown: IUnknown, | |
| using idxcvalidator_vtable: ^IValidator_VTable, | |
| } | |
| IValidator_VTable :: struct { | |
| using iunknown_vtable: IUnknown_VTable, | |
| Validate: proc "stdcall" (this: ^IValidator, pShader: ^IBlob, Flags: u32, ppResult: ^^IOperationResult) -> HRESULT, | |
| } | |
| IValidator2_UUID_STRING :: "458E1FD1-B1B2-4750-A6E1-9C10F03BED92" | |
| IValidator2_UUID := &IID{0x458E1FD1, 0xB1B2, 0x4750, {0xA6, 0xE1, 0x9C, 0x10, 0xF0, 0x3B, 0xED, 0x92}} | |
| IValidator2 :: struct #raw_union { | |
| #subtype idxcvalidator: IValidator, | |
| using idxcvalidator2_vtable: ^IValidator2_VTable, | |
| } | |
| IValidator2_VTable :: struct { | |
| using idxcvalidator_vtable: IValidator_VTable, | |
| ValidateWithDebug: proc "stdcall" (this: ^IValidator2, pShader: ^IBlob, Flags: u32, pOptDebugBitcode: ^Buffer, ppResult: ^^IOperationResult) -> HRESULT, | |
| } | |
| IContainerBuilder_UUID_STRING :: "334B1F50-2292-4B35-99A1-25588D8C17FE" | |
| IContainerBuilder_UUID := &IID{0x334B1F50, 0x2292, 0x4B35, {0x99, 0xA1, 0x25, 0x58, 0x8D, 0x8C, 0x17, 0xFE}} | |
| IContainerBuilder :: struct #raw_union { | |
| #subtype iunknown: IUnknown, | |
| using idxccontainerbuilder_vtable: ^IContainerBuilder_VTable, | |
| } | |
| IContainerBuilder_VTable :: struct { | |
| using iunknown_vtable: IUnknown_VTable, | |
| Load: proc "stdcall" (this: ^IContainerBuilder, pDxilContainerHeader: ^IBlob) -> HRESULT, | |
| AddPart: proc "stdcall" (this: ^IContainerBuilder, fourCC: u32, pSource: ^IBlob) -> HRESULT, | |
| RemovePart: proc "stdcall" (this: ^IContainerBuilder, fourCC: u32) -> HRESULT, | |
| SerializeContainer: proc "stdcall" (this: ^IContainerBuilder, ppResult: ^^IOperationResult) -> HRESULT, | |
| } | |
| IAssembler_UUID_STRING :: "091F7A26-1C1F-4948-904B-E6E3A8A771D5" | |
| IAssembler_UUID := &IID{0x091F7A26, 0x1C1F, 0x4948, {0x90, 0x4B, 0xE6, 0xE3, 0xA8, 0xA7, 0x71, 0xD5}} | |
| IAssembler :: struct #raw_union { | |
| #subtype iunknown: IUnknown, | |
| using idxcassembler_vtable: ^IAssembler_VTable, | |
| } | |
| IAssembler_VTable :: struct { | |
| using iunknown_vtable: IUnknown_VTable, | |
| AssembleToContainer: proc "stdcall" (this: ^IAssembler, pShader: ^IBlob, ppResult: ^^IOperationResult) -> HRESULT, | |
| } | |
| IContainerReflection_UUID_STRING :: "D2C21B26-8350-4BDC-976A-331CE6F4C54C" | |
| IContainerReflection_UUID := &IID{0xD2C21B26, 0x8350, 0x4BDC, {0x97, 0x6A, 0x33, 0x1C, 0xE6, 0xF4, 0xC5, 0x4C}} | |
| IContainerReflection :: struct #raw_union { | |
| #subtype iunknown: IUnknown, | |
| using idxccontainerreflection_vtable: ^IContainerReflection_VTable, | |
| } | |
| IContainerReflection_VTable :: struct { | |
| using iunknown_vtable: IUnknown_VTable, | |
| Load: proc "stdcall" (this: ^IContainerReflection, pContainer: ^IBlob) -> HRESULT, | |
| GetPartCount: proc "stdcall" (this: ^IContainerReflection, pResult: ^u32) -> HRESULT, | |
| GetPartKind: proc "stdcall" (this: ^IContainerReflection, idx: u32, pResult: ^u32) -> HRESULT, | |
| GetPartContent: proc "stdcall" (this: ^IContainerReflection, idx: u32, ppResult: ^^IBlob) -> HRESULT, | |
| FindFirstPartKind: proc "stdcall" (this: ^IContainerReflection, kind: u32, pResult: ^u32) -> HRESULT, | |
| GetPartReflection: proc "stdcall" (this: ^IContainerReflection, idx: u32, iid: ^IID, ppvObject: rawptr) -> HRESULT, | |
| } | |
| IOptimizerPass_UUID_STRING :: "AE2CD79F-CC22-453F-9B6B-B124E7A5204C" | |
| IOptimizerPass_UUID := &IID{0xAE2CD79F, 0xCC22, 0x453F, {0x9B, 0x6B, 0xB1, 0x24, 0xE7, 0xA5, 0x20, 0x4C}} | |
| IOptimizerPass :: struct #raw_union { | |
| #subtype iunknown: IUnknown, | |
| using idxcoptimizerpass_vtable: ^IOptimizerPass_VTable, | |
| } | |
| IOptimizerPass_VTable :: struct { | |
| using iunknown_vtable: IUnknown_VTable, | |
| GetOptionName: proc "stdcall" (this: ^IOptimizerPass, ppResult: ^wstring) -> HRESULT, | |
| GetDescription: proc "stdcall" (this: ^IOptimizerPass, ppResult: ^wstring) -> HRESULT, | |
| GetOptionArgCount: proc "stdcall" (this: ^IOptimizerPass, pCount: ^u32) -> HRESULT, | |
| GetOptionArgName: proc "stdcall" (this: ^IOptimizerPass, argIndex: u32, ppResult: ^wstring) -> HRESULT, | |
| GetOptionArgDescription: proc "stdcall" (this: ^IOptimizerPass, argIndex: u32, ppResult: ^wstring) -> HRESULT, | |
| } | |
| IOptimizer_UUID_STRING :: "25740E2E-9CBA-401B-9119-4FB42F39F270" | |
| IOptimizer_UUID := &IID{0x25740E2E, 0x9CBA, 0x401B, {0x91, 0x19, 0x4F, 0xB4, 0x2F, 0x39, 0xF2, 0x70}} | |
| IOptimizer :: struct #raw_union { | |
| #subtype iunknown: IUnknown, | |
| using idxcoptimizer_vtable: ^IOptimizer_VTable, | |
| } | |
| IOptimizer_VTable :: struct { | |
| using iunknown_vtable: IUnknown_VTable, | |
| GetAvailablePassCount: proc "stdcall" (this: ^IOptimizer, pCount: ^u32) -> HRESULT, | |
| GetAvailablePass: proc "stdcall" (this: ^IOptimizer, index: u32, ppResult: ^^IOptimizerPass) -> HRESULT, | |
| RunOptimizer: proc "stdcall" (this: ^IOptimizer, pBlob: ^IBlob, ppOptions: [^]wstring, optionCount: u32, pOutputModule: ^^IBlob, ppOutputText: ^^IBlobEncoding) -> HRESULT, | |
| } | |
| VersionInfoFlags :: enum u32 { | |
| None = 0, | |
| Debug = 1, | |
| Internal = 2, | |
| } | |
| IVersionInfo_UUID_STRING :: "B04F5B50-2059-4F12-A8FF-A1E0CDE1CC7E" | |
| IVersionInfo_UUID := &IID{0xB04F5B50, 0x2059, 0x4F12, {0xA8, 0xFF, 0xA1, 0xE0, 0xCD, 0xE1, 0xCC, 0x7E}} | |
| IVersionInfo :: struct #raw_union { | |
| #subtype iunknown: IUnknown, | |
| using idxcversioninfo_vtable: ^IVersionInfo_VTable, | |
| } | |
| IVersionInfo_VTable :: struct { | |
| using iunknown_vtable: IUnknown_VTable, | |
| GetVersion: proc "stdcall" (this: ^IVersionInfo, pMajor: ^u32, pMinor: ^u32) -> HRESULT, | |
| GetFlags: proc "stdcall" (this: ^IVersionInfo, pFlags: ^VersionInfoFlags) -> HRESULT, | |
| } | |
| IVersionInfo2_UUID_STRING :: "FB6904C4-42F0-4B62-9C46-983AF7DA7C83" | |
| IVersionInfo2_UUID := &IID{0xFB6904C4, 0x42F0, 0x4B62, {0x9C, 0x46, 0x98, 0x3A, 0xF7, 0xDA, 0x7C, 0x83}} | |
| IVersionInfo2 :: struct #raw_union { | |
| #subtype idxcversioninfo: IVersionInfo, | |
| using idxcversioninfo2_vtable: ^IVersionInfo2_VTable, | |
| } | |
| IVersionInfo2_VTable :: struct { | |
| using idxcversioninfo_vtable: IVersionInfo_VTable, | |
| GetCommitInfo: proc "stdcall" (this: ^IVersionInfo2, pCommitCount: ^u32, pCommitHash: ^[^]byte) -> HRESULT, | |
| } | |
| IVersionInfo3_UUID_STRING :: "5E13E843-9D25-473C-9AD2-03B2D0B44B1E" | |
| IVersionInfo3_UUID := &IID{0x5E13E843, 0x9D25, 0x473C, {0x9A, 0xD2, 0x03, 0xB2, 0xD0, 0xB4, 0x4B, 0x1E}} | |
| IVersionInfo3 :: struct #raw_union { | |
| #subtype iunknown: IUnknown, | |
| using idxcversioninfo3_vtable: ^IVersionInfo3_VTable, | |
| } | |
| IVersionInfo3_VTable :: struct { | |
| using iunknown_vtable: IUnknown_VTable, | |
| GetCustomVersionString: proc "stdcall" (this: ^IVersionInfo3, pVersionString: ^cstring) -> HRESULT, | |
| } | |
| ArgPair :: struct { | |
| pName: wstring, | |
| pValue: wstring, | |
| }; | |
| IPdbUtils_UUID_STRING :: "E6C9647E-9D6A-4C3B-B94C-524B5A6C343D" | |
| IPdbUtils_UUID := &IID{0xE6C9647E, 0x9D6A, 0x4C3B, {0xB9, 0x4C, 0x52, 0x4B, 0x5A, 0x6C, 0x34, 0x3D}} | |
| IPdbUtils :: struct #raw_union { | |
| #subtype iunknown: IUnknown, | |
| using idxcpdbutils_vtable: ^IPdbUtils_VTable, | |
| } | |
| IPdbUtils_VTable :: struct { | |
| using iunknown_vtable: IUnknown_VTable, | |
| Load: proc "stdcall" (this: ^IPdbUtils, pPdbOrDxil: ^IBlob) -> HRESULT, | |
| GetSourceCount: proc "stdcall" (this: ^IPdbUtils, pCount: ^u32) -> HRESULT, | |
| GetSource: proc "stdcall" (this: ^IPdbUtils, uIndex: u32, ppResult: ^^IBlobEncoding) -> HRESULT, | |
| GetSourceName: proc "stdcall" (this: ^IPdbUtils, uIndex: u32, pResult: ^BSTR) -> HRESULT, | |
| GetFlagCount: proc "stdcall" (this: ^IPdbUtils, pCount: ^u32) -> HRESULT, | |
| GetFlag: proc "stdcall" (this: ^IPdbUtils, uIndex: u32, pResult: ^BSTR) -> HRESULT, | |
| GetArgCount: proc "stdcall" (this: ^IPdbUtils, pCount: ^u32) -> HRESULT, | |
| GetArg: proc "stdcall" (this: ^IPdbUtils, uIndex: u32, pResult: ^BSTR) -> HRESULT, | |
| GetArgPairCount: proc "stdcall" (this: ^IPdbUtils, pCount: ^u32) -> HRESULT, | |
| GetArgPair: proc "stdcall" (this: ^IPdbUtils, uIndex: u32, pName: ^BSTR, pValue: ^BSTR) -> HRESULT, | |
| GetDefineCount: proc "stdcall" (this: ^IPdbUtils, pCount: ^u32) -> HRESULT, | |
| GetDefine: proc "stdcall" (this: ^IPdbUtils, uIndex: u32, pResult: ^BSTR) -> HRESULT, | |
| GetTargetProfile: proc "stdcall" (this: ^IPdbUtils, pResult: ^BSTR) -> HRESULT, | |
| GetEntryPoint: proc "stdcall" (this: ^IPdbUtils, pResult: ^BSTR) -> HRESULT, | |
| GetMainFileName: proc "stdcall" (this: ^IPdbUtils, pResult: ^BSTR) -> HRESULT, | |
| GetHash: proc "stdcall" (this: ^IPdbUtils, ppResult: ^^IBlob) -> HRESULT, | |
| GetName: proc "stdcall" (this: ^IPdbUtils, pResult: ^BSTR) -> HRESULT, | |
| IsFullPDB: proc "stdcall" (this: ^IPdbUtils) -> BOOL, | |
| GetFullPDB: proc "stdcall" (this: ^IPdbUtils, ppFullPDB: ^^IBlob) -> HRESULT, | |
| GetVersionInfo: proc "stdcall" (this: ^IPdbUtils, ppVersionInfo: ^^IVersionInfo) -> HRESULT, | |
| SetCompiler: proc "stdcall" (this: ^IPdbUtils, pCompiler: ^ICompiler3) -> HRESULT, | |
| CompileForFullPDB: proc "stdcall" (this: ^IPdbUtils, ppResult: ^^IResult) -> HRESULT, | |
| OverrideArgs: proc "stdcall" (this: ^IPdbUtils, pArgPairs: ^ArgPair, uNumArgPairs: u32) -> HRESULT, | |
| OverrideRootSignature: proc "stdcall" (this: ^IPdbUtils, pRootSignature: wstring) -> HRESULT, | |
| } | |
| Compiler_CLSID_STRING :: "73E22D93-E6CE-47F3-B5BF-F0664F39C1B0" | |
| Compiler_CLSID := &CLSID{0x73E22D93, 0xE6CE, 0x47F3, {0xB5, 0xBF, 0xF0, 0x66, 0x4F, 0x39, 0xC1, 0xB0}} | |
| Linker_CLSID_STRING :: "EF6A8087-B0EA-4D56-9E45-D07E1A8B7806" | |
| Linker_CLSID := &CLSID{0xEF6A8087, 0xB0EA, 0x4D56, {0x9E, 0x45, 0xD0, 0x7E, 0x1A, 0x8B, 0x78, 0x6}} | |
| DiaDataSource_CLSID_STRING :: "CD1F6B73-2AB0-484D-8EDC-EBE7A43CA09F" | |
| DiaDataSource_CLSID := &CLSID{0xCD1F6B73, 0x2AB0, 0x484D, {0x8E, 0xDC, 0xEB, 0xE7, 0xA4, 0x3C, 0xA0, 0x9F}} | |
| CompilerArgs_CLSID_STRING :: "3E56AE82-224D-470F-A1A1-FE3016EE9F9D" | |
| CompilerArgs_CLSID := &CLSID{0x3E56AE82, 0x224D, 0x470F, {0xA1, 0xA1, 0xFE, 0x30, 0x16, 0xEE, 0x9F, 0x9D}} | |
| Library_CLSID_STRING :: "6245D6AF-66E0-48FD-80B4-4D271796748C" | |
| Library_CLSID := &CLSID{0x6245D6AF, 0x66E0, 0x48FD, {0x80, 0xB4, 0x4D, 0x27, 0x17, 0x96, 0x74, 0x8C}} | |
| Utils_CLSID_STRING :: Library_CLSID_STRING | |
| Utils_CLSID := Library_CLSID | |
| Validator_CLSID_STRING :: "8CA3E215-F728-4CF3-8CDD-88AF917587A1" | |
| Validator_CLSID := &CLSID{0x8CA3E215, 0xF728, 0x4CF3, {0x8C, 0xDD, 0x88, 0xAF, 0x91, 0x75, 0x87, 0xA1}} | |
| Assembler_CLSID_STRING :: "D728DB68-F903-4F80-94CD-DCCF76EC7151" | |
| Assembler_CLSID := &CLSID{0xD728DB68, 0xF903, 0x4F80, {0x94, 0xCD, 0xDC, 0xCF, 0x76, 0xEC, 0x71, 0x51}} | |
| ContainerReflection_CLSID_STRING :: "b9f54489-55b8-400c-ba3a-1675e4728b91" | |
| ContainerReflection_CLSID := &CLSID{0xB9F54489, 0x55B8, 0x400C, {0xBA, 0x3A, 0x16, 0x75, 0xE4, 0x72, 0x8B, 0x91}} | |
| Optimizer_CLSID_STRING :: "AE2CD79F-CC22-453F-9B6B-B124E7A5204C" | |
| Optimizer_CLSID := &CLSID{0xAE2CD79F, 0xCC22, 0x453F, {0x9B, 0x6B, 0xB1, 0x24, 0xE7, 0xA5, 0x20, 0x4C}} | |
| ContainerBuilder_CLSID_STRING :: "94134294-411f-4574-b4d0-8741e25240d2" | |
| ContainerBuilder_CLSID := &CLSID{0x94134294, 0x411F, 0x4574, {0xB4, 0xD0, 0x87, 0x41, 0xE2, 0x52, 0x40, 0xD2}} | |
| PdbUtils_CLSID_STRING :: "54621dfb-f2ce-457e-ae8c-ec355faeec7c" | |
| PdbUtils_CLSID := &CLSID{0x54621DFB, 0xF2CE, 0x457E, {0xAE, 0x8C, 0xEC, 0x35, 0x5F, 0xAE, 0xEC, 0x7C}} | |
| CP_UTF8 :: 65001 | |
| CP_UTF16 :: 1200 | |
| CP_ACP :: 0 | |
| make_fourcc :: proc "contextless" (ch0, ch1, ch2, ch3: u32) -> u32 { | |
| return ch0 | (ch1 << 8) | (ch2 << 16) | (ch3 << 24) | |
| } | |
| PART_PDB :: u32('I') | (u32('L')<<8) | (u32('D')<<16) | (u32('B')<<24) | |
| PART_PDB_NAME :: u32('I') | (u32('L')<<8) | (u32('D')<<16) | (u32('N')<<24) | |
| PART_PRIVATE_DATA :: u32('P') | (u32('R')<<8) | (u32('I')<<16) | (u32('V')<<24) | |
| PART_ROOT_SIGNATURE :: u32('R') | (u32('T')<<8) | (u32('S')<<16) | (u32('0')<<24) | |
| PART_DXIL :: u32('D') | (u32('X')<<8) | (u32('I')<<16) | (u32('L')<<24) | |
| PART_REFLECTION_DATA :: u32('S') | (u32('T')<<8) | (u32('A')<<16) | (u32('T')<<24) | |
| PART_SHADER_HASH :: u32('H') | (u32('A')<<8) | (u32('S')<<16) | (u32('H')<<24) | |
| PART_INPUT_SIGNATURE :: u32('I') | (u32('S')<<8) | (u32('G')<<16) | (u32('1')<<24) | |
| PART_OUTPUT_SIGNATURE :: u32('O') | (u32('S')<<8) | (u32('G')<<16) | (u32('1')<<24) | |
| PART_PATCH_CONSTANT_SIGNATURE :: u32('P') | (u32('S')<<8) | (u32('G')<<16) | (u32('1')<<24) | |
| ARG_DEBUG :: "-Zi" | |
| ARG_SKIP_VALIDATION :: "-Vd" | |
| ARG_SKIP_OPTIMIZATIONS :: "-Od" | |
| ARG_PACK_MATRIX_ROW_MAJOR :: "-Zpr" | |
| ARG_PACK_MATRIX_COLUMN_MAJOR :: "-Zpc" | |
| ARG_AVOID_FLOW_CONTROL :: "-Gfa" | |
| ARG_PREFER_FLOW_CONTROL :: "-Gfp" | |
| ARG_ENABLE_STRICTNESS :: "-Ges" | |
| ARG_ENABLE_BACKWARDS_COMPATIBILITY :: "-Gec" | |
| ARG_IEEE_STRICTNESS :: "-Gis" | |
| ARG_OPTIMIZATION_LEVEL0 :: "-O0" | |
| ARG_OPTIMIZATION_LEVEL1 :: "-O1" | |
| ARG_OPTIMIZATION_LEVEL2 :: "-O2" | |
| ARG_OPTIMIZATION_LEVEL3 :: "-O3" | |
| ARG_WARNINGS_ARE_ERRORS :: "-WX" | |
| ARG_RESOURCES_MAY_ALIAS :: "-res_may_alias" | |
| ARG_ALL_RESOURCES_BOUND :: "-all_resources_bound" | |
| ARG_DEBUG_NAME_FOR_SOURCE :: "-Zss" | |
| ARG_DEBUG_NAME_FOR_BINARY :: "-Zsb" | |
| EXTRA_OUTPUT_NAME_STDOUT :: "*stdout*" | |
| EXTRA_OUTPUT_NAME_STDERR :: "*stderr*" |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment