Browse Source

Add UUID pointer values

gingerBill 3 years ago
parent
commit
f138f71fa6

+ 95 - 52
vendor/directx/d3d11/d3d11.odin

@@ -29,7 +29,7 @@ foreign d3d11 {
 		pAdapter:           ^dxgi.IAdapter,
 		DriverType:         DRIVER_TYPE,
 		Software:           HMODULE,
-		Flags:              CREATE_DEVICE_FLAG,
+		Flags:              CREATE_DEVICE_FLAGS,
 		pFeatureLevels:     ^FEATURE_LEVEL,
 		FeatureLevels:      u32,
 		SDKVersion:         u32,
@@ -684,7 +684,8 @@ SRV_DIMENSION :: enum i32 {
 PFN_DESTRUCTION_CALLBACK :: #type proc "c" (a0: rawptr)
 
 
-ID3DDestructionNotifier_UUID :: "A06EB39A-50DA-425B-8C31-4EECD6C270F3"
+ID3DDestructionNotifier_UUID_STRING :: "A06EB39A-50DA-425B-8C31-4EECD6C270F3"
+ID3DDestructionNotifier_UUID := &IID{0xA06EB39A, 0x50DA, 0x425B, {0x8C, 0x31, 0x4E, 0xEC, 0xD6, 0xC2, 0x70, 0xF3}}
 ID3DDestructionNotifier :: struct #raw_union {
 	#subtype iunknown: IUnknown,
 	using id3ddestructionnotifier_vtable: ^ID3DDestructionNotifier_VTable,
@@ -1100,7 +1101,8 @@ CBOX :: struct {
 }
 
 
-IDeviceChild_UUID :: "1841E5C8-16B0-489B-BCC8-44CFB0D5DEAE"
+IDeviceChild_UUID_STRING :: "1841E5C8-16B0-489B-BCC8-44CFB0D5DEAE"
+IDeviceChild_UUID := &IID{0x1841E5C8, 0x16B0, 0x489B, {0xBC, 0xC8, 0x44, 0xCF, 0xB0, 0xD5, 0xDE, 0xAE}}
 IDeviceChild :: struct #raw_union {
 	#subtype iunknown: IUnknown,
 	using id3d11devicechild_vtable: ^IDeviceChild_VTable,
@@ -1164,7 +1166,8 @@ CDEPTH_STENCIL_DESC :: struct {
 }
 
 
-IDepthStencilState_UUID :: "03823EFB-8D8F-4E1C-9AA2-F64BB2CBFDF1"
+IDepthStencilState_UUID_STRING :: "03823EFB-8D8F-4E1C-9AA2-F64BB2CBFDF1"
+IDepthStencilState_UUID := &IID{0x03823EFB, 0x8D8F, 0x4E1C, {0x9A, 0xA2, 0xF6, 0x4B, 0xB2, 0xCB, 0xFD, 0xF1}}
 IDepthStencilState :: struct #raw_union {
 	#subtype id3d11devicechild: IDeviceChild,
 	using id3d11depthstencilstate_vtable: ^IDepthStencilState_VTable,
@@ -1233,7 +1236,8 @@ CBLEND_DESC :: struct {
 }
 
 
-IBlendState_UUID :: "75B68FAA-347D-4159-8F45-A0640F01CD9A"
+IBlendState_UUID_STRING :: "75B68FAA-347D-4159-8F45-A0640F01CD9A"
+IBlendState_UUID := &IID{0x75B68FAA, 0x347D, 0x4159, {0x8F, 0x45, 0xA0, 0x64, 0x0F, 0x01, 0xCD, 0x9A}}
 IBlendState :: struct #raw_union {
 	#subtype id3d11devicechild: IDeviceChild,
 	using id3d11blendstate_vtable: ^IBlendState_VTable,
@@ -1262,7 +1266,8 @@ CRASTERIZER_DESC :: struct {
 }
 
 
-IRasterizerState_UUID :: "9BB4AB81-AB1A-4D8F-B506-FC04200B6EE7"
+IRasterizerState_UUID_STRING :: "9BB4AB81-AB1A-4D8F-B506-FC04200B6EE7"
+IRasterizerState_UUID := &IID{0x9BB4AB81, 0xAB1A, 0x4D8F, {0xB5, 0x06, 0xFC, 0x04, 0x20, 0x0B, 0x6E, 0xE7}}
 IRasterizerState :: struct #raw_union {
 	#subtype id3d11devicechild: IDeviceChild,
 	using id3d11rasterizerstate_vtable: ^IRasterizerState_VTable,
@@ -1286,7 +1291,8 @@ MAPPED_SUBRESOURCE :: struct {
 }
 
 
-IResource_UUID :: "DC8E63F3-D12B-4952-B47B-5E45026A862D"
+IResource_UUID_STRING :: "DC8E63F3-D12B-4952-B47B-5E45026A862D"
+IResource_UUID := &IID{0xDC8E63F3, 0xD12B, 0x4952, {0xB4, 0x7B, 0x5E, 0x45, 0x02, 0x6A, 0x86, 0x2D}}
 IResource :: struct #raw_union {
 	#subtype id3d11devicechild: IDeviceChild,
 	using id3d11resource_vtable: ^IResource_VTable,
@@ -1313,7 +1319,8 @@ CBUFFER_DESC :: struct {
 }
 
 
-IBuffer_UUID :: "48570B85-D1EE-4FCD-A250-EB350722B037"
+IBuffer_UUID_STRING :: "48570B85-D1EE-4FCD-A250-EB350722B037"
+IBuffer_UUID := &IID{0x48570B85, 0xD1EE, 0x4FCD, {0xA2, 0x50, 0xEB, 0x35, 0x07, 0x22, 0xB0, 0x37}}
 IBuffer :: struct #raw_union {
 	#subtype id3d11resource: IResource,
 	using id3d11buffer_vtable: ^IBuffer_VTable,
@@ -1340,7 +1347,8 @@ CTEXTURE1D_DESC :: struct {
 }
 
 
-ITexture1D_UUID :: "F8FB5C27-C6B3-4F75-A4C8-439AF2EF564C"
+ITexture1D_UUID_STRING :: "F8FB5C27-C6B3-4F75-A4C8-439AF2EF564C"
+ITexture1D_UUID := &IID{0xF8FB5C27, 0xC6B3, 0x4F75, {0xA4, 0xC8, 0x43, 0x9A, 0xF2, 0xEF, 0x56, 0x4C}}
 ITexture1D :: struct #raw_union {
 	#subtype id3d11resource: IResource,
 	using id3d11texture1d_vtable: ^ITexture1D_VTable,
@@ -1369,7 +1377,8 @@ CTEXTURE2D_DESC :: struct {
 }
 
 
-ITexture2D_UUID :: "6F15AAF2-D208-4E89-9AB4-489535D34F9C"
+ITexture2D_UUID_STRING :: "6F15AAF2-D208-4E89-9AB4-489535D34F9C"
+ITexture2D_UUID := &IID{0x6F15AAF2, 0xD208, 0x4E89, {0x9A, 0xB4, 0x48, 0x95, 0x35, 0xD3, 0x4F, 0x9C}}
 ITexture2D :: struct #raw_union {
 	#subtype id3d11resource: IResource,
 	using id3d11texture2d_vtable: ^ITexture2D_VTable,
@@ -1397,7 +1406,8 @@ CTEXTURE3D_DESC :: struct {
 }
 
 
-ITexture3D_UUID :: "037E866E-F56D-4357-A8AF-9DABBE6E250E"
+ITexture3D_UUID_STRING :: "037E866E-F56D-4357-A8AF-9DABBE6E250E"
+ITexture3D_UUID := &IID{0x037E866E, 0xF56D, 0x4357, {0xA8, 0xAF, 0x9D, 0xAB, 0xBE, 0x6E, 0x25, 0x0E}}
 ITexture3D :: struct #raw_union {
 	#subtype id3d11resource: IResource,
 	using id3d11texture3d_vtable: ^ITexture3D_VTable,
@@ -1418,7 +1428,8 @@ TEXTURECUBE_FACE :: enum i32 {
 }
 
 
-IView_UUID :: "839D1216-BB2E-412B-B7F4-A9DBEBE08ED1"
+IView_UUID_STRING :: "839D1216-BB2E-412B-B7F4-A9DBEBE08ED1"
+IView_UUID := &IID{0x839D1216, 0xBB2E, 0x412B, {0xB7, 0xF4, 0xA9, 0xDB, 0xEB, 0xE0, 0x8E, 0xD1}}
 IView :: struct #raw_union {
 	#subtype id3d11devicechild: IDeviceChild,
 	using id3d11view_vtable: ^IView_VTable,
@@ -1523,7 +1534,8 @@ CSHADER_RESOURCE_VIEW_DESC :: struct {
 }
 
 
-IShaderResourceView_UUID :: "B0E06FE0-8192-4E1A-B1CA-36D7414710B2"
+IShaderResourceView_UUID_STRING :: "B0E06FE0-8192-4E1A-B1CA-36D7414710B2"
+IShaderResourceView_UUID := &IID{0xB0E06FE0, 0x8192, 0x4E1A, {0xB1, 0xCA, 0x36, 0xD7, 0x41, 0x47, 0x10, 0xB2}}
 IShaderResourceView :: struct #raw_union {
 	#subtype id3d11view: IView,
 	using id3d11shaderresourceview_vtable: ^IShaderResourceView_VTable,
@@ -1600,7 +1612,8 @@ CRENDER_TARGET_VIEW_DESC :: struct {
 }
 
 
-IRenderTargetView_UUID :: "DFDBA067-0B8D-4865-875B-D7B4516CC164"
+IRenderTargetView_UUID_STRING :: "DFDBA067-0B8D-4865-875B-D7B4516CC164"
+IRenderTargetView_UUID := &IID{0xDFDBA067, 0x0B8D, 0x4865, {0x87, 0x5B, 0xD7, 0xB4, 0x51, 0x6C, 0xC1, 0x64}}
 IRenderTargetView :: struct #raw_union {
 	#subtype id3d11view: IView,
 	using id3d11rendertargetview_vtable: ^IRenderTargetView_VTable,
@@ -1668,7 +1681,8 @@ CDEPTH_STENCIL_VIEW_DESC :: struct {
 }
 
 
-IDepthStencilView_UUID :: "9FDAC92A-1876-48C3-AFAD-25B94F84A9B6"
+IDepthStencilView_UUID_STRING :: "9FDAC92A-1876-48C3-AFAD-25B94F84A9B6"
+IDepthStencilView_UUID := &IID{0x9FDAC92A, 0x1876, 0x48C3, {0xAF, 0xAD, 0x25, 0xB9, 0x4F, 0x84, 0xA9, 0xB6}}
 IDepthStencilView :: struct #raw_union {
 	#subtype id3d11view: IView,
 	using id3d11depthstencilview_vtable: ^IDepthStencilView_VTable,
@@ -1735,7 +1749,8 @@ CUNORDERED_ACCESS_VIEW_DESC :: struct {
 }
 
 
-IUnorderedAccessView_UUID :: "28ACF509-7F5C-48F6-8611-F316010A6380"
+IUnorderedAccessView_UUID_STRING :: "28ACF509-7F5C-48F6-8611-F316010A6380"
+IUnorderedAccessView_UUID := &IID{0x28ACF509, 0x7F5C, 0x48F6, {0x86, 0x11, 0xF3, 0x16, 0x01, 0x0A, 0x63, 0x80}}
 IUnorderedAccessView :: struct #raw_union {
 	#subtype id3d11view: IView,
 	using id3d11unorderedaccessview_vtable: ^IUnorderedAccessView_VTable,
@@ -1747,43 +1762,50 @@ IUnorderedAccessView_VTable :: struct {
 
 
 
-IVertexShader_UUID :: "3B301D64-D678-4289-8897-22F8928B72F3"
+IVertexShader_UUID_STRING :: "3B301D64-D678-4289-8897-22F8928B72F3"
+IVertexShader_UUID := &IID{0x3B301D64, 0xD678, 0x4289, {0x88, 0x97, 0x22, 0xF8, 0x92, 0x8B, 0x72, 0xF3}}
 IVertexShader :: struct {
 	using id3d11devicechild: IDeviceChild,
 }
 
 
-IHullShader_UUID :: "8E5C6061-628A-4C8E-8264-BBE45CB3D5DD"
+IHullShader_UUID_STRING :: "8E5C6061-628A-4C8E-8264-BBE45CB3D5DD"
+IHullShader_UUID := &IID{0x8E5C6061, 0x628A, 0x4C8E, {0x82, 0x64, 0xBB, 0xE4, 0x5C, 0xB3, 0xD5, 0xDD}}
 IHullShader :: struct {
 	using id3d11devicechild: IDeviceChild,
 }
 
 
-IDomainShader_UUID :: "F582C508-0F36-490C-9977-31EECE268CFA"
+IDomainShader_UUID_STRING :: "F582C508-0F36-490C-9977-31EECE268CFA"
+IDomainShader_UUID := &IID{0xF582C508, 0x0F36, 0x490C, {0x99, 0x77, 0x31, 0xEE, 0xCE, 0x26, 0x8C, 0xFA}}
 IDomainShader :: struct {
 	using id3d11devicechild: IDeviceChild,
 }
 
 
-IGeometryShader_UUID :: "38325B96-EFFB-4022-BA02-2E795B70275C"
+IGeometryShader_UUID_STRING :: "38325B96-EFFB-4022-BA02-2E795B70275C"
+IGeometryShader_UUID := &IID{0x38325B96, 0xEFFB, 0x4022, {0xBA, 0x02, 0x2E, 0x79, 0x5B, 0x70, 0x27, 0x5C}}
 IGeometryShader :: struct {
 	using id3d11devicechild: IDeviceChild,
 }
 
 
-IPixelShader_UUID :: "EA82E40D-51DC-4F33-93D4-DB7C9125AE8C"
+IPixelShader_UUID_STRING :: "EA82E40D-51DC-4F33-93D4-DB7C9125AE8C"
+IPixelShader_UUID := &IID{0xEA82E40D, 0x51DC, 0x4F33, {0x93, 0xD4, 0xDB, 0x7C, 0x91, 0x25, 0xAE, 0x8C}}
 IPixelShader :: struct {
 	using id3d11devicechild: IDeviceChild,
 }
 
 
-IComputeShader_UUID :: "4F5B196E-C2BD-495E-BD01-1FDED38E4969"
+IComputeShader_UUID_STRING :: "4F5B196E-C2BD-495E-BD01-1FDED38E4969"
+IComputeShader_UUID := &IID{0x4F5B196E, 0xC2BD, 0x495E, {0xBD, 0x01, 0x1F, 0xDE, 0xD3, 0x8E, 0x49, 0x69}}
 IComputeShader :: struct {
 	using id3d11devicechild: IDeviceChild,
 }
 
 
-IInputLayout_UUID :: "E4819DDC-4CF0-4025-BD26-5DE82A3E07B7"
+IInputLayout_UUID_STRING :: "E4819DDC-4CF0-4025-BD26-5DE82A3E07B7"
+IInputLayout_UUID := &IID{0xE4819DDC, 0x4CF0, 0x4025, {0xBD, 0x26, 0x5D, 0xE8, 0x2A, 0x3E, 0x07, 0xB7}}
 IInputLayout :: struct {
 	using id3d11devicechild: IDeviceChild,
 }
@@ -1865,7 +1887,8 @@ CSAMPLER_DESC :: struct {
 }
 
 
-ISamplerState_UUID :: "DA6FEA51-564C-4487-9810-F0D0F9B4E3A5"
+ISamplerState_UUID_STRING :: "DA6FEA51-564C-4487-9810-F0D0F9B4E3A5"
+ISamplerState_UUID := &IID{0xDA6FEA51, 0x564C, 0x4487, {0x98, 0x10, 0xF0, 0xD0, 0xF9, 0xB4, 0xE3, 0xA5}}
 ISamplerState :: struct #raw_union {
 	#subtype id3d11devicechild: IDeviceChild,
 	using id3d11samplerstate_vtable: ^ISamplerState_VTable,
@@ -1926,7 +1949,8 @@ FORMAT_SUPPORT2 :: enum i32 { // TODO: make bit_set
 }
 
 
-IAsynchronous_UUID :: "4B35D0CD-1E15-4258-9C98-1B1333F6DD3B"
+IAsynchronous_UUID_STRING :: "4B35D0CD-1E15-4258-9C98-1B1333F6DD3B"
+IAsynchronous_UUID := &IID{0x4B35D0CD, 0x1E15, 0x4258, {0x9C, 0x98, 0x1B, 0x13, 0x33, 0xF6, 0xDD, 0x3B}}
 IAsynchronous :: struct #raw_union {
 	#subtype id3d11devicechild: IDeviceChild,
 	using id3d11asynchronous_vtable: ^IAsynchronous_VTable,
@@ -1974,7 +1998,8 @@ CQUERY_DESC :: struct {
 }
 
 
-IQuery_UUID :: "D6C00747-87B7-425E-B84D-44D108560AFD"
+IQuery_UUID_STRING :: "D6C00747-87B7-425E-B84D-44D108560AFD"
+IQuery_UUID := &IID{0xD6C00747, 0x87B7, 0x425E, {0xB8, 0x4D, 0x44, 0xD1, 0x08, 0x56, 0x0A, 0xFD}}
 IQuery :: struct #raw_union {
 	#subtype id3d11asynchronous: IAsynchronous,
 	using id3d11query_vtable: ^IQuery_VTable,
@@ -1986,7 +2011,8 @@ IQuery_VTable :: struct {
 
 
 
-IPredicate_UUID :: "9EB576DD-9F77-4D86-81AA-8BAB5FE490E2"
+IPredicate_UUID_STRING :: "9EB576DD-9F77-4D86-81AA-8BAB5FE490E2"
+IPredicate_UUID := &IID{0x9EB576DD, 0x9F77, 0x4D86, {0x81, 0xAA, 0x8B, 0xAB, 0x5F, 0xE4, 0x90, 0xE2}}
 IPredicate :: struct {
 	using id3d11query: IQuery,
 }
@@ -2042,7 +2068,8 @@ COUNTER_INFO :: struct {
 }
 
 
-ICounter_UUID :: "6E8C49FB-A371-4770-B440-29086022B741"
+ICounter_UUID_STRING :: "6E8C49FB-A371-4770-B440-29086022B741"
+ICounter_UUID := &IID{0x6E8C49FB, 0xA371, 0x4770, {0xB4, 0x40, 0x29, 0x08, 0x60, 0x22, 0xB7, 0x41}}
 ICounter :: struct #raw_union {
 	#subtype id3d11asynchronous: IAsynchronous,
 	using id3d11counter_vtable: ^ICounter_VTable,
@@ -2075,7 +2102,8 @@ CLASS_INSTANCE_DESC :: struct {
 }
 
 
-IClassInstance_UUID :: "A6CD7FAA-B0B7-4A2F-9436-8662A65797CB"
+IClassInstance_UUID_STRING :: "A6CD7FAA-B0B7-4A2F-9436-8662A65797CB"
+IClassInstance_UUID := &IID{0xA6CD7FAA, 0xB0B7, 0x4A2F, {0x94, 0x36, 0x86, 0x62, 0xA6, 0x57, 0x97, 0xCB}}
 IClassInstance :: struct #raw_union {
 	#subtype id3d11devicechild: IDeviceChild,
 	using id3d11classinstance_vtable: ^IClassInstance_VTable,
@@ -2090,7 +2118,8 @@ IClassInstance_VTable :: struct {
 
 
 
-IClassLinkage_UUID :: "DDF57CBA-9543-46E4-A12B-F207A0FE7FED"
+IClassLinkage_UUID_STRING :: "DDF57CBA-9543-46E4-A12B-F207A0FE7FED"
+IClassLinkage_UUID := &IID{0xDDF57CBA, 0x9543, 0x46E4, {0xA1, 0x2B, 0xF2, 0x07, 0xA0, 0xFE, 0x7F, 0xED}}
 IClassLinkage :: struct #raw_union {
 	#subtype id3d11devicechild: IDeviceChild,
 	using id3d11classlinkage_vtable: ^IClassLinkage_VTable,
@@ -2103,7 +2132,8 @@ IClassLinkage_VTable :: struct {
 
 
 
-ICommandList_UUID :: "A24BC4D1-769E-43F7-8013-98FF566C18E2"
+ICommandList_UUID_STRING :: "A24BC4D1-769E-43F7-8013-98FF566C18E2"
+ICommandList_UUID := &IID{0xA24BC4D1, 0x769E, 0x43F7, {0x80, 0x13, 0x98, 0xFF, 0x56, 0x6C, 0x18, 0xE2}}
 ICommandList :: struct #raw_union {
 	#subtype id3d11devicechild: IDeviceChild,
 	using id3d11commandlist_vtable: ^ICommandList_VTable,
@@ -2277,7 +2307,8 @@ FEATURE_DATA_OPTIONS5 :: struct {
 }
 
 
-IDeviceContext_UUID :: "C0BFA96C-E089-44FB-8EAF-26F8796190DA"
+IDeviceContext_UUID_STRING :: "C0BFA96C-E089-44FB-8EAF-26F8796190DA"
+IDeviceContext_UUID := &IID{0xC0BFA96C, 0xE089, 0x44FB, {0x8E, 0xAF, 0x26, 0xF8, 0x79, 0x61, 0x90, 0xDA}}
 IDeviceContext :: struct #raw_union {
 	#subtype id3d11devicechild: IDeviceChild,
 	using id3d11devicecontext_vtable: ^IDeviceContext_VTable,
@@ -2484,7 +2515,8 @@ VIDEO_DECODER_EXTENSION :: struct {
 }
 
 
-IVideoDecoder_UUID :: "3C9C5B51-995D-48D1-9B8D-FA5CAEDED65C"
+IVideoDecoder_UUID_STRING :: "3C9C5B51-995D-48D1-9B8D-FA5CAEDED65C"
+IVideoDecoder_UUID := &IID{0x3C9C5B51, 0x995D, 0x48D1, {0x9B, 0x8D, 0xFA, 0x5C, 0xAE, 0xDE, 0xD6, 0x5C}}
 IVideoDecoder :: struct #raw_union {
 	#subtype id3d11devicechild: IDeviceChild,
 	using id3d11videodecoder_vtable: ^IVideoDecoder_VTable,
@@ -2679,7 +2711,8 @@ VIDEO_PROCESSOR_CONTENT_DESC :: struct {
 }
 
 
-IVideoProcessorEnumerator_UUID :: "31627037-53AB-4200-9061-05FAA9AB45F9"
+IVideoProcessorEnumerator_UUID_STRING :: "31627037-53AB-4200-9061-05FAA9AB45F9"
+IVideoProcessorEnumerator_UUID := &IID{0x31627037, 0x53AB, 0x4200, {0x90, 0x61, 0x05, 0xFA, 0xA9, 0xAB, 0x45, 0xF9}}
 IVideoProcessorEnumerator :: struct #raw_union {
 	#subtype id3d11devicechild: IDeviceChild,
 	using id3d11videoprocessorenumerator_vtable: ^IVideoProcessorEnumerator_VTable,
@@ -2789,7 +2822,8 @@ VIDEO_PROCESSOR_STREAM :: struct {
 }
 
 
-IVideoProcessor_UUID :: "1D7B0652-185F-41C6-85CE-0C5BE3D4AE6C"
+IVideoProcessor_UUID_STRING :: "1D7B0652-185F-41C6-85CE-0C5BE3D4AE6C"
+IVideoProcessor_UUID := &IID{0x1D7B0652, 0x185F, 0x41C6, {0x85, 0xCE, 0x0C, 0x5B, 0xE3, 0xD4, 0xAE, 0x6C}}
 IVideoProcessor :: struct #raw_union {
 	#subtype id3d11devicechild: IDeviceChild,
 	using id3d11videoprocessor_vtable: ^IVideoProcessor_VTable,
@@ -2812,7 +2846,8 @@ AUTHENTICATED_CHANNEL_TYPE :: enum i32 {
 }
 
 
-IAuthenticatedChannel_UUID :: "3015A308-DCBD-47AA-A747-192486D14D4A"
+IAuthenticatedChannel_UUID_STRING :: "3015A308-DCBD-47AA-A747-192486D14D4A"
+IAuthenticatedChannel_UUID := &IID{0x3015A308, 0xDCBD, 0x47AA, {0xA7, 0x47, 0x19, 0x24, 0x86, 0xD1, 0x4D, 0x4A}}
 IAuthenticatedChannel :: struct #raw_union {
 	#subtype id3d11devicechild: IDeviceChild,
 	using id3d11authenticatedchannel_vtable: ^IAuthenticatedChannel_VTable,
@@ -3020,7 +3055,8 @@ AUTHENTICATED_CONFIGURE_ACCESSIBLE_ENCRYPTION_INPUT :: struct {
 
 
 
-ICryptoSession_UUID :: "9B32F9AD-BDCC-40A6-A39D-D5C865845720"
+ICryptoSession_UUID_STRING :: "9B32F9AD-BDCC-40A6-A39D-D5C865845720"
+ICryptoSession_UUID := &IID{0x9B32F9AD, 0xBDCC, 0x40A6, {0xA3, 0x9D, 0xD5, 0xC8, 0x65, 0x84, 0x57, 0x20}}
 ICryptoSession :: struct #raw_union {
 	#subtype id3d11devicechild: IDeviceChild,
 	using id3d11cryptosession_vtable: ^ICryptoSession_VTable,
@@ -3053,7 +3089,8 @@ VIDEO_DECODER_OUTPUT_VIEW_DESC :: struct {
 }
 
 
-IVideoDecoderOutputView_UUID :: "C2931AEA-2A85-4F20-860F-FBA1FD256E18"
+IVideoDecoderOutputView_UUID_STRING :: "C2931AEA-2A85-4F20-860F-FBA1FD256E18"
+IVideoDecoderOutputView_UUID := &IID{0xC2931AEA, 0x2A85, 0x4F20, {0x86, 0x0F, 0xFB, 0xA1, 0xFD, 0x25, 0x6E, 0x18}}
 IVideoDecoderOutputView :: struct #raw_union {
 	#subtype id3d11view: IView,
 	using id3d11videodecoderoutputview_vtable: ^IVideoDecoderOutputView_VTable,
@@ -3083,7 +3120,8 @@ VIDEO_PROCESSOR_INPUT_VIEW_DESC :: struct {
 }
 
 
-IVideoProcessorInputView_UUID :: "11EC5A5F-51DC-4945-AB34-6E8C21300EA5"
+IVideoProcessorInputView_UUID_STRING :: "11EC5A5F-51DC-4945-AB34-6E8C21300EA5"
+IVideoProcessorInputView_UUID := &IID{0x11EC5A5F, 0x51DC, 0x4945, {0xAB, 0x34, 0x6E, 0x8C, 0x21, 0x30, 0x0E, 0xA5}}
 IVideoProcessorInputView :: struct #raw_union {
 	#subtype id3d11view: IView,
 	using id3d11videoprocessorinputview_vtable: ^IVideoProcessorInputView_VTable,
@@ -3119,7 +3157,8 @@ VIDEO_PROCESSOR_OUTPUT_VIEW_DESC :: struct {
 }
 
 
-IVideoProcessorOutputView_UUID :: "A048285E-25A9-4527-BD93-D68B68C44254"
+IVideoProcessorOutputView_UUID_STRING :: "A048285E-25A9-4527-BD93-D68B68C44254"
+IVideoProcessorOutputView_UUID := &IID{0xA048285E, 0x25A9, 0x4527, {0xBD, 0x93, 0xD6, 0x8B, 0x68, 0xC4, 0x42, 0x54}}
 IVideoProcessorOutputView :: struct #raw_union {
 	#subtype id3d11view: IView,
 	using id3d11videoprocessoroutputview_vtable: ^IVideoProcessorOutputView_VTable,
@@ -3131,7 +3170,8 @@ IVideoProcessorOutputView_VTable :: struct {
 
 
 
-IVideoContext_UUID :: "61F21C45-3C0E-4A74-9CEA-67100D9AD5E4"
+IVideoContext_UUID_STRING :: "61F21C45-3C0E-4A74-9CEA-67100D9AD5E4"
+IVideoContext_UUID := &IID{0x61F21C45, 0x3C0E, 0x4A74, {0x9C, 0xEA, 0x67, 0x10, 0x0D, 0x9A, 0xD5, 0xE4}}
 IVideoContext :: struct #raw_union {
 	#subtype id3d11devicechild: IDeviceChild,
 	using id3d11videocontext_vtable: ^IVideoContext_VTable,
@@ -3200,7 +3240,8 @@ IVideoContext_VTable :: struct {
 
 
 
-IVideoDevice_UUID :: "10EC4D5B-975A-4689-B9E4-D0AAC30FE333"
+IVideoDevice_UUID_STRING :: "10EC4D5B-975A-4689-B9E4-D0AAC30FE333"
+IVideoDevice_UUID := &IID{0x10EC4D5B, 0x975A, 0x4689, {0xB9, 0xE4, 0xD0, 0xAA, 0xC3, 0x0F, 0xE3, 0x33}}
 IVideoDevice :: struct #raw_union {
 	#subtype iunknown: IUnknown,
 	using id3d11videodevice_vtable: ^IVideoDevice_VTable,
@@ -3228,7 +3269,8 @@ IVideoDevice_VTable :: struct {
 
 
 
-IDevice_UUID :: "DB6F6DDB-AC77-4E88-8253-819DF9BBF140"
+IDevice_UUID_STRING :: "DB6F6DDB-AC77-4E88-8253-819DF9BBF140"
+IDevice_UUID := &IID{0xDB6F6DDB, 0xAC77, 0x4E88, {0x82, 0x53, 0x81, 0x9D, 0xF9, 0xBB, 0xF1, 0x40}}
 IDevice :: struct #raw_union {
 	#subtype iunknown: IUnknown,
 	using id3d11device_vtable: ^IDevice_VTable,
@@ -3278,16 +3320,17 @@ IDevice_VTable :: struct {
 }
 
 
+CREATE_DEVICE_FLAGS :: distinct bit_set[CREATE_DEVICE_FLAG; u32]
 CREATE_DEVICE_FLAG :: enum u32 { // TODO: make bit_set
-	SINGLETHREADED                                = 0x1,
-	DEBUG                                         = 0x2,
-	SWITCH_TO_REF                                 = 0x4,
-	PREVENT_INTERNAL_THREADING_OPTIMIZATIONS      = 0x8,
-	BGRA_SUPPORT                                  = 0x20,
-	DEBUGGABLE                                    = 0x40,
-	PREVENT_ALTERING_LAYER_SETTINGS_FROM_REGISTRY = 0x80,
-	DISABLE_GPU_TIMEOUT                           = 0x100,
-	VIDEO_SUPPORT                                 = 0x800,
+	SINGLETHREADED                                = 0,
+	DEBUG                                         = 1,
+	SWITCH_TO_REF                                 = 2,
+	PREVENT_INTERNAL_THREADING_OPTIMIZATIONS      = 3,
+	BGRA_SUPPORT                                  = 5,
+	DEBUGGABLE                                    = 6,
+	PREVENT_ALTERING_LAYER_SETTINGS_FROM_REGISTRY = 7,
+	DISABLE_GPU_TIMEOUT                           = 8,
+	VIDEO_SUPPORT                                 = 12,
 }
 
 PFN_CREATE_DEVICE :: #type proc "c" (a0: ^dxgi.IAdapter, a1: DRIVER_TYPE, a2: HMODULE, a3: u32, a4: ^FEATURE_LEVEL, a5: u32, a6: u32, a7: ^^IDevice, a8: ^FEATURE_LEVEL, a9: ^^IDeviceContext) -> HRESULT

+ 5 - 1
vendor/directx/d3d_compiler/d3d_compiler.odin

@@ -109,18 +109,22 @@ SHADER_MACRO :: struct {
 	Definition: cstring,
 }
 
+ID3D10Blob_UUID_STRING :: "8BA5FB08-5195-40E2-AC58-0D989C3A0102"
+ID3D10Blob_UUID := &IID{0x8BA5FB08, 0x5195, 0x40E2, {0xAC, 0x58, 0x0D, 0x98, 0x9C, 0x3A, 0x01, 0x02}}
 ID3D10Blob :: struct {
 	#subtype iunknown: IUnknown,
 	using id3d10blob_vtable: ^ID3D10Blob_VTable,
 }
 ID3D10Blob_VTable :: struct {
 	using iunknown_vtable: IUnknown_VTable,
-	GetBufferPointer: proc "stdcall" (this: ^ID3D10Blob),
+	GetBufferPointer: proc "stdcall" (this: ^ID3D10Blob) -> rawptr,
 	GetBufferSize:    proc "stdcall" (this: ^ID3D10Blob) -> SIZE_T,
 }
 
 
 ID3DBlob :: ID3D10Blob
+ID3DBlob_VTable :: ID3D10Blob_VTable
+
 
 INCLUDE_TYPE :: enum i32 {
 	INCLUDE_LOCAL       = 0,

+ 70 - 35
vendor/directx/dxgi/dxgi.odin

@@ -437,7 +437,8 @@ SWAP_CHAIN_DESC :: struct {
 }
 
 
-IObject_UUID :: "AEC22FB8-76F3-4639-9BE0-28EB43A67A2E"
+IObject_UUID_STRING :: "AEC22FB8-76F3-4639-9BE0-28EB43A67A2E"
+IObject_UUID := &IID{0xAEC22FB8, 0x76F3, 0x4639, {0x9B, 0xE0, 0x28, 0xEB, 0x43, 0xA6, 0x7A, 0x2E}}
 IObject :: struct #raw_union {
 	#subtype iunknown: IUnknown,
 	using vtable: ^IObject_VTable,
@@ -450,7 +451,8 @@ IObject_VTable :: struct {
 	GetParent:               proc "stdcall" (this: ^IObject, riid: ^IID, ppParent: ^rawptr) -> HRESULT,
 }
 
-IDeviceSubObject_UUID :: "3D3E0379-F9DE-4D58-BB6C-18D62992F1A6"
+IDeviceSubObject_UUID_STRING :: "3D3E0379-F9DE-4D58-BB6C-18D62992F1A6"
+IDeviceSubObject_UUID := &IID{0x3D3E0379, 0xF9DE, 0x4D58, {0xBB, 0x6C, 0x18, 0xD6, 0x29, 0x92, 0xF1, 0xA6}}
 IDeviceSubObject :: struct #raw_union {
 	#subtype idxgiobject: IObject,
 	using idxgidevicesubobject_vtable: ^IDeviceSubObject_VTable,
@@ -460,7 +462,8 @@ IDeviceSubObject_VTable :: struct {
 	GetDevice: proc "stdcall" (this: ^IDeviceSubObject, riid: ^IID, ppDevice: ^rawptr) -> HRESULT,
 }
 
-IResource_UUID :: "035F3AB4-482E-4E50-B41F-8A7F8BD8960B"
+IResource_UUID_STRING :: "035F3AB4-482E-4E50-B41F-8A7F8BD8960B"
+IResource_UUID := &IID{0x035F3AB4, 0x482E, 0x4E50, {0xB4, 0x1F, 0x8A, 0x7F, 0x8B, 0xD8, 0x96, 0x0B}}
 IResource :: struct #raw_union {
 	#subtype idxgidevicesubobject: IDeviceSubObject,
 	using idxgiresource_vtable: ^IResource_VTable,
@@ -473,7 +476,8 @@ IResource_VTable :: struct {
 	GetEvictionPriority: proc "stdcall" (this: ^IResource, pEvictionPriority: ^u32) -> HRESULT,
 }
 
-IKeyedMutex_UUID :: "9D8E1289-D7B3-465F-8126-250E349AF85D"
+IKeyedMutex_UUID_STRING :: "9D8E1289-D7B3-465F-8126-250E349AF85D"
+IKeyedMutex_UUID := &IID{0x9D8E1289, 0xD7B3, 0x465F, {0x81, 0x26, 0x25, 0x0E, 0x34, 0x9A, 0xF8, 0x5D}}
 IKeyedMutex :: struct #raw_union {
 	#subtype idxgidevicesubobject: IDeviceSubObject,
 	using idxgikeyedmutex_vtable: ^IKeyedMutex_VTable,
@@ -484,7 +488,8 @@ IKeyedMutex_VTable :: struct {
 	ReleaseSync: proc "stdcall" (this: ^IKeyedMutex, Key: u64) -> HRESULT,
 }
 
-ISurface_UUID :: "CAFCB56C-6AC3-4889-BF47-9E23BBD260EC"
+ISurface_UUID_STRING :: "CAFCB56C-6AC3-4889-BF47-9E23BBD260EC"
+ISurface_UUID := &IID{0xCAFCB56C, 0x6AC3, 0x4889, {0xBF, 0x47, 0x9E, 0x23, 0xBB, 0xD2, 0x60, 0xEC}}
 ISurface :: struct #raw_union {
 	#subtype idxgidevicesubobject: IDeviceSubObject,
 	using idxgisurface_vtable: ^ISurface_VTable,
@@ -496,7 +501,8 @@ ISurface_VTable :: struct {
 	Unmap:   proc "stdcall" (this: ^ISurface) -> HRESULT,
 }
 
-ISurface1_UUID :: "4AE63092-6327-4C1B-80AE-BFE12EA32B86"
+ISurface1_UUID_STRING :: "4AE63092-6327-4C1B-80AE-BFE12EA32B86"
+ISurface1_UUID := &IID{0x4AE63092, 0x6327, 0x4C1B, {0x80, 0xAE, 0xBF, 0xE1, 0x2E, 0xA3, 0x2B, 0x86}}
 ISurface1 :: struct #raw_union {
 	#subtype idxgisurface: ISurface,
 	using idxgisurface1_vtable: ^ISurface1_VTable,
@@ -507,7 +513,8 @@ ISurface1_VTable :: struct {
 	ReleaseDC: proc "stdcall" (this: ^ISurface1, pDirtyRect: ^RECT) -> HRESULT,
 }
 
-IAdapter_UUID :: "2411E7E1-12AC-4CCF-BD14-9798E8534DC0"
+IAdapter_UUID_STRING :: "2411E7E1-12AC-4CCF-BD14-9798E8534DC0"
+IAdapter_UUID := &IID{0x2411E7E1, 0x12AC, 0x4CCF, {0xBD, 0x14, 0x97, 0x98, 0xE8, 0x53, 0x4D, 0xC0}}
 IAdapter :: struct #raw_union {
 	#subtype idxgiobject: IObject,
 	using idxgiadapter_vtable: ^IAdapter_VTable,
@@ -519,7 +526,8 @@ IAdapter_VTable :: struct {
 	CheckInterfaceSupport: proc "stdcall" (this: ^IAdapter, InterfaceName: ^GUID, pUMDVersion: ^LARGE_INTEGER) -> HRESULT,
 }
 
-IOutput_UUID :: "AE02EEDB-C735-4690-8D52-5A8DC20213AA"
+IOutput_UUID_STRING :: "AE02EEDB-C735-4690-8D52-5A8DC20213AA"
+IOutput_UUID := &IID{0xAE02EEDB, 0xC735, 0x4690, {0x8D, 0x52, 0x5A, 0x8D, 0xC2, 0x02, 0x13, 0xAA}}
 IOutput :: struct #raw_union {
 	#subtype idxgiobject: IObject,
 	using idxgioutput_vtable: ^IOutput_VTable,
@@ -540,7 +548,8 @@ IOutput_VTable :: struct {
 	GetFrameStatistics:          proc "stdcall" (this: ^IOutput, pStats: ^FRAME_STATISTICS) -> HRESULT,
 }
 
-ISwapChain_UUID :: "310D36A0-D2E7-4C0A-AA04-6A9D23B8886A"
+ISwapChain_UUID_STRING :: "310D36A0-D2E7-4C0A-AA04-6A9D23B8886A"
+ISwapChain_UUID := &IID{0x310D36A0, 0xD2E7, 0x4C0A, {0xAA, 0x04, 0x6A, 0x9D, 0x23, 0xB8, 0x88, 0x6A}}
 ISwapChain :: struct #raw_union {
 	#subtype idxgidevicesubobject: IDeviceSubObject,
 	using idxgiswapchain_vtable: ^ISwapChain_VTable,
@@ -559,7 +568,8 @@ ISwapChain_VTable :: struct {
 	GetLastPresentCount: proc "stdcall" (this: ^ISwapChain, pLastPresentCount: ^u32) -> HRESULT,
 }
 
-IFactory_UUID :: "7B7166EC-21C7-44AE-B21A-C9AE321AE369"
+IFactory_UUID_STRING :: "7B7166EC-21C7-44AE-B21A-C9AE321AE369"
+IFactory_UUID := &IID{0x7B7166EC, 0x21C7, 0x44AE, {0xB2, 0x1A, 0xC9, 0xAE, 0x32, 0x1A, 0xE3, 0x69}}
 IFactory :: struct #raw_union {
 	#subtype idxgiobject: IObject,
 	using idxgifactory_vtable: ^IFactory_VTable,
@@ -572,7 +582,8 @@ IFactory_VTable :: struct {
 	CreateSwapChain:       proc "stdcall" (this: ^IFactory, pDevice: ^IUnknown, pDesc: ^SWAP_CHAIN_DESC, ppSwapChain: ^^ISwapChain) -> HRESULT,
 	CreateSoftwareAdapter: proc "stdcall" (this: ^IFactory, Module: HMODULE, ppAdapter: ^^IAdapter) -> HRESULT,
 }
-IDevice_UUID :: "54EC77FA-1377-44E6-8C32-88FD5F44C84C"
+IDevice_UUID_STRING :: "54EC77FA-1377-44E6-8C32-88FD5F44C84C"
+IDevice_UUID := &IID{0x54EC77FA, 0x1377, 0x44E6, {0x8C, 0x32, 0x88, 0xFD, 0x5F, 0x44, 0xC8, 0x4C}}
 IDevice :: struct #raw_union {
 	#subtype idxgiobject: IObject,
 	using idxgidevice_vtable: ^IDevice_VTable,
@@ -611,7 +622,8 @@ DISPLAY_COLOR_SPACE :: struct {
 }
 
 
-IFactory1_UUID :: "770AAE78-F26F-4DBA-A829-253C83D1B387"
+IFactory1_UUID_STRING :: "770AAE78-F26F-4DBA-A829-253C83D1B387"
+IFactory1_UUID := &IID{0x770AAE78, 0xF26F, 0x4DBA, {0xA8, 0x29, 0x25, 0x3C, 0x83, 0xD1, 0xB3, 0x87}}
 IFactory1 :: struct #raw_union {
 	#subtype idxgifactory: IFactory,
 	using idxgifactory1_vtable: ^IFactory1_VTable,
@@ -622,7 +634,8 @@ IFactory1_VTable :: struct {
 	IsCurrent:     proc "stdcall" (this: ^IFactory1) -> BOOL,
 }
 
-IAdapter1_UUID :: "29038F61-3839-4626-91FD-086879011A05"
+IAdapter1_UUID_STRING :: "29038F61-3839-4626-91FD-086879011A05"
+IAdapter1_UUID := &IID{0x29038F61, 0x3839, 0x4626, {0x91, 0xFD, 0x08, 0x68, 0x79, 0x01, 0x1A, 0x05}}
 IAdapter1 :: struct #raw_union {
 	#subtype idxgiadapter: IAdapter,
 	using idxgiadapter1_vtable: ^IAdapter1_VTable,
@@ -632,7 +645,8 @@ IAdapter1_VTable :: struct {
 	GetDesc1: proc "stdcall" (this: ^IAdapter1, pDesc: ^ADAPTER_DESC1) -> HRESULT,
 }
 
-IDevice1_UUID :: "77DB970F-6276-48BA-BA28-070143B4392C"
+IDevice1_UUID_STRING :: "77DB970F-6276-48BA-BA28-070143B4392C"
+IDevice1_UUID := &IID{0x77DB970F, 0x6276, 0x48BA, {0xBA, 0x28, 0x07, 0x01, 0x43, 0xB4, 0x39, 0x2C}}
 IDevice1 :: struct #raw_union {
 	#subtype idxgidevice: IDevice,
 	using idxgidevice1_vtable: ^IDevice1_VTable,
@@ -643,7 +657,8 @@ IDevice1_VTable :: struct {
 	GetMaximumFrameLatency: proc "stdcall" (this: ^IDevice1, pMaxLatency: ^u32) -> HRESULT,
 }
 
-IDisplayControl_UUID :: "EA9DBF1A-C88E-4486-854A-98AA0138F30C"
+IDisplayControl_UUID_STRING :: "EA9DBF1A-C88E-4486-854A-98AA0138F30C"
+IDisplayControl_UUID := &IID{0xEA9DBF1A, 0xC88E, 0x4486, {0x85, 0x4A, 0x98, 0xAA, 0x01, 0x38, 0xF3, 0x0C}}
 IDisplayControl :: struct #raw_union {
 	#subtype iunknown: IUnknown,
 	using idxgidisplaycontrol_vtable: ^IDisplayControl_VTable,
@@ -695,7 +710,8 @@ OUTDUPL_FRAME_INFO :: struct {
 }
 
 
-IOutputDuplication_UUID :: "191CFAC3-A341-470D-B26E-A864F428319C"
+IOutputDuplication_UUID_STRING :: "191CFAC3-A341-470D-B26E-A864F428319C"
+IOutputDuplication_UUID := &IID{0x191CFAC3, 0xA341, 0x470D, {0xB2, 0x6E, 0xA8, 0x64, 0xF4, 0x28, 0x31, 0x9C}}
 IOutputDuplication :: struct #raw_union {
 	#subtype idxgiobject: IObject,
 	using idxgioutputduplication_vtable: ^IOutputDuplication_VTable,
@@ -720,7 +736,8 @@ ALPHA_MODE :: enum i32 {
 }
 
 
-ISurface2_UUID :: "ABA496DD-B617-4CB8-A866-BC44D7EB1FA2"
+ISurface2_UUID_STRING :: "ABA496DD-B617-4CB8-A866-BC44D7EB1FA2"
+ISurface2_UUID := &IID{0xABA496DD, 0xB617, 0x4CB8, {0xA8, 0x66, 0xBC, 0x44, 0xD7, 0xEB, 0x1F, 0xA2}}
 ISurface2 :: struct #raw_union {
 	#subtype idxgisurface1: ISurface1,
 	using idxgisurface2_vtable: ^ISurface2_VTable,
@@ -730,7 +747,8 @@ ISurface2_VTable :: struct {
 	GetResource: proc "stdcall" (this: ^ISurface2, riid: ^IID, ppParentResource: ^rawptr, pSubresourceIndex: ^u32) -> HRESULT,
 }
 
-IResource1_UUID :: "30961379-4609-4A41-998E-54FE567EE0C1"
+IResource1_UUID_STRING :: "30961379-4609-4A41-998E-54FE567EE0C1"
+IResource1_UUID := &IID{0x30961379, 0x4609, 0x4A41, {0x99, 0x8E, 0x54, 0xFE, 0x56, 0x7E, 0xE0, 0xC1}}
 IResource1 :: struct #raw_union {
 	#subtype idxgiresource: IResource,
 	using idxgiresource1_vtable: ^IResource1_VTable,
@@ -747,7 +765,8 @@ OFFER_RESOURCE_PRIORITY :: enum i32 {
 }
 
 
-IDevice2_UUID :: "05008617-FBFD-4051-A790-144884B4F6A9"
+IDevice2_UUID_STRING :: "05008617-FBFD-4051-A790-144884B4F6A9"
+IDevice2_UUID := &IID{0x05008617, 0xFBFD, 0x4051, {0xA7, 0x90, 0x14, 0x48, 0x84, 0xB4, 0xF6, 0xA9}}
 IDevice2 :: struct #raw_union {
 	#subtype idxgidevice1: IDevice1,
 	using idxgidevice2_vtable: ^IDevice2_VTable,
@@ -804,7 +823,8 @@ PRESENT_PARAMETERS :: struct {
 }
 
 
-ISwapChain1_UUID :: "790A45F7-0D42-4876-983A-0A55CFE6F4AA"
+ISwapChain1_UUID_STRING :: "790A45F7-0D42-4876-983A-0A55CFE6F4AA"
+ISwapChain1_UUID := &IID{0x790A45F7, 0x0D42, 0x4876, {0x98, 0x3A, 0x0A, 0x55, 0xCF, 0xE6, 0xF4, 0xAA}}
 ISwapChain1 :: struct #raw_union {
 	#subtype idxgiswapchain: ISwapChain,
 	using idxgiswapchain1_vtable: ^ISwapChain1_VTable,
@@ -824,7 +844,8 @@ ISwapChain1_VTable :: struct {
 	GetRotation:              proc "stdcall" (this: ^ISwapChain1, pRotation: ^MODE_ROTATION) -> HRESULT,
 }
 
-IFactory2_UUID :: "50C83A1C-E072-4C48-87B0-3630FA36A6D0"
+IFactory2_UUID_STRING :: "50C83A1C-E072-4C48-87B0-3630FA36A6D0"
+IFactory2_UUID := &IID{0x50C83A1C, 0xE072, 0x4C48, {0x87, 0xB0, 0x36, 0x30, 0xFA, 0x36, 0xA6, 0xD0}}
 IFactory2 :: struct #raw_union {
 	#subtype idxgifactory1: IFactory1,
 	using idxgifactory2_vtable: ^IFactory2_VTable,
@@ -875,7 +896,8 @@ ADAPTER_DESC2 :: struct {
 }
 
 
-IAdapter2_UUID :: "0AA1AE0A-FA0E-4B84-8644-E05FF8E5ACB5"
+IAdapter2_UUID_STRING :: "0AA1AE0A-FA0E-4B84-8644-E05FF8E5ACB5"
+IAdapter2_UUID := &IID{0x0AA1AE0A, 0xFA0E, 0x4B84, {0x86, 0x44, 0xE0, 0x5F, 0xF8, 0xE5, 0xAC, 0xB5}}
 IAdapter2 :: struct #raw_union {
 	#subtype idxgiadapter1: IAdapter1,
 	using idxgiadapter2_vtable: ^IAdapter2_VTable,
@@ -885,7 +907,8 @@ IAdapter2_VTable :: struct {
 	GetDesc2: proc "stdcall" (this: ^IAdapter2, pDesc: ^ADAPTER_DESC2) -> HRESULT,
 }
 
-IOutput1_UUID :: "00CDDEA8-939B-4B83-A340-A685226666CC"
+IOutput1_UUID_STRING :: "00CDDEA8-939B-4B83-A340-A685226666CC"
+IOutput1_UUID := &IID{0x00CDDEA8, 0x939B, 0x4B83, {0xA3, 0x40, 0xA6, 0x85, 0x22, 0x66, 0x66, 0xCC}}
 IOutput1 :: struct #raw_union {
 	#subtype idxgioutput: IOutput,
 	using idxgioutput1_vtable: ^IOutput1_VTable,
@@ -897,7 +920,8 @@ IOutput1_VTable :: struct {
 	GetDisplaySurfaceData1:   proc "stdcall" (this: ^IOutput1, pDestination: ^IResource) -> HRESULT,
 	DuplicateOutput:          proc "stdcall" (this: ^IOutput1, pDevice: ^IUnknown, ppOutputDuplication: ^^IOutputDuplication) -> HRESULT,
 }
-IDevice3_UUID :: "6007896C-3244-4AFD-BF18-A6D3BEDA5023"
+IDevice3_UUID_STRING :: "6007896C-3244-4AFD-BF18-A6D3BEDA5023"
+IDevice3_UUID := &IID{0x6007896C, 0x3244, 0x4AFD, {0xBF, 0x18, 0xA6, 0xD3, 0xBE, 0xDA, 0x50, 0x23}}
 IDevice3 :: struct #raw_union {
 	#subtype idxgidevice2: IDevice2,
 	using idxgidevice3_vtable: ^IDevice3_VTable,
@@ -916,7 +940,8 @@ MATRIX_3X2_F :: struct {
 }
 
 
-ISwapChain2_UUID :: "A8BE2AC4-199F-4946-B331-79599FB98DE7"
+ISwapChain2_UUID_STRING :: "A8BE2AC4-199F-4946-B331-79599FB98DE7"
+ISwapChain2_UUID := &IID{0xA8BE2AC4, 0x199F, 0x4946, {0xB3, 0x31, 0x79, 0x59, 0x9F, 0xB9, 0x8D, 0xE7}}
 ISwapChain2 :: struct #raw_union {
 	#subtype idxgiswapchain1: ISwapChain1,
 	using idxgiswapchain2_vtable: ^ISwapChain2_VTable,
@@ -932,7 +957,8 @@ ISwapChain2_VTable :: struct {
 	GetMatrixTransform:            proc "stdcall" (this: ^ISwapChain2, pMatrix: ^MATRIX_3X2_F) -> HRESULT,
 }
 
-IOutput2_UUID :: "595E39D1-2724-4663-99B1-DA969DE28364"
+IOutput2_UUID_STRING :: "595E39D1-2724-4663-99B1-DA969DE28364"
+IOutput2_UUID := &IID{0x595E39D1, 0x2724, 0x4663, {0x99, 0xB1, 0xDA, 0x96, 0x9D, 0xE2, 0x83, 0x64}}
 IOutput2 :: struct #raw_union {
 	#subtype idxgioutput1: IOutput1,
 	using idxgioutput2_vtable: ^IOutput2_VTable,
@@ -942,7 +968,8 @@ IOutput2_VTable :: struct {
 	SupportsOverlays: proc "stdcall" (this: ^IOutput2) -> BOOL,
 }
 
-IFactory3_UUID :: "25483823-CD46-4C7D-86CA-47AA95B837BD"
+IFactory3_UUID_STRING :: "25483823-CD46-4C7D-86CA-47AA95B837BD"
+IFactory3_UUID := &IID{0x25483823, 0xCD46, 0x4C7D, {0x86, 0xCA, 0x47, 0xAA, 0x95, 0xB8, 0x37, 0xBD}}
 IFactory3 :: struct #raw_union {
 	#subtype idxgifactory2: IFactory2,
 	using idxgifactory3_vtable: ^IFactory3_VTable,
@@ -962,7 +989,8 @@ MULTIPLANE_OVERLAY_YCbCr_FLAGS :: enum u32 { // TODO: convert to bit_set
 }
 
 
-IDecodeSwapChain_UUID :: "2633066B-4514-4C7A-8FD8-12EA98059D18"
+IDecodeSwapChain_UUID_STRING :: "2633066B-4514-4C7A-8FD8-12EA98059D18"
+IDecodeSwapChain_UUID := &IID{0x2633066B, 0x4514, 0x4C7A, {0x8F, 0xD8, 0x12, 0xEA, 0x98, 0x05, 0x9D, 0x18}}
 IDecodeSwapChain :: struct #raw_union {
 	#subtype iunknown: IUnknown,
 	using idxgidecodeswapchain_vtable: ^IDecodeSwapChain_VTable,
@@ -980,7 +1008,8 @@ IDecodeSwapChain_VTable :: struct {
 	GetColorSpace: proc "stdcall" (this: ^IDecodeSwapChain) -> MULTIPLANE_OVERLAY_YCbCr_FLAGS,
 }
 
-IFactoryMedia_UUID :: "41E7D1F2-A591-4F7B-A2E5-FA9C843E1C12"
+IFactoryMedia_UUID_STRING :: "41E7D1F2-A591-4F7B-A2E5-FA9C843E1C12"
+IFactoryMedia_UUID := &IID{0x41E7D1F2, 0xA591, 0x4F7B, {0xA2, 0xE5, 0xFA, 0x9C, 0x84, 0x3E, 0x1C, 0x12}}
 IFactoryMedia :: struct #raw_union {
 	#subtype iunknown: IUnknown,
 	using idxgifactorymedia_vtable: ^IFactoryMedia_VTable,
@@ -1008,7 +1037,8 @@ FRAME_STATISTICS_MEDIA :: struct {
 }
 
 
-ISwapChainMedia_UUID :: "DD95B90B-F05F-4F6A-BD65-25BFB264BD84"
+ISwapChainMedia_UUID_STRING :: "DD95B90B-F05F-4F6A-BD65-25BFB264BD84"
+ISwapChainMedia_UUID := &IID{0xDD95B90B, 0xF05F, 0x4F6A, {0xBD, 0x65, 0x25, 0xBF, 0xB2, 0x64, 0xBD, 0x84}}
 ISwapChainMedia :: struct #raw_union {
 	#subtype iunknown: IUnknown,
 	using idxgiswapchainmedia_vtable: ^ISwapChainMedia_VTable,
@@ -1025,7 +1055,8 @@ OVERLAY_SUPPORT_FLAG :: enum u32 { // TODO: convert to bit_set
 }
 
 
-IOutput3_UUID :: "8A6BB301-7E7E-41F4-A8E0-5B32F7F99B18"
+IOutput3_UUID_STRING :: "8A6BB301-7E7E-41F4-A8E0-5B32F7F99B18"
+IOutput3_UUID := &IID{0x8A6BB301, 0x7E7E, 0x41F4, {0xA8, 0xE0, 0x5B, 0x32, 0xF7, 0xF9, 0x9B, 0x18}}
 IOutput3 :: struct #raw_union {
 	#subtype idxgioutput2: IOutput2,
 	using idxgioutput3_vtable: ^IOutput3_VTable,
@@ -1040,7 +1071,8 @@ SWAP_CHAIN_COLOR_SPACE_SUPPORT_FLAG :: enum u32 { // TODO: convert to bit_set
 }
 
 
-ISwapChain3_UUID :: "94D99BDB-F1F8-4AB0-B236-7DA0170EDAB1"
+ISwapChain3_UUID_STRING :: "94D99BDB-F1F8-4AB0-B236-7DA0170EDAB1"
+ISwapChain3_UUID := &IID{0x94D99BDB, 0xF1F8, 0x4AB0, {0xB2, 0x36, 0x7D, 0xA0, 0x17, 0x0E, 0xDA, 0xB1}}
 ISwapChain3 :: struct #raw_union {
 	#subtype idxgiswapchain2: ISwapChain2,
 	using idxgiswapchain3_vtable: ^ISwapChain3_VTable,
@@ -1057,7 +1089,8 @@ OVERLAY_COLOR_SPACE_SUPPORT_FLAG :: enum u32 { // TODO: convert to bit_set
 }
 
 
-IOutput4_UUID :: "DC7DCA35-2196-414D-9F53-617884032A60"
+IOutput4_UUID_STRING :: "DC7DCA35-2196-414D-9F53-617884032A60"
+IOutput4_UUID := &IID{0xDC7DCA35, 0x2196, 0x414D, {0x9F, 0x53, 0x61, 0x78, 0x84, 0x03, 0x2A, 0x60}}
 IOutput4 :: struct #raw_union {
 	#subtype idxgioutput3: IOutput3,
 	using idxgioutput4_vtable: ^IOutput4_VTable,
@@ -1067,7 +1100,8 @@ IOutput4_VTable :: struct {
 	CheckOverlayColorSpaceSupport: proc "stdcall" (this: ^IOutput4, Format: FORMAT, ColorSpace: COLOR_SPACE_TYPE, pConcernedDevice: ^IUnknown, pFlags: ^u32) -> HRESULT,
 }
 
-IFactory4_UUID :: "1BC6EA02-EF36-464F-BF0C-21CA39E5168A"
+IFactory4_UUID_STRING :: "1BC6EA02-EF36-464F-BF0C-21CA39E5168A"
+IFactory4_UUID := &IID{0x1BC6EA02, 0xEF36, 0x464F, {0xBF, 0x0C, 0x21, 0xCA, 0x39, 0xE5, 0x16, 0x8A}}
 IFactory4 :: struct #raw_union {
 	#subtype idxgifactory3: IFactory3,
 	using idxgifactory4_vtable: ^IFactory4_VTable,
@@ -1090,7 +1124,8 @@ QUERY_VIDEO_MEMORY_INFO :: struct {
 }
 
 
-IAdapter3_UUID :: "645967A4-1392-4310-A798-8053CE3E93FD"
+IAdapter3_UUID_STRING :: "645967A4-1392-4310-A798-8053CE3E93FD"
+IAdapter3_UUID := &IID{0x645967A4, 0x1392, 0x4310, {0xA7, 0x98, 0x80, 0x53, 0xCE, 0x3E, 0x93, 0xFD}}
 IAdapter3 :: struct #raw_union {
 	#subtype idxgiadapter2: IAdapter2,
 	using idxgiadapter3_vtable: ^IAdapter3_VTable,