port from perforce
This commit is contained in:
14524
hgplus/las/framework-dx11-nasm/tools/headerGenerator/d3d11.h
Normal file
14524
hgplus/las/framework-dx11-nasm/tools/headerGenerator/d3d11.h
Normal file
File diff suppressed because it is too large
Load Diff
2333
hgplus/las/framework-dx11-nasm/tools/headerGenerator/d3d11.inc
Normal file
2333
hgplus/las/framework-dx11-nasm/tools/headerGenerator/d3d11.inc
Normal file
File diff suppressed because it is too large
Load Diff
846
hgplus/las/framework-dx11-nasm/tools/headerGenerator/d3dcommon.h
Normal file
846
hgplus/las/framework-dx11-nasm/tools/headerGenerator/d3dcommon.h
Normal file
@@ -0,0 +1,846 @@
|
||||
|
||||
|
||||
/* this ALWAYS GENERATED file contains the definitions for the interfaces */
|
||||
|
||||
|
||||
/* File created by MIDL compiler version 8.00.0595 */
|
||||
/* @@MIDL_FILE_HEADING( ) */
|
||||
|
||||
#pragma warning( disable: 4049 ) /* more than 64k source lines */
|
||||
|
||||
|
||||
/* verify that the <rpcndr.h> version is high enough to compile this file*/
|
||||
#ifndef __REQUIRED_RPCNDR_H_VERSION__
|
||||
#define __REQUIRED_RPCNDR_H_VERSION__ 500
|
||||
#endif
|
||||
|
||||
/* verify that the <rpcsal.h> version is high enough to compile this file*/
|
||||
#ifndef __REQUIRED_RPCSAL_H_VERSION__
|
||||
#define __REQUIRED_RPCSAL_H_VERSION__ 100
|
||||
#endif
|
||||
|
||||
#include "rpc.h"
|
||||
#include "rpcndr.h"
|
||||
|
||||
#ifndef __RPCNDR_H_VERSION__
|
||||
#error this stub requires an updated version of <rpcndr.h>
|
||||
#endif // __RPCNDR_H_VERSION__
|
||||
|
||||
#ifndef COM_NO_WINDOWS_H
|
||||
#include "windows.h"
|
||||
#include "ole2.h"
|
||||
#endif /*COM_NO_WINDOWS_H*/
|
||||
|
||||
#ifndef __d3dcommon_h__
|
||||
#define __d3dcommon_h__
|
||||
|
||||
#if defined(_MSC_VER) && (_MSC_VER >= 1020)
|
||||
#pragma once
|
||||
#endif
|
||||
|
||||
/* Forward Declarations */
|
||||
|
||||
#ifndef __ID3D10Blob_FWD_DEFINED__
|
||||
#define __ID3D10Blob_FWD_DEFINED__
|
||||
typedef interface ID3D10Blob ID3D10Blob;
|
||||
|
||||
#endif /* __ID3D10Blob_FWD_DEFINED__ */
|
||||
|
||||
|
||||
/* header files for imported files */
|
||||
#include "oaidl.h"
|
||||
#include "ocidl.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C"{
|
||||
#endif
|
||||
|
||||
|
||||
/* interface __MIDL_itf_d3dcommon_0000_0000 */
|
||||
/* [local] */
|
||||
|
||||
typedef
|
||||
enum D3D_DRIVER_TYPE
|
||||
{
|
||||
D3D_DRIVER_TYPE_UNKNOWN = 0,
|
||||
D3D_DRIVER_TYPE_HARDWARE = ( D3D_DRIVER_TYPE_UNKNOWN + 1 ) ,
|
||||
D3D_DRIVER_TYPE_REFERENCE = ( D3D_DRIVER_TYPE_HARDWARE + 1 ) ,
|
||||
D3D_DRIVER_TYPE_NULL = ( D3D_DRIVER_TYPE_REFERENCE + 1 ) ,
|
||||
D3D_DRIVER_TYPE_SOFTWARE = ( D3D_DRIVER_TYPE_NULL + 1 ) ,
|
||||
D3D_DRIVER_TYPE_WARP = ( D3D_DRIVER_TYPE_SOFTWARE + 1 )
|
||||
} D3D_DRIVER_TYPE;
|
||||
|
||||
typedef
|
||||
enum D3D_FEATURE_LEVEL
|
||||
{
|
||||
D3D_FEATURE_LEVEL_9_1 = 0x9100,
|
||||
D3D_FEATURE_LEVEL_9_2 = 0x9200,
|
||||
D3D_FEATURE_LEVEL_9_3 = 0x9300,
|
||||
D3D_FEATURE_LEVEL_10_0 = 0xa000,
|
||||
D3D_FEATURE_LEVEL_10_1 = 0xa100,
|
||||
D3D_FEATURE_LEVEL_11_0 = 0xb000,
|
||||
D3D_FEATURE_LEVEL_11_1 = 0xb100
|
||||
} D3D_FEATURE_LEVEL;
|
||||
|
||||
#define D3D_FL9_1_REQ_TEXTURE1D_U_DIMENSION 2048
|
||||
#define D3D_FL9_3_REQ_TEXTURE1D_U_DIMENSION 4096
|
||||
#define D3D_FL9_1_REQ_TEXTURE2D_U_OR_V_DIMENSION 2048
|
||||
#define D3D_FL9_3_REQ_TEXTURE2D_U_OR_V_DIMENSION 4096
|
||||
#define D3D_FL9_1_REQ_TEXTURECUBE_DIMENSION 512
|
||||
#define D3D_FL9_3_REQ_TEXTURECUBE_DIMENSION 4096
|
||||
#define D3D_FL9_1_REQ_TEXTURE3D_U_V_OR_W_DIMENSION 256
|
||||
#define D3D_FL9_1_DEFAULT_MAX_ANISOTROPY 2
|
||||
#define D3D_FL9_1_IA_PRIMITIVE_MAX_COUNT 65535
|
||||
#define D3D_FL9_2_IA_PRIMITIVE_MAX_COUNT 1048575
|
||||
#define D3D_FL9_1_SIMULTANEOUS_RENDER_TARGET_COUNT 1
|
||||
#define D3D_FL9_3_SIMULTANEOUS_RENDER_TARGET_COUNT 4
|
||||
#define D3D_FL9_1_MAX_TEXTURE_REPEAT 128
|
||||
#define D3D_FL9_2_MAX_TEXTURE_REPEAT 2048
|
||||
#define D3D_FL9_3_MAX_TEXTURE_REPEAT 8192
|
||||
typedef
|
||||
enum D3D_PRIMITIVE_TOPOLOGY
|
||||
{
|
||||
D3D_PRIMITIVE_TOPOLOGY_UNDEFINED = 0,
|
||||
D3D_PRIMITIVE_TOPOLOGY_POINTLIST = 1,
|
||||
D3D_PRIMITIVE_TOPOLOGY_LINELIST = 2,
|
||||
D3D_PRIMITIVE_TOPOLOGY_LINESTRIP = 3,
|
||||
D3D_PRIMITIVE_TOPOLOGY_TRIANGLELIST = 4,
|
||||
D3D_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP = 5,
|
||||
D3D_PRIMITIVE_TOPOLOGY_LINELIST_ADJ = 10,
|
||||
D3D_PRIMITIVE_TOPOLOGY_LINESTRIP_ADJ = 11,
|
||||
D3D_PRIMITIVE_TOPOLOGY_TRIANGLELIST_ADJ = 12,
|
||||
D3D_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP_ADJ = 13,
|
||||
D3D_PRIMITIVE_TOPOLOGY_1_CONTROL_POINT_PATCHLIST = 33,
|
||||
D3D_PRIMITIVE_TOPOLOGY_2_CONTROL_POINT_PATCHLIST = 34,
|
||||
D3D_PRIMITIVE_TOPOLOGY_3_CONTROL_POINT_PATCHLIST = 35,
|
||||
D3D_PRIMITIVE_TOPOLOGY_4_CONTROL_POINT_PATCHLIST = 36,
|
||||
D3D_PRIMITIVE_TOPOLOGY_5_CONTROL_POINT_PATCHLIST = 37,
|
||||
D3D_PRIMITIVE_TOPOLOGY_6_CONTROL_POINT_PATCHLIST = 38,
|
||||
D3D_PRIMITIVE_TOPOLOGY_7_CONTROL_POINT_PATCHLIST = 39,
|
||||
D3D_PRIMITIVE_TOPOLOGY_8_CONTROL_POINT_PATCHLIST = 40,
|
||||
D3D_PRIMITIVE_TOPOLOGY_9_CONTROL_POINT_PATCHLIST = 41,
|
||||
D3D_PRIMITIVE_TOPOLOGY_10_CONTROL_POINT_PATCHLIST = 42,
|
||||
D3D_PRIMITIVE_TOPOLOGY_11_CONTROL_POINT_PATCHLIST = 43,
|
||||
D3D_PRIMITIVE_TOPOLOGY_12_CONTROL_POINT_PATCHLIST = 44,
|
||||
D3D_PRIMITIVE_TOPOLOGY_13_CONTROL_POINT_PATCHLIST = 45,
|
||||
D3D_PRIMITIVE_TOPOLOGY_14_CONTROL_POINT_PATCHLIST = 46,
|
||||
D3D_PRIMITIVE_TOPOLOGY_15_CONTROL_POINT_PATCHLIST = 47,
|
||||
D3D_PRIMITIVE_TOPOLOGY_16_CONTROL_POINT_PATCHLIST = 48,
|
||||
D3D_PRIMITIVE_TOPOLOGY_17_CONTROL_POINT_PATCHLIST = 49,
|
||||
D3D_PRIMITIVE_TOPOLOGY_18_CONTROL_POINT_PATCHLIST = 50,
|
||||
D3D_PRIMITIVE_TOPOLOGY_19_CONTROL_POINT_PATCHLIST = 51,
|
||||
D3D_PRIMITIVE_TOPOLOGY_20_CONTROL_POINT_PATCHLIST = 52,
|
||||
D3D_PRIMITIVE_TOPOLOGY_21_CONTROL_POINT_PATCHLIST = 53,
|
||||
D3D_PRIMITIVE_TOPOLOGY_22_CONTROL_POINT_PATCHLIST = 54,
|
||||
D3D_PRIMITIVE_TOPOLOGY_23_CONTROL_POINT_PATCHLIST = 55,
|
||||
D3D_PRIMITIVE_TOPOLOGY_24_CONTROL_POINT_PATCHLIST = 56,
|
||||
D3D_PRIMITIVE_TOPOLOGY_25_CONTROL_POINT_PATCHLIST = 57,
|
||||
D3D_PRIMITIVE_TOPOLOGY_26_CONTROL_POINT_PATCHLIST = 58,
|
||||
D3D_PRIMITIVE_TOPOLOGY_27_CONTROL_POINT_PATCHLIST = 59,
|
||||
D3D_PRIMITIVE_TOPOLOGY_28_CONTROL_POINT_PATCHLIST = 60,
|
||||
D3D_PRIMITIVE_TOPOLOGY_29_CONTROL_POINT_PATCHLIST = 61,
|
||||
D3D_PRIMITIVE_TOPOLOGY_30_CONTROL_POINT_PATCHLIST = 62,
|
||||
D3D_PRIMITIVE_TOPOLOGY_31_CONTROL_POINT_PATCHLIST = 63,
|
||||
D3D_PRIMITIVE_TOPOLOGY_32_CONTROL_POINT_PATCHLIST = 64,
|
||||
D3D10_PRIMITIVE_TOPOLOGY_UNDEFINED = D3D_PRIMITIVE_TOPOLOGY_UNDEFINED,
|
||||
D3D10_PRIMITIVE_TOPOLOGY_POINTLIST = D3D_PRIMITIVE_TOPOLOGY_POINTLIST,
|
||||
D3D10_PRIMITIVE_TOPOLOGY_LINELIST = D3D_PRIMITIVE_TOPOLOGY_LINELIST,
|
||||
D3D10_PRIMITIVE_TOPOLOGY_LINESTRIP = D3D_PRIMITIVE_TOPOLOGY_LINESTRIP,
|
||||
D3D10_PRIMITIVE_TOPOLOGY_TRIANGLELIST = D3D_PRIMITIVE_TOPOLOGY_TRIANGLELIST,
|
||||
D3D10_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP = D3D_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP,
|
||||
D3D10_PRIMITIVE_TOPOLOGY_LINELIST_ADJ = D3D_PRIMITIVE_TOPOLOGY_LINELIST_ADJ,
|
||||
D3D10_PRIMITIVE_TOPOLOGY_LINESTRIP_ADJ = D3D_PRIMITIVE_TOPOLOGY_LINESTRIP_ADJ,
|
||||
D3D10_PRIMITIVE_TOPOLOGY_TRIANGLELIST_ADJ = D3D_PRIMITIVE_TOPOLOGY_TRIANGLELIST_ADJ,
|
||||
D3D10_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP_ADJ = D3D_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP_ADJ,
|
||||
D3D11_PRIMITIVE_TOPOLOGY_UNDEFINED = D3D_PRIMITIVE_TOPOLOGY_UNDEFINED,
|
||||
D3D11_PRIMITIVE_TOPOLOGY_POINTLIST = D3D_PRIMITIVE_TOPOLOGY_POINTLIST,
|
||||
D3D11_PRIMITIVE_TOPOLOGY_LINELIST = D3D_PRIMITIVE_TOPOLOGY_LINELIST,
|
||||
D3D11_PRIMITIVE_TOPOLOGY_LINESTRIP = D3D_PRIMITIVE_TOPOLOGY_LINESTRIP,
|
||||
D3D11_PRIMITIVE_TOPOLOGY_TRIANGLELIST = D3D_PRIMITIVE_TOPOLOGY_TRIANGLELIST,
|
||||
D3D11_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP = D3D_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP,
|
||||
D3D11_PRIMITIVE_TOPOLOGY_LINELIST_ADJ = D3D_PRIMITIVE_TOPOLOGY_LINELIST_ADJ,
|
||||
D3D11_PRIMITIVE_TOPOLOGY_LINESTRIP_ADJ = D3D_PRIMITIVE_TOPOLOGY_LINESTRIP_ADJ,
|
||||
D3D11_PRIMITIVE_TOPOLOGY_TRIANGLELIST_ADJ = D3D_PRIMITIVE_TOPOLOGY_TRIANGLELIST_ADJ,
|
||||
D3D11_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP_ADJ = D3D_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP_ADJ,
|
||||
D3D11_PRIMITIVE_TOPOLOGY_1_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_1_CONTROL_POINT_PATCHLIST,
|
||||
D3D11_PRIMITIVE_TOPOLOGY_2_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_2_CONTROL_POINT_PATCHLIST,
|
||||
D3D11_PRIMITIVE_TOPOLOGY_3_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_3_CONTROL_POINT_PATCHLIST,
|
||||
D3D11_PRIMITIVE_TOPOLOGY_4_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_4_CONTROL_POINT_PATCHLIST,
|
||||
D3D11_PRIMITIVE_TOPOLOGY_5_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_5_CONTROL_POINT_PATCHLIST,
|
||||
D3D11_PRIMITIVE_TOPOLOGY_6_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_6_CONTROL_POINT_PATCHLIST,
|
||||
D3D11_PRIMITIVE_TOPOLOGY_7_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_7_CONTROL_POINT_PATCHLIST,
|
||||
D3D11_PRIMITIVE_TOPOLOGY_8_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_8_CONTROL_POINT_PATCHLIST,
|
||||
D3D11_PRIMITIVE_TOPOLOGY_9_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_9_CONTROL_POINT_PATCHLIST,
|
||||
D3D11_PRIMITIVE_TOPOLOGY_10_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_10_CONTROL_POINT_PATCHLIST,
|
||||
D3D11_PRIMITIVE_TOPOLOGY_11_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_11_CONTROL_POINT_PATCHLIST,
|
||||
D3D11_PRIMITIVE_TOPOLOGY_12_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_12_CONTROL_POINT_PATCHLIST,
|
||||
D3D11_PRIMITIVE_TOPOLOGY_13_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_13_CONTROL_POINT_PATCHLIST,
|
||||
D3D11_PRIMITIVE_TOPOLOGY_14_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_14_CONTROL_POINT_PATCHLIST,
|
||||
D3D11_PRIMITIVE_TOPOLOGY_15_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_15_CONTROL_POINT_PATCHLIST,
|
||||
D3D11_PRIMITIVE_TOPOLOGY_16_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_16_CONTROL_POINT_PATCHLIST,
|
||||
D3D11_PRIMITIVE_TOPOLOGY_17_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_17_CONTROL_POINT_PATCHLIST,
|
||||
D3D11_PRIMITIVE_TOPOLOGY_18_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_18_CONTROL_POINT_PATCHLIST,
|
||||
D3D11_PRIMITIVE_TOPOLOGY_19_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_19_CONTROL_POINT_PATCHLIST,
|
||||
D3D11_PRIMITIVE_TOPOLOGY_20_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_20_CONTROL_POINT_PATCHLIST,
|
||||
D3D11_PRIMITIVE_TOPOLOGY_21_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_21_CONTROL_POINT_PATCHLIST,
|
||||
D3D11_PRIMITIVE_TOPOLOGY_22_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_22_CONTROL_POINT_PATCHLIST,
|
||||
D3D11_PRIMITIVE_TOPOLOGY_23_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_23_CONTROL_POINT_PATCHLIST,
|
||||
D3D11_PRIMITIVE_TOPOLOGY_24_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_24_CONTROL_POINT_PATCHLIST,
|
||||
D3D11_PRIMITIVE_TOPOLOGY_25_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_25_CONTROL_POINT_PATCHLIST,
|
||||
D3D11_PRIMITIVE_TOPOLOGY_26_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_26_CONTROL_POINT_PATCHLIST,
|
||||
D3D11_PRIMITIVE_TOPOLOGY_27_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_27_CONTROL_POINT_PATCHLIST,
|
||||
D3D11_PRIMITIVE_TOPOLOGY_28_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_28_CONTROL_POINT_PATCHLIST,
|
||||
D3D11_PRIMITIVE_TOPOLOGY_29_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_29_CONTROL_POINT_PATCHLIST,
|
||||
D3D11_PRIMITIVE_TOPOLOGY_30_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_30_CONTROL_POINT_PATCHLIST,
|
||||
D3D11_PRIMITIVE_TOPOLOGY_31_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_31_CONTROL_POINT_PATCHLIST,
|
||||
D3D11_PRIMITIVE_TOPOLOGY_32_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_32_CONTROL_POINT_PATCHLIST
|
||||
} D3D_PRIMITIVE_TOPOLOGY;
|
||||
|
||||
typedef
|
||||
enum D3D_PRIMITIVE
|
||||
{
|
||||
D3D_PRIMITIVE_UNDEFINED = 0,
|
||||
D3D_PRIMITIVE_POINT = 1,
|
||||
D3D_PRIMITIVE_LINE = 2,
|
||||
D3D_PRIMITIVE_TRIANGLE = 3,
|
||||
D3D_PRIMITIVE_LINE_ADJ = 6,
|
||||
D3D_PRIMITIVE_TRIANGLE_ADJ = 7,
|
||||
D3D_PRIMITIVE_1_CONTROL_POINT_PATCH = 8,
|
||||
D3D_PRIMITIVE_2_CONTROL_POINT_PATCH = 9,
|
||||
D3D_PRIMITIVE_3_CONTROL_POINT_PATCH = 10,
|
||||
D3D_PRIMITIVE_4_CONTROL_POINT_PATCH = 11,
|
||||
D3D_PRIMITIVE_5_CONTROL_POINT_PATCH = 12,
|
||||
D3D_PRIMITIVE_6_CONTROL_POINT_PATCH = 13,
|
||||
D3D_PRIMITIVE_7_CONTROL_POINT_PATCH = 14,
|
||||
D3D_PRIMITIVE_8_CONTROL_POINT_PATCH = 15,
|
||||
D3D_PRIMITIVE_9_CONTROL_POINT_PATCH = 16,
|
||||
D3D_PRIMITIVE_10_CONTROL_POINT_PATCH = 17,
|
||||
D3D_PRIMITIVE_11_CONTROL_POINT_PATCH = 18,
|
||||
D3D_PRIMITIVE_12_CONTROL_POINT_PATCH = 19,
|
||||
D3D_PRIMITIVE_13_CONTROL_POINT_PATCH = 20,
|
||||
D3D_PRIMITIVE_14_CONTROL_POINT_PATCH = 21,
|
||||
D3D_PRIMITIVE_15_CONTROL_POINT_PATCH = 22,
|
||||
D3D_PRIMITIVE_16_CONTROL_POINT_PATCH = 23,
|
||||
D3D_PRIMITIVE_17_CONTROL_POINT_PATCH = 24,
|
||||
D3D_PRIMITIVE_18_CONTROL_POINT_PATCH = 25,
|
||||
D3D_PRIMITIVE_19_CONTROL_POINT_PATCH = 26,
|
||||
D3D_PRIMITIVE_20_CONTROL_POINT_PATCH = 28,
|
||||
D3D_PRIMITIVE_21_CONTROL_POINT_PATCH = 29,
|
||||
D3D_PRIMITIVE_22_CONTROL_POINT_PATCH = 30,
|
||||
D3D_PRIMITIVE_23_CONTROL_POINT_PATCH = 31,
|
||||
D3D_PRIMITIVE_24_CONTROL_POINT_PATCH = 32,
|
||||
D3D_PRIMITIVE_25_CONTROL_POINT_PATCH = 33,
|
||||
D3D_PRIMITIVE_26_CONTROL_POINT_PATCH = 34,
|
||||
D3D_PRIMITIVE_27_CONTROL_POINT_PATCH = 35,
|
||||
D3D_PRIMITIVE_28_CONTROL_POINT_PATCH = 36,
|
||||
D3D_PRIMITIVE_29_CONTROL_POINT_PATCH = 37,
|
||||
D3D_PRIMITIVE_30_CONTROL_POINT_PATCH = 38,
|
||||
D3D_PRIMITIVE_31_CONTROL_POINT_PATCH = 39,
|
||||
D3D_PRIMITIVE_32_CONTROL_POINT_PATCH = 40,
|
||||
D3D10_PRIMITIVE_UNDEFINED = D3D_PRIMITIVE_UNDEFINED,
|
||||
D3D10_PRIMITIVE_POINT = D3D_PRIMITIVE_POINT,
|
||||
D3D10_PRIMITIVE_LINE = D3D_PRIMITIVE_LINE,
|
||||
D3D10_PRIMITIVE_TRIANGLE = D3D_PRIMITIVE_TRIANGLE,
|
||||
D3D10_PRIMITIVE_LINE_ADJ = D3D_PRIMITIVE_LINE_ADJ,
|
||||
D3D10_PRIMITIVE_TRIANGLE_ADJ = D3D_PRIMITIVE_TRIANGLE_ADJ,
|
||||
D3D11_PRIMITIVE_UNDEFINED = D3D_PRIMITIVE_UNDEFINED,
|
||||
D3D11_PRIMITIVE_POINT = D3D_PRIMITIVE_POINT,
|
||||
D3D11_PRIMITIVE_LINE = D3D_PRIMITIVE_LINE,
|
||||
D3D11_PRIMITIVE_TRIANGLE = D3D_PRIMITIVE_TRIANGLE,
|
||||
D3D11_PRIMITIVE_LINE_ADJ = D3D_PRIMITIVE_LINE_ADJ,
|
||||
D3D11_PRIMITIVE_TRIANGLE_ADJ = D3D_PRIMITIVE_TRIANGLE_ADJ,
|
||||
D3D11_PRIMITIVE_1_CONTROL_POINT_PATCH = D3D_PRIMITIVE_1_CONTROL_POINT_PATCH,
|
||||
D3D11_PRIMITIVE_2_CONTROL_POINT_PATCH = D3D_PRIMITIVE_2_CONTROL_POINT_PATCH,
|
||||
D3D11_PRIMITIVE_3_CONTROL_POINT_PATCH = D3D_PRIMITIVE_3_CONTROL_POINT_PATCH,
|
||||
D3D11_PRIMITIVE_4_CONTROL_POINT_PATCH = D3D_PRIMITIVE_4_CONTROL_POINT_PATCH,
|
||||
D3D11_PRIMITIVE_5_CONTROL_POINT_PATCH = D3D_PRIMITIVE_5_CONTROL_POINT_PATCH,
|
||||
D3D11_PRIMITIVE_6_CONTROL_POINT_PATCH = D3D_PRIMITIVE_6_CONTROL_POINT_PATCH,
|
||||
D3D11_PRIMITIVE_7_CONTROL_POINT_PATCH = D3D_PRIMITIVE_7_CONTROL_POINT_PATCH,
|
||||
D3D11_PRIMITIVE_8_CONTROL_POINT_PATCH = D3D_PRIMITIVE_8_CONTROL_POINT_PATCH,
|
||||
D3D11_PRIMITIVE_9_CONTROL_POINT_PATCH = D3D_PRIMITIVE_9_CONTROL_POINT_PATCH,
|
||||
D3D11_PRIMITIVE_10_CONTROL_POINT_PATCH = D3D_PRIMITIVE_10_CONTROL_POINT_PATCH,
|
||||
D3D11_PRIMITIVE_11_CONTROL_POINT_PATCH = D3D_PRIMITIVE_11_CONTROL_POINT_PATCH,
|
||||
D3D11_PRIMITIVE_12_CONTROL_POINT_PATCH = D3D_PRIMITIVE_12_CONTROL_POINT_PATCH,
|
||||
D3D11_PRIMITIVE_13_CONTROL_POINT_PATCH = D3D_PRIMITIVE_13_CONTROL_POINT_PATCH,
|
||||
D3D11_PRIMITIVE_14_CONTROL_POINT_PATCH = D3D_PRIMITIVE_14_CONTROL_POINT_PATCH,
|
||||
D3D11_PRIMITIVE_15_CONTROL_POINT_PATCH = D3D_PRIMITIVE_15_CONTROL_POINT_PATCH,
|
||||
D3D11_PRIMITIVE_16_CONTROL_POINT_PATCH = D3D_PRIMITIVE_16_CONTROL_POINT_PATCH,
|
||||
D3D11_PRIMITIVE_17_CONTROL_POINT_PATCH = D3D_PRIMITIVE_17_CONTROL_POINT_PATCH,
|
||||
D3D11_PRIMITIVE_18_CONTROL_POINT_PATCH = D3D_PRIMITIVE_18_CONTROL_POINT_PATCH,
|
||||
D3D11_PRIMITIVE_19_CONTROL_POINT_PATCH = D3D_PRIMITIVE_19_CONTROL_POINT_PATCH,
|
||||
D3D11_PRIMITIVE_20_CONTROL_POINT_PATCH = D3D_PRIMITIVE_20_CONTROL_POINT_PATCH,
|
||||
D3D11_PRIMITIVE_21_CONTROL_POINT_PATCH = D3D_PRIMITIVE_21_CONTROL_POINT_PATCH,
|
||||
D3D11_PRIMITIVE_22_CONTROL_POINT_PATCH = D3D_PRIMITIVE_22_CONTROL_POINT_PATCH,
|
||||
D3D11_PRIMITIVE_23_CONTROL_POINT_PATCH = D3D_PRIMITIVE_23_CONTROL_POINT_PATCH,
|
||||
D3D11_PRIMITIVE_24_CONTROL_POINT_PATCH = D3D_PRIMITIVE_24_CONTROL_POINT_PATCH,
|
||||
D3D11_PRIMITIVE_25_CONTROL_POINT_PATCH = D3D_PRIMITIVE_25_CONTROL_POINT_PATCH,
|
||||
D3D11_PRIMITIVE_26_CONTROL_POINT_PATCH = D3D_PRIMITIVE_26_CONTROL_POINT_PATCH,
|
||||
D3D11_PRIMITIVE_27_CONTROL_POINT_PATCH = D3D_PRIMITIVE_27_CONTROL_POINT_PATCH,
|
||||
D3D11_PRIMITIVE_28_CONTROL_POINT_PATCH = D3D_PRIMITIVE_28_CONTROL_POINT_PATCH,
|
||||
D3D11_PRIMITIVE_29_CONTROL_POINT_PATCH = D3D_PRIMITIVE_29_CONTROL_POINT_PATCH,
|
||||
D3D11_PRIMITIVE_30_CONTROL_POINT_PATCH = D3D_PRIMITIVE_30_CONTROL_POINT_PATCH,
|
||||
D3D11_PRIMITIVE_31_CONTROL_POINT_PATCH = D3D_PRIMITIVE_31_CONTROL_POINT_PATCH,
|
||||
D3D11_PRIMITIVE_32_CONTROL_POINT_PATCH = D3D_PRIMITIVE_32_CONTROL_POINT_PATCH
|
||||
} D3D_PRIMITIVE;
|
||||
|
||||
typedef
|
||||
enum D3D_SRV_DIMENSION
|
||||
{
|
||||
D3D_SRV_DIMENSION_UNKNOWN = 0,
|
||||
D3D_SRV_DIMENSION_BUFFER = 1,
|
||||
D3D_SRV_DIMENSION_TEXTURE1D = 2,
|
||||
D3D_SRV_DIMENSION_TEXTURE1DARRAY = 3,
|
||||
D3D_SRV_DIMENSION_TEXTURE2D = 4,
|
||||
D3D_SRV_DIMENSION_TEXTURE2DARRAY = 5,
|
||||
D3D_SRV_DIMENSION_TEXTURE2DMS = 6,
|
||||
D3D_SRV_DIMENSION_TEXTURE2DMSARRAY = 7,
|
||||
D3D_SRV_DIMENSION_TEXTURE3D = 8,
|
||||
D3D_SRV_DIMENSION_TEXTURECUBE = 9,
|
||||
D3D_SRV_DIMENSION_TEXTURECUBEARRAY = 10,
|
||||
D3D_SRV_DIMENSION_BUFFEREX = 11,
|
||||
D3D10_SRV_DIMENSION_UNKNOWN = D3D_SRV_DIMENSION_UNKNOWN,
|
||||
D3D10_SRV_DIMENSION_BUFFER = D3D_SRV_DIMENSION_BUFFER,
|
||||
D3D10_SRV_DIMENSION_TEXTURE1D = D3D_SRV_DIMENSION_TEXTURE1D,
|
||||
D3D10_SRV_DIMENSION_TEXTURE1DARRAY = D3D_SRV_DIMENSION_TEXTURE1DARRAY,
|
||||
D3D10_SRV_DIMENSION_TEXTURE2D = D3D_SRV_DIMENSION_TEXTURE2D,
|
||||
D3D10_SRV_DIMENSION_TEXTURE2DARRAY = D3D_SRV_DIMENSION_TEXTURE2DARRAY,
|
||||
D3D10_SRV_DIMENSION_TEXTURE2DMS = D3D_SRV_DIMENSION_TEXTURE2DMS,
|
||||
D3D10_SRV_DIMENSION_TEXTURE2DMSARRAY = D3D_SRV_DIMENSION_TEXTURE2DMSARRAY,
|
||||
D3D10_SRV_DIMENSION_TEXTURE3D = D3D_SRV_DIMENSION_TEXTURE3D,
|
||||
D3D10_SRV_DIMENSION_TEXTURECUBE = D3D_SRV_DIMENSION_TEXTURECUBE,
|
||||
D3D10_1_SRV_DIMENSION_UNKNOWN = D3D_SRV_DIMENSION_UNKNOWN,
|
||||
D3D10_1_SRV_DIMENSION_BUFFER = D3D_SRV_DIMENSION_BUFFER,
|
||||
D3D10_1_SRV_DIMENSION_TEXTURE1D = D3D_SRV_DIMENSION_TEXTURE1D,
|
||||
D3D10_1_SRV_DIMENSION_TEXTURE1DARRAY = D3D_SRV_DIMENSION_TEXTURE1DARRAY,
|
||||
D3D10_1_SRV_DIMENSION_TEXTURE2D = D3D_SRV_DIMENSION_TEXTURE2D,
|
||||
D3D10_1_SRV_DIMENSION_TEXTURE2DARRAY = D3D_SRV_DIMENSION_TEXTURE2DARRAY,
|
||||
D3D10_1_SRV_DIMENSION_TEXTURE2DMS = D3D_SRV_DIMENSION_TEXTURE2DMS,
|
||||
D3D10_1_SRV_DIMENSION_TEXTURE2DMSARRAY = D3D_SRV_DIMENSION_TEXTURE2DMSARRAY,
|
||||
D3D10_1_SRV_DIMENSION_TEXTURE3D = D3D_SRV_DIMENSION_TEXTURE3D,
|
||||
D3D10_1_SRV_DIMENSION_TEXTURECUBE = D3D_SRV_DIMENSION_TEXTURECUBE,
|
||||
D3D10_1_SRV_DIMENSION_TEXTURECUBEARRAY = D3D_SRV_DIMENSION_TEXTURECUBEARRAY,
|
||||
D3D11_SRV_DIMENSION_UNKNOWN = D3D_SRV_DIMENSION_UNKNOWN,
|
||||
D3D11_SRV_DIMENSION_BUFFER = D3D_SRV_DIMENSION_BUFFER,
|
||||
D3D11_SRV_DIMENSION_TEXTURE1D = D3D_SRV_DIMENSION_TEXTURE1D,
|
||||
D3D11_SRV_DIMENSION_TEXTURE1DARRAY = D3D_SRV_DIMENSION_TEXTURE1DARRAY,
|
||||
D3D11_SRV_DIMENSION_TEXTURE2D = D3D_SRV_DIMENSION_TEXTURE2D,
|
||||
D3D11_SRV_DIMENSION_TEXTURE2DARRAY = D3D_SRV_DIMENSION_TEXTURE2DARRAY,
|
||||
D3D11_SRV_DIMENSION_TEXTURE2DMS = D3D_SRV_DIMENSION_TEXTURE2DMS,
|
||||
D3D11_SRV_DIMENSION_TEXTURE2DMSARRAY = D3D_SRV_DIMENSION_TEXTURE2DMSARRAY,
|
||||
D3D11_SRV_DIMENSION_TEXTURE3D = D3D_SRV_DIMENSION_TEXTURE3D,
|
||||
D3D11_SRV_DIMENSION_TEXTURECUBE = D3D_SRV_DIMENSION_TEXTURECUBE,
|
||||
D3D11_SRV_DIMENSION_TEXTURECUBEARRAY = D3D_SRV_DIMENSION_TEXTURECUBEARRAY,
|
||||
D3D11_SRV_DIMENSION_BUFFEREX = D3D_SRV_DIMENSION_BUFFEREX
|
||||
} D3D_SRV_DIMENSION;
|
||||
|
||||
typedef struct _D3D_SHADER_MACRO
|
||||
{
|
||||
LPCSTR Name;
|
||||
LPCSTR Definition;
|
||||
} D3D_SHADER_MACRO;
|
||||
|
||||
typedef struct _D3D_SHADER_MACRO *LPD3D_SHADER_MACRO;
|
||||
|
||||
DEFINE_GUID(IID_ID3D10Blob, 0x8ba5fb08, 0x5195, 0x40e2, 0xac, 0x58, 0xd, 0x98, 0x9c, 0x3a, 0x1, 0x2);
|
||||
|
||||
|
||||
extern RPC_IF_HANDLE __MIDL_itf_d3dcommon_0000_0000_v0_0_c_ifspec;
|
||||
extern RPC_IF_HANDLE __MIDL_itf_d3dcommon_0000_0000_v0_0_s_ifspec;
|
||||
|
||||
#ifndef __ID3D10Blob_INTERFACE_DEFINED__
|
||||
#define __ID3D10Blob_INTERFACE_DEFINED__
|
||||
|
||||
/* interface ID3D10Blob */
|
||||
/* [unique][local][object][uuid] */
|
||||
|
||||
|
||||
EXTERN_C const IID IID_ID3D10Blob;
|
||||
|
||||
#if defined(__cplusplus) && !defined(CINTERFACE)
|
||||
|
||||
MIDL_INTERFACE("8BA5FB08-5195-40e2-AC58-0D989C3A0102")
|
||||
ID3D10Blob : public IUnknown
|
||||
{
|
||||
public:
|
||||
virtual LPVOID STDMETHODCALLTYPE GetBufferPointer( void) = 0;
|
||||
|
||||
virtual SIZE_T STDMETHODCALLTYPE GetBufferSize( void) = 0;
|
||||
|
||||
};
|
||||
|
||||
|
||||
#else /* C style interface */
|
||||
|
||||
typedef struct ID3D10BlobVtbl
|
||||
{
|
||||
BEGIN_INTERFACE
|
||||
|
||||
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
|
||||
ID3D10Blob * This,
|
||||
/* [in] */ REFIID riid,
|
||||
/* [annotation][iid_is][out] */
|
||||
_COM_Outptr_ void **ppvObject);
|
||||
|
||||
ULONG ( STDMETHODCALLTYPE *AddRef )(
|
||||
ID3D10Blob * This);
|
||||
|
||||
ULONG ( STDMETHODCALLTYPE *Release )(
|
||||
ID3D10Blob * This);
|
||||
|
||||
LPVOID ( STDMETHODCALLTYPE *GetBufferPointer )(
|
||||
ID3D10Blob * This);
|
||||
|
||||
SIZE_T ( STDMETHODCALLTYPE *GetBufferSize )(
|
||||
ID3D10Blob * This);
|
||||
|
||||
END_INTERFACE
|
||||
} ID3D10BlobVtbl;
|
||||
|
||||
interface ID3D10Blob
|
||||
{
|
||||
CONST_VTBL struct ID3D10BlobVtbl *lpVtbl;
|
||||
};
|
||||
|
||||
|
||||
|
||||
#ifdef COBJMACROS
|
||||
|
||||
|
||||
#define ID3D10Blob_QueryInterface(This,riid,ppvObject) \
|
||||
( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
|
||||
|
||||
#define ID3D10Blob_AddRef(This) \
|
||||
( (This)->lpVtbl -> AddRef(This) )
|
||||
|
||||
#define ID3D10Blob_Release(This) \
|
||||
( (This)->lpVtbl -> Release(This) )
|
||||
|
||||
|
||||
#define ID3D10Blob_GetBufferPointer(This) \
|
||||
( (This)->lpVtbl -> GetBufferPointer(This) )
|
||||
|
||||
#define ID3D10Blob_GetBufferSize(This) \
|
||||
( (This)->lpVtbl -> GetBufferSize(This) )
|
||||
|
||||
#endif /* COBJMACROS */
|
||||
|
||||
|
||||
#endif /* C style interface */
|
||||
|
||||
|
||||
|
||||
|
||||
#endif /* __ID3D10Blob_INTERFACE_DEFINED__ */
|
||||
|
||||
|
||||
/* interface __MIDL_itf_d3dcommon_0000_0001 */
|
||||
/* [local] */
|
||||
|
||||
typedef interface ID3D10Blob* LPD3D10BLOB;
|
||||
typedef ID3D10Blob ID3DBlob;
|
||||
typedef ID3DBlob* LPD3DBLOB;
|
||||
#define IID_ID3DBlob IID_ID3D10Blob
|
||||
typedef
|
||||
enum _D3D_INCLUDE_TYPE
|
||||
{
|
||||
D3D_INCLUDE_LOCAL = 0,
|
||||
D3D_INCLUDE_SYSTEM = ( D3D_INCLUDE_LOCAL + 1 ) ,
|
||||
D3D10_INCLUDE_LOCAL = D3D_INCLUDE_LOCAL,
|
||||
D3D10_INCLUDE_SYSTEM = D3D_INCLUDE_SYSTEM,
|
||||
D3D_INCLUDE_FORCE_DWORD = 0x7fffffff
|
||||
} D3D_INCLUDE_TYPE;
|
||||
|
||||
typedef interface ID3DInclude ID3DInclude;
|
||||
#undef INTERFACE
|
||||
#define INTERFACE ID3DInclude
|
||||
DECLARE_INTERFACE(ID3DInclude)
|
||||
{
|
||||
STDMETHOD(Open)(THIS_ D3D_INCLUDE_TYPE IncludeType, LPCSTR pFileName, LPCVOID pParentData, LPCVOID *ppData, UINT *pBytes) PURE;
|
||||
STDMETHOD(Close)(THIS_ LPCVOID pData) PURE;
|
||||
};
|
||||
typedef ID3DInclude* LPD3DINCLUDE;
|
||||
typedef
|
||||
enum _D3D_SHADER_VARIABLE_CLASS
|
||||
{
|
||||
D3D_SVC_SCALAR = 0,
|
||||
D3D_SVC_VECTOR = ( D3D_SVC_SCALAR + 1 ) ,
|
||||
D3D_SVC_MATRIX_ROWS = ( D3D_SVC_VECTOR + 1 ) ,
|
||||
D3D_SVC_MATRIX_COLUMNS = ( D3D_SVC_MATRIX_ROWS + 1 ) ,
|
||||
D3D_SVC_OBJECT = ( D3D_SVC_MATRIX_COLUMNS + 1 ) ,
|
||||
D3D_SVC_STRUCT = ( D3D_SVC_OBJECT + 1 ) ,
|
||||
D3D_SVC_INTERFACE_CLASS = ( D3D_SVC_STRUCT + 1 ) ,
|
||||
D3D_SVC_INTERFACE_POINTER = ( D3D_SVC_INTERFACE_CLASS + 1 ) ,
|
||||
D3D10_SVC_SCALAR = D3D_SVC_SCALAR,
|
||||
D3D10_SVC_VECTOR = D3D_SVC_VECTOR,
|
||||
D3D10_SVC_MATRIX_ROWS = D3D_SVC_MATRIX_ROWS,
|
||||
D3D10_SVC_MATRIX_COLUMNS = D3D_SVC_MATRIX_COLUMNS,
|
||||
D3D10_SVC_OBJECT = D3D_SVC_OBJECT,
|
||||
D3D10_SVC_STRUCT = D3D_SVC_STRUCT,
|
||||
D3D11_SVC_INTERFACE_CLASS = D3D_SVC_INTERFACE_CLASS,
|
||||
D3D11_SVC_INTERFACE_POINTER = D3D_SVC_INTERFACE_POINTER,
|
||||
D3D_SVC_FORCE_DWORD = 0x7fffffff
|
||||
} D3D_SHADER_VARIABLE_CLASS;
|
||||
|
||||
typedef
|
||||
enum _D3D_SHADER_VARIABLE_FLAGS
|
||||
{
|
||||
D3D_SVF_USERPACKED = 1,
|
||||
D3D_SVF_USED = 2,
|
||||
D3D_SVF_INTERFACE_POINTER = 4,
|
||||
D3D_SVF_INTERFACE_PARAMETER = 8,
|
||||
D3D10_SVF_USERPACKED = D3D_SVF_USERPACKED,
|
||||
D3D10_SVF_USED = D3D_SVF_USED,
|
||||
D3D11_SVF_INTERFACE_POINTER = D3D_SVF_INTERFACE_POINTER,
|
||||
D3D11_SVF_INTERFACE_PARAMETER = D3D_SVF_INTERFACE_PARAMETER,
|
||||
D3D_SVF_FORCE_DWORD = 0x7fffffff
|
||||
} D3D_SHADER_VARIABLE_FLAGS;
|
||||
|
||||
typedef
|
||||
enum _D3D_SHADER_VARIABLE_TYPE
|
||||
{
|
||||
D3D_SVT_VOID = 0,
|
||||
D3D_SVT_BOOL = 1,
|
||||
D3D_SVT_INT = 2,
|
||||
D3D_SVT_FLOAT = 3,
|
||||
D3D_SVT_STRING = 4,
|
||||
D3D_SVT_TEXTURE = 5,
|
||||
D3D_SVT_TEXTURE1D = 6,
|
||||
D3D_SVT_TEXTURE2D = 7,
|
||||
D3D_SVT_TEXTURE3D = 8,
|
||||
D3D_SVT_TEXTURECUBE = 9,
|
||||
D3D_SVT_SAMPLER = 10,
|
||||
D3D_SVT_SAMPLER1D = 11,
|
||||
D3D_SVT_SAMPLER2D = 12,
|
||||
D3D_SVT_SAMPLER3D = 13,
|
||||
D3D_SVT_SAMPLERCUBE = 14,
|
||||
D3D_SVT_PIXELSHADER = 15,
|
||||
D3D_SVT_VERTEXSHADER = 16,
|
||||
D3D_SVT_PIXELFRAGMENT = 17,
|
||||
D3D_SVT_VERTEXFRAGMENT = 18,
|
||||
D3D_SVT_UINT = 19,
|
||||
D3D_SVT_UINT8 = 20,
|
||||
D3D_SVT_GEOMETRYSHADER = 21,
|
||||
D3D_SVT_RASTERIZER = 22,
|
||||
D3D_SVT_DEPTHSTENCIL = 23,
|
||||
D3D_SVT_BLEND = 24,
|
||||
D3D_SVT_BUFFER = 25,
|
||||
D3D_SVT_CBUFFER = 26,
|
||||
D3D_SVT_TBUFFER = 27,
|
||||
D3D_SVT_TEXTURE1DARRAY = 28,
|
||||
D3D_SVT_TEXTURE2DARRAY = 29,
|
||||
D3D_SVT_RENDERTARGETVIEW = 30,
|
||||
D3D_SVT_DEPTHSTENCILVIEW = 31,
|
||||
D3D_SVT_TEXTURE2DMS = 32,
|
||||
D3D_SVT_TEXTURE2DMSARRAY = 33,
|
||||
D3D_SVT_TEXTURECUBEARRAY = 34,
|
||||
D3D_SVT_HULLSHADER = 35,
|
||||
D3D_SVT_DOMAINSHADER = 36,
|
||||
D3D_SVT_INTERFACE_POINTER = 37,
|
||||
D3D_SVT_COMPUTESHADER = 38,
|
||||
D3D_SVT_DOUBLE = 39,
|
||||
D3D_SVT_RWTEXTURE1D = 40,
|
||||
D3D_SVT_RWTEXTURE1DARRAY = 41,
|
||||
D3D_SVT_RWTEXTURE2D = 42,
|
||||
D3D_SVT_RWTEXTURE2DARRAY = 43,
|
||||
D3D_SVT_RWTEXTURE3D = 44,
|
||||
D3D_SVT_RWBUFFER = 45,
|
||||
D3D_SVT_BYTEADDRESS_BUFFER = 46,
|
||||
D3D_SVT_RWBYTEADDRESS_BUFFER = 47,
|
||||
D3D_SVT_STRUCTURED_BUFFER = 48,
|
||||
D3D_SVT_RWSTRUCTURED_BUFFER = 49,
|
||||
D3D_SVT_APPEND_STRUCTURED_BUFFER = 50,
|
||||
D3D_SVT_CONSUME_STRUCTURED_BUFFER = 51,
|
||||
D3D_SVT_MIN8FLOAT = 52,
|
||||
D3D_SVT_MIN10FLOAT = 53,
|
||||
D3D_SVT_MIN16FLOAT = 54,
|
||||
D3D_SVT_MIN12INT = 55,
|
||||
D3D_SVT_MIN16INT = 56,
|
||||
D3D_SVT_MIN16UINT = 57,
|
||||
D3D10_SVT_VOID = D3D_SVT_VOID,
|
||||
D3D10_SVT_BOOL = D3D_SVT_BOOL,
|
||||
D3D10_SVT_INT = D3D_SVT_INT,
|
||||
D3D10_SVT_FLOAT = D3D_SVT_FLOAT,
|
||||
D3D10_SVT_STRING = D3D_SVT_STRING,
|
||||
D3D10_SVT_TEXTURE = D3D_SVT_TEXTURE,
|
||||
D3D10_SVT_TEXTURE1D = D3D_SVT_TEXTURE1D,
|
||||
D3D10_SVT_TEXTURE2D = D3D_SVT_TEXTURE2D,
|
||||
D3D10_SVT_TEXTURE3D = D3D_SVT_TEXTURE3D,
|
||||
D3D10_SVT_TEXTURECUBE = D3D_SVT_TEXTURECUBE,
|
||||
D3D10_SVT_SAMPLER = D3D_SVT_SAMPLER,
|
||||
D3D10_SVT_SAMPLER1D = D3D_SVT_SAMPLER1D,
|
||||
D3D10_SVT_SAMPLER2D = D3D_SVT_SAMPLER2D,
|
||||
D3D10_SVT_SAMPLER3D = D3D_SVT_SAMPLER3D,
|
||||
D3D10_SVT_SAMPLERCUBE = D3D_SVT_SAMPLERCUBE,
|
||||
D3D10_SVT_PIXELSHADER = D3D_SVT_PIXELSHADER,
|
||||
D3D10_SVT_VERTEXSHADER = D3D_SVT_VERTEXSHADER,
|
||||
D3D10_SVT_PIXELFRAGMENT = D3D_SVT_PIXELFRAGMENT,
|
||||
D3D10_SVT_VERTEXFRAGMENT = D3D_SVT_VERTEXFRAGMENT,
|
||||
D3D10_SVT_UINT = D3D_SVT_UINT,
|
||||
D3D10_SVT_UINT8 = D3D_SVT_UINT8,
|
||||
D3D10_SVT_GEOMETRYSHADER = D3D_SVT_GEOMETRYSHADER,
|
||||
D3D10_SVT_RASTERIZER = D3D_SVT_RASTERIZER,
|
||||
D3D10_SVT_DEPTHSTENCIL = D3D_SVT_DEPTHSTENCIL,
|
||||
D3D10_SVT_BLEND = D3D_SVT_BLEND,
|
||||
D3D10_SVT_BUFFER = D3D_SVT_BUFFER,
|
||||
D3D10_SVT_CBUFFER = D3D_SVT_CBUFFER,
|
||||
D3D10_SVT_TBUFFER = D3D_SVT_TBUFFER,
|
||||
D3D10_SVT_TEXTURE1DARRAY = D3D_SVT_TEXTURE1DARRAY,
|
||||
D3D10_SVT_TEXTURE2DARRAY = D3D_SVT_TEXTURE2DARRAY,
|
||||
D3D10_SVT_RENDERTARGETVIEW = D3D_SVT_RENDERTARGETVIEW,
|
||||
D3D10_SVT_DEPTHSTENCILVIEW = D3D_SVT_DEPTHSTENCILVIEW,
|
||||
D3D10_SVT_TEXTURE2DMS = D3D_SVT_TEXTURE2DMS,
|
||||
D3D10_SVT_TEXTURE2DMSARRAY = D3D_SVT_TEXTURE2DMSARRAY,
|
||||
D3D10_SVT_TEXTURECUBEARRAY = D3D_SVT_TEXTURECUBEARRAY,
|
||||
D3D11_SVT_HULLSHADER = D3D_SVT_HULLSHADER,
|
||||
D3D11_SVT_DOMAINSHADER = D3D_SVT_DOMAINSHADER,
|
||||
D3D11_SVT_INTERFACE_POINTER = D3D_SVT_INTERFACE_POINTER,
|
||||
D3D11_SVT_COMPUTESHADER = D3D_SVT_COMPUTESHADER,
|
||||
D3D11_SVT_DOUBLE = D3D_SVT_DOUBLE,
|
||||
D3D11_SVT_RWTEXTURE1D = D3D_SVT_RWTEXTURE1D,
|
||||
D3D11_SVT_RWTEXTURE1DARRAY = D3D_SVT_RWTEXTURE1DARRAY,
|
||||
D3D11_SVT_RWTEXTURE2D = D3D_SVT_RWTEXTURE2D,
|
||||
D3D11_SVT_RWTEXTURE2DARRAY = D3D_SVT_RWTEXTURE2DARRAY,
|
||||
D3D11_SVT_RWTEXTURE3D = D3D_SVT_RWTEXTURE3D,
|
||||
D3D11_SVT_RWBUFFER = D3D_SVT_RWBUFFER,
|
||||
D3D11_SVT_BYTEADDRESS_BUFFER = D3D_SVT_BYTEADDRESS_BUFFER,
|
||||
D3D11_SVT_RWBYTEADDRESS_BUFFER = D3D_SVT_RWBYTEADDRESS_BUFFER,
|
||||
D3D11_SVT_STRUCTURED_BUFFER = D3D_SVT_STRUCTURED_BUFFER,
|
||||
D3D11_SVT_RWSTRUCTURED_BUFFER = D3D_SVT_RWSTRUCTURED_BUFFER,
|
||||
D3D11_SVT_APPEND_STRUCTURED_BUFFER = D3D_SVT_APPEND_STRUCTURED_BUFFER,
|
||||
D3D11_SVT_CONSUME_STRUCTURED_BUFFER = D3D_SVT_CONSUME_STRUCTURED_BUFFER,
|
||||
D3D_SVT_FORCE_DWORD = 0x7fffffff
|
||||
} D3D_SHADER_VARIABLE_TYPE;
|
||||
|
||||
typedef
|
||||
enum _D3D_SHADER_INPUT_FLAGS
|
||||
{
|
||||
D3D_SIF_USERPACKED = 0x1,
|
||||
D3D_SIF_COMPARISON_SAMPLER = 0x2,
|
||||
D3D_SIF_TEXTURE_COMPONENT_0 = 0x4,
|
||||
D3D_SIF_TEXTURE_COMPONENT_1 = 0x8,
|
||||
D3D_SIF_TEXTURE_COMPONENTS = 0xc,
|
||||
D3D_SIF_UNUSED = 0x10,
|
||||
D3D10_SIF_USERPACKED = D3D_SIF_USERPACKED,
|
||||
D3D10_SIF_COMPARISON_SAMPLER = D3D_SIF_COMPARISON_SAMPLER,
|
||||
D3D10_SIF_TEXTURE_COMPONENT_0 = D3D_SIF_TEXTURE_COMPONENT_0,
|
||||
D3D10_SIF_TEXTURE_COMPONENT_1 = D3D_SIF_TEXTURE_COMPONENT_1,
|
||||
D3D10_SIF_TEXTURE_COMPONENTS = D3D_SIF_TEXTURE_COMPONENTS,
|
||||
D3D_SIF_FORCE_DWORD = 0x7fffffff
|
||||
} D3D_SHADER_INPUT_FLAGS;
|
||||
|
||||
typedef
|
||||
enum _D3D_SHADER_INPUT_TYPE
|
||||
{
|
||||
D3D_SIT_CBUFFER = 0,
|
||||
D3D_SIT_TBUFFER = ( D3D_SIT_CBUFFER + 1 ) ,
|
||||
D3D_SIT_TEXTURE = ( D3D_SIT_TBUFFER + 1 ) ,
|
||||
D3D_SIT_SAMPLER = ( D3D_SIT_TEXTURE + 1 ) ,
|
||||
D3D_SIT_UAV_RWTYPED = ( D3D_SIT_SAMPLER + 1 ) ,
|
||||
D3D_SIT_STRUCTURED = ( D3D_SIT_UAV_RWTYPED + 1 ) ,
|
||||
D3D_SIT_UAV_RWSTRUCTURED = ( D3D_SIT_STRUCTURED + 1 ) ,
|
||||
D3D_SIT_BYTEADDRESS = ( D3D_SIT_UAV_RWSTRUCTURED + 1 ) ,
|
||||
D3D_SIT_UAV_RWBYTEADDRESS = ( D3D_SIT_BYTEADDRESS + 1 ) ,
|
||||
D3D_SIT_UAV_APPEND_STRUCTURED = ( D3D_SIT_UAV_RWBYTEADDRESS + 1 ) ,
|
||||
D3D_SIT_UAV_CONSUME_STRUCTURED = ( D3D_SIT_UAV_APPEND_STRUCTURED + 1 ) ,
|
||||
D3D_SIT_UAV_RWSTRUCTURED_WITH_COUNTER = ( D3D_SIT_UAV_CONSUME_STRUCTURED + 1 ) ,
|
||||
D3D10_SIT_CBUFFER = D3D_SIT_CBUFFER,
|
||||
D3D10_SIT_TBUFFER = D3D_SIT_TBUFFER,
|
||||
D3D10_SIT_TEXTURE = D3D_SIT_TEXTURE,
|
||||
D3D10_SIT_SAMPLER = D3D_SIT_SAMPLER,
|
||||
D3D11_SIT_UAV_RWTYPED = D3D_SIT_UAV_RWTYPED,
|
||||
D3D11_SIT_STRUCTURED = D3D_SIT_STRUCTURED,
|
||||
D3D11_SIT_UAV_RWSTRUCTURED = D3D_SIT_UAV_RWSTRUCTURED,
|
||||
D3D11_SIT_BYTEADDRESS = D3D_SIT_BYTEADDRESS,
|
||||
D3D11_SIT_UAV_RWBYTEADDRESS = D3D_SIT_UAV_RWBYTEADDRESS,
|
||||
D3D11_SIT_UAV_APPEND_STRUCTURED = D3D_SIT_UAV_APPEND_STRUCTURED,
|
||||
D3D11_SIT_UAV_CONSUME_STRUCTURED = D3D_SIT_UAV_CONSUME_STRUCTURED,
|
||||
D3D11_SIT_UAV_RWSTRUCTURED_WITH_COUNTER = D3D_SIT_UAV_RWSTRUCTURED_WITH_COUNTER
|
||||
} D3D_SHADER_INPUT_TYPE;
|
||||
|
||||
typedef
|
||||
enum _D3D_SHADER_CBUFFER_FLAGS
|
||||
{
|
||||
D3D_CBF_USERPACKED = 1,
|
||||
D3D10_CBF_USERPACKED = D3D_CBF_USERPACKED,
|
||||
D3D_CBF_FORCE_DWORD = 0x7fffffff
|
||||
} D3D_SHADER_CBUFFER_FLAGS;
|
||||
|
||||
typedef
|
||||
enum _D3D_CBUFFER_TYPE
|
||||
{
|
||||
D3D_CT_CBUFFER = 0,
|
||||
D3D_CT_TBUFFER = ( D3D_CT_CBUFFER + 1 ) ,
|
||||
D3D_CT_INTERFACE_POINTERS = ( D3D_CT_TBUFFER + 1 ) ,
|
||||
D3D_CT_RESOURCE_BIND_INFO = ( D3D_CT_INTERFACE_POINTERS + 1 ) ,
|
||||
D3D10_CT_CBUFFER = D3D_CT_CBUFFER,
|
||||
D3D10_CT_TBUFFER = D3D_CT_TBUFFER,
|
||||
D3D11_CT_CBUFFER = D3D_CT_CBUFFER,
|
||||
D3D11_CT_TBUFFER = D3D_CT_TBUFFER,
|
||||
D3D11_CT_INTERFACE_POINTERS = D3D_CT_INTERFACE_POINTERS,
|
||||
D3D11_CT_RESOURCE_BIND_INFO = D3D_CT_RESOURCE_BIND_INFO
|
||||
} D3D_CBUFFER_TYPE;
|
||||
|
||||
typedef
|
||||
enum D3D_NAME
|
||||
{
|
||||
D3D_NAME_UNDEFINED = 0,
|
||||
D3D_NAME_POSITION = 1,
|
||||
D3D_NAME_CLIP_DISTANCE = 2,
|
||||
D3D_NAME_CULL_DISTANCE = 3,
|
||||
D3D_NAME_RENDER_TARGET_ARRAY_INDEX = 4,
|
||||
D3D_NAME_VIEWPORT_ARRAY_INDEX = 5,
|
||||
D3D_NAME_VERTEX_ID = 6,
|
||||
D3D_NAME_PRIMITIVE_ID = 7,
|
||||
D3D_NAME_INSTANCE_ID = 8,
|
||||
D3D_NAME_IS_FRONT_FACE = 9,
|
||||
D3D_NAME_SAMPLE_INDEX = 10,
|
||||
D3D_NAME_FINAL_QUAD_EDGE_TESSFACTOR = 11,
|
||||
D3D_NAME_FINAL_QUAD_INSIDE_TESSFACTOR = 12,
|
||||
D3D_NAME_FINAL_TRI_EDGE_TESSFACTOR = 13,
|
||||
D3D_NAME_FINAL_TRI_INSIDE_TESSFACTOR = 14,
|
||||
D3D_NAME_FINAL_LINE_DETAIL_TESSFACTOR = 15,
|
||||
D3D_NAME_FINAL_LINE_DENSITY_TESSFACTOR = 16,
|
||||
D3D_NAME_TARGET = 64,
|
||||
D3D_NAME_DEPTH = 65,
|
||||
D3D_NAME_COVERAGE = 66,
|
||||
D3D_NAME_DEPTH_GREATER_EQUAL = 67,
|
||||
D3D_NAME_DEPTH_LESS_EQUAL = 68,
|
||||
D3D10_NAME_UNDEFINED = D3D_NAME_UNDEFINED,
|
||||
D3D10_NAME_POSITION = D3D_NAME_POSITION,
|
||||
D3D10_NAME_CLIP_DISTANCE = D3D_NAME_CLIP_DISTANCE,
|
||||
D3D10_NAME_CULL_DISTANCE = D3D_NAME_CULL_DISTANCE,
|
||||
D3D10_NAME_RENDER_TARGET_ARRAY_INDEX = D3D_NAME_RENDER_TARGET_ARRAY_INDEX,
|
||||
D3D10_NAME_VIEWPORT_ARRAY_INDEX = D3D_NAME_VIEWPORT_ARRAY_INDEX,
|
||||
D3D10_NAME_VERTEX_ID = D3D_NAME_VERTEX_ID,
|
||||
D3D10_NAME_PRIMITIVE_ID = D3D_NAME_PRIMITIVE_ID,
|
||||
D3D10_NAME_INSTANCE_ID = D3D_NAME_INSTANCE_ID,
|
||||
D3D10_NAME_IS_FRONT_FACE = D3D_NAME_IS_FRONT_FACE,
|
||||
D3D10_NAME_SAMPLE_INDEX = D3D_NAME_SAMPLE_INDEX,
|
||||
D3D10_NAME_TARGET = D3D_NAME_TARGET,
|
||||
D3D10_NAME_DEPTH = D3D_NAME_DEPTH,
|
||||
D3D10_NAME_COVERAGE = D3D_NAME_COVERAGE,
|
||||
D3D11_NAME_FINAL_QUAD_EDGE_TESSFACTOR = D3D_NAME_FINAL_QUAD_EDGE_TESSFACTOR,
|
||||
D3D11_NAME_FINAL_QUAD_INSIDE_TESSFACTOR = D3D_NAME_FINAL_QUAD_INSIDE_TESSFACTOR,
|
||||
D3D11_NAME_FINAL_TRI_EDGE_TESSFACTOR = D3D_NAME_FINAL_TRI_EDGE_TESSFACTOR,
|
||||
D3D11_NAME_FINAL_TRI_INSIDE_TESSFACTOR = D3D_NAME_FINAL_TRI_INSIDE_TESSFACTOR,
|
||||
D3D11_NAME_FINAL_LINE_DETAIL_TESSFACTOR = D3D_NAME_FINAL_LINE_DETAIL_TESSFACTOR,
|
||||
D3D11_NAME_FINAL_LINE_DENSITY_TESSFACTOR = D3D_NAME_FINAL_LINE_DENSITY_TESSFACTOR,
|
||||
D3D11_NAME_DEPTH_GREATER_EQUAL = D3D_NAME_DEPTH_GREATER_EQUAL,
|
||||
D3D11_NAME_DEPTH_LESS_EQUAL = D3D_NAME_DEPTH_LESS_EQUAL
|
||||
} D3D_NAME;
|
||||
|
||||
typedef
|
||||
enum D3D_RESOURCE_RETURN_TYPE
|
||||
{
|
||||
D3D_RETURN_TYPE_UNORM = 1,
|
||||
D3D_RETURN_TYPE_SNORM = 2,
|
||||
D3D_RETURN_TYPE_SINT = 3,
|
||||
D3D_RETURN_TYPE_UINT = 4,
|
||||
D3D_RETURN_TYPE_FLOAT = 5,
|
||||
D3D_RETURN_TYPE_MIXED = 6,
|
||||
D3D_RETURN_TYPE_DOUBLE = 7,
|
||||
D3D_RETURN_TYPE_CONTINUED = 8,
|
||||
D3D10_RETURN_TYPE_UNORM = D3D_RETURN_TYPE_UNORM,
|
||||
D3D10_RETURN_TYPE_SNORM = D3D_RETURN_TYPE_SNORM,
|
||||
D3D10_RETURN_TYPE_SINT = D3D_RETURN_TYPE_SINT,
|
||||
D3D10_RETURN_TYPE_UINT = D3D_RETURN_TYPE_UINT,
|
||||
D3D10_RETURN_TYPE_FLOAT = D3D_RETURN_TYPE_FLOAT,
|
||||
D3D10_RETURN_TYPE_MIXED = D3D_RETURN_TYPE_MIXED,
|
||||
D3D11_RETURN_TYPE_UNORM = D3D_RETURN_TYPE_UNORM,
|
||||
D3D11_RETURN_TYPE_SNORM = D3D_RETURN_TYPE_SNORM,
|
||||
D3D11_RETURN_TYPE_SINT = D3D_RETURN_TYPE_SINT,
|
||||
D3D11_RETURN_TYPE_UINT = D3D_RETURN_TYPE_UINT,
|
||||
D3D11_RETURN_TYPE_FLOAT = D3D_RETURN_TYPE_FLOAT,
|
||||
D3D11_RETURN_TYPE_MIXED = D3D_RETURN_TYPE_MIXED,
|
||||
D3D11_RETURN_TYPE_DOUBLE = D3D_RETURN_TYPE_DOUBLE,
|
||||
D3D11_RETURN_TYPE_CONTINUED = D3D_RETURN_TYPE_CONTINUED
|
||||
} D3D_RESOURCE_RETURN_TYPE;
|
||||
|
||||
typedef
|
||||
enum D3D_REGISTER_COMPONENT_TYPE
|
||||
{
|
||||
D3D_REGISTER_COMPONENT_UNKNOWN = 0,
|
||||
D3D_REGISTER_COMPONENT_UINT32 = 1,
|
||||
D3D_REGISTER_COMPONENT_SINT32 = 2,
|
||||
D3D_REGISTER_COMPONENT_FLOAT32 = 3,
|
||||
D3D10_REGISTER_COMPONENT_UNKNOWN = D3D_REGISTER_COMPONENT_UNKNOWN,
|
||||
D3D10_REGISTER_COMPONENT_UINT32 = D3D_REGISTER_COMPONENT_UINT32,
|
||||
D3D10_REGISTER_COMPONENT_SINT32 = D3D_REGISTER_COMPONENT_SINT32,
|
||||
D3D10_REGISTER_COMPONENT_FLOAT32 = D3D_REGISTER_COMPONENT_FLOAT32
|
||||
} D3D_REGISTER_COMPONENT_TYPE;
|
||||
|
||||
typedef
|
||||
enum D3D_TESSELLATOR_DOMAIN
|
||||
{
|
||||
D3D_TESSELLATOR_DOMAIN_UNDEFINED = 0,
|
||||
D3D_TESSELLATOR_DOMAIN_ISOLINE = 1,
|
||||
D3D_TESSELLATOR_DOMAIN_TRI = 2,
|
||||
D3D_TESSELLATOR_DOMAIN_QUAD = 3,
|
||||
D3D11_TESSELLATOR_DOMAIN_UNDEFINED = D3D_TESSELLATOR_DOMAIN_UNDEFINED,
|
||||
D3D11_TESSELLATOR_DOMAIN_ISOLINE = D3D_TESSELLATOR_DOMAIN_ISOLINE,
|
||||
D3D11_TESSELLATOR_DOMAIN_TRI = D3D_TESSELLATOR_DOMAIN_TRI,
|
||||
D3D11_TESSELLATOR_DOMAIN_QUAD = D3D_TESSELLATOR_DOMAIN_QUAD
|
||||
} D3D_TESSELLATOR_DOMAIN;
|
||||
|
||||
typedef
|
||||
enum D3D_TESSELLATOR_PARTITIONING
|
||||
{
|
||||
D3D_TESSELLATOR_PARTITIONING_UNDEFINED = 0,
|
||||
D3D_TESSELLATOR_PARTITIONING_INTEGER = 1,
|
||||
D3D_TESSELLATOR_PARTITIONING_POW2 = 2,
|
||||
D3D_TESSELLATOR_PARTITIONING_FRACTIONAL_ODD = 3,
|
||||
D3D_TESSELLATOR_PARTITIONING_FRACTIONAL_EVEN = 4,
|
||||
D3D11_TESSELLATOR_PARTITIONING_UNDEFINED = D3D_TESSELLATOR_PARTITIONING_UNDEFINED,
|
||||
D3D11_TESSELLATOR_PARTITIONING_INTEGER = D3D_TESSELLATOR_PARTITIONING_INTEGER,
|
||||
D3D11_TESSELLATOR_PARTITIONING_POW2 = D3D_TESSELLATOR_PARTITIONING_POW2,
|
||||
D3D11_TESSELLATOR_PARTITIONING_FRACTIONAL_ODD = D3D_TESSELLATOR_PARTITIONING_FRACTIONAL_ODD,
|
||||
D3D11_TESSELLATOR_PARTITIONING_FRACTIONAL_EVEN = D3D_TESSELLATOR_PARTITIONING_FRACTIONAL_EVEN
|
||||
} D3D_TESSELLATOR_PARTITIONING;
|
||||
|
||||
typedef
|
||||
enum D3D_TESSELLATOR_OUTPUT_PRIMITIVE
|
||||
{
|
||||
D3D_TESSELLATOR_OUTPUT_UNDEFINED = 0,
|
||||
D3D_TESSELLATOR_OUTPUT_POINT = 1,
|
||||
D3D_TESSELLATOR_OUTPUT_LINE = 2,
|
||||
D3D_TESSELLATOR_OUTPUT_TRIANGLE_CW = 3,
|
||||
D3D_TESSELLATOR_OUTPUT_TRIANGLE_CCW = 4,
|
||||
D3D11_TESSELLATOR_OUTPUT_UNDEFINED = D3D_TESSELLATOR_OUTPUT_UNDEFINED,
|
||||
D3D11_TESSELLATOR_OUTPUT_POINT = D3D_TESSELLATOR_OUTPUT_POINT,
|
||||
D3D11_TESSELLATOR_OUTPUT_LINE = D3D_TESSELLATOR_OUTPUT_LINE,
|
||||
D3D11_TESSELLATOR_OUTPUT_TRIANGLE_CW = D3D_TESSELLATOR_OUTPUT_TRIANGLE_CW,
|
||||
D3D11_TESSELLATOR_OUTPUT_TRIANGLE_CCW = D3D_TESSELLATOR_OUTPUT_TRIANGLE_CCW
|
||||
} D3D_TESSELLATOR_OUTPUT_PRIMITIVE;
|
||||
|
||||
typedef
|
||||
enum D3D_MIN_PRECISION
|
||||
{
|
||||
D3D_MIN_PRECISION_DEFAULT = 0,
|
||||
D3D_MIN_PRECISION_FLOAT_16 = 1,
|
||||
D3D_MIN_PRECISION_FLOAT_2_8 = 2,
|
||||
D3D_MIN_PRECISION_RESERVED = 3,
|
||||
D3D_MIN_PRECISION_SINT_16 = 4,
|
||||
D3D_MIN_PRECISION_UINT_16 = 5,
|
||||
D3D_MIN_PRECISION_ANY_16 = 0xf0,
|
||||
D3D_MIN_PRECISION_ANY_10 = 0xf1
|
||||
} D3D_MIN_PRECISION;
|
||||
|
||||
DEFINE_GUID(WKPDID_D3DDebugObjectName,0x429b8c22,0x9188,0x4b0c,0x87,0x42,0xac,0xb0,0xbf,0x85,0xc2,0x00);
|
||||
#define D3D_SET_OBJECT_NAME_N_A(pObject, Chars, pName) (pObject)->SetPrivateData(WKPDID_D3DDebugObjectName, Chars, pName)
|
||||
#define D3D_SET_OBJECT_NAME_A(pObject, pName) D3D_SET_OBJECT_NAME_N_A(pObject, lstrlenA(pName), pName)
|
||||
|
||||
|
||||
extern RPC_IF_HANDLE __MIDL_itf_d3dcommon_0000_0001_v0_0_c_ifspec;
|
||||
extern RPC_IF_HANDLE __MIDL_itf_d3dcommon_0000_0001_v0_0_s_ifspec;
|
||||
|
||||
/* Additional Prototypes for ALL interfaces */
|
||||
|
||||
/* end of Additional Prototypes */
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
@@ -0,0 +1,538 @@
|
||||
//////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
//
|
||||
// File: D3DCompiler.h
|
||||
// Content: D3D Compilation Types and APIs
|
||||
//
|
||||
//////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#ifndef __D3DCOMPILER_H__
|
||||
#define __D3DCOMPILER_H__
|
||||
|
||||
#include <winapifamily.h>
|
||||
|
||||
#pragma region Application Family
|
||||
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
|
||||
|
||||
// Current name of the DLL shipped in the same SDK as this header.
|
||||
|
||||
|
||||
#define D3DCOMPILER_DLL_W L"d3dcompiler_46.dll"
|
||||
#define D3DCOMPILER_DLL_A "d3dcompiler_46.dll"
|
||||
|
||||
// Current HLSL compiler version.
|
||||
|
||||
#define D3D_COMPILER_VERSION 46
|
||||
|
||||
#ifdef UNICODE
|
||||
#define D3DCOMPILER_DLL D3DCOMPILER_DLL_W
|
||||
#else
|
||||
#define D3DCOMPILER_DLL D3DCOMPILER_DLL_A
|
||||
#endif
|
||||
|
||||
#include "d3d11shader.h"
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////////
|
||||
// APIs //////////////////////////////////////////////////////////////////////
|
||||
//////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) */
|
||||
#pragma endregion
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif //__cplusplus
|
||||
|
||||
#pragma region Application Family
|
||||
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
// D3DReadFileToBlob:
|
||||
// -----------------
|
||||
// Simple helper routine to read a file on disk into memory
|
||||
// for passing to other routines in this API.
|
||||
//----------------------------------------------------------------------------
|
||||
|
||||
HRESULT WINAPI
|
||||
D3DReadFileToBlob(_In_ LPCWSTR pFileName,
|
||||
_Out_ ID3DBlob** ppContents);
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
// D3DWriteBlobToFile:
|
||||
// ------------------
|
||||
// Simple helper routine to write a memory blob to a file on disk.
|
||||
//----------------------------------------------------------------------------
|
||||
|
||||
HRESULT WINAPI
|
||||
D3DWriteBlobToFile(_In_ ID3DBlob* pBlob,
|
||||
_In_ LPCWSTR pFileName,
|
||||
_In_ BOOL bOverwrite);
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
// D3DCOMPILE flags:
|
||||
// -----------------
|
||||
// D3DCOMPILE_DEBUG
|
||||
// Insert debug file/line/type/symbol information.
|
||||
//
|
||||
// D3DCOMPILE_SKIP_VALIDATION
|
||||
// Do not validate the generated code against known capabilities and
|
||||
// constraints. This option is only recommended when compiling shaders
|
||||
// you KNOW will work. (ie. have compiled before without this option.)
|
||||
// Shaders are always validated by D3D before they are set to the device.
|
||||
//
|
||||
// D3DCOMPILE_SKIP_OPTIMIZATION
|
||||
// Instructs the compiler to skip optimization steps during code generation.
|
||||
// Unless you are trying to isolate a problem in your code using this option
|
||||
// is not recommended.
|
||||
//
|
||||
// D3DCOMPILE_PACK_MATRIX_ROW_MAJOR
|
||||
// Unless explicitly specified, matrices will be packed in row-major order
|
||||
// on input and output from the shader.
|
||||
//
|
||||
// D3DCOMPILE_PACK_MATRIX_COLUMN_MAJOR
|
||||
// Unless explicitly specified, matrices will be packed in column-major
|
||||
// order on input and output from the shader. This is generally more
|
||||
// efficient, since it allows vector-matrix multiplication to be performed
|
||||
// using a series of dot-products.
|
||||
//
|
||||
// D3DCOMPILE_PARTIAL_PRECISION
|
||||
// Force all computations in resulting shader to occur at partial precision.
|
||||
// This may result in faster evaluation of shaders on some hardware.
|
||||
//
|
||||
// D3DCOMPILE_FORCE_VS_SOFTWARE_NO_OPT
|
||||
// Force compiler to compile against the next highest available software
|
||||
// target for vertex shaders. This flag also turns optimizations off,
|
||||
// and debugging on.
|
||||
//
|
||||
// D3DCOMPILE_FORCE_PS_SOFTWARE_NO_OPT
|
||||
// Force compiler to compile against the next highest available software
|
||||
// target for pixel shaders. This flag also turns optimizations off,
|
||||
// and debugging on.
|
||||
//
|
||||
// D3DCOMPILE_NO_PRESHADER
|
||||
// Disables Preshaders. Using this flag will cause the compiler to not
|
||||
// pull out static expression for evaluation on the host cpu
|
||||
//
|
||||
// D3DCOMPILE_AVOID_FLOW_CONTROL
|
||||
// Hint compiler to avoid flow-control constructs where possible.
|
||||
//
|
||||
// D3DCOMPILE_PREFER_FLOW_CONTROL
|
||||
// Hint compiler to prefer flow-control constructs where possible.
|
||||
//
|
||||
// D3DCOMPILE_ENABLE_STRICTNESS
|
||||
// By default, the HLSL/Effect compilers are not strict on deprecated syntax.
|
||||
// Specifying this flag enables the strict mode. Deprecated syntax may be
|
||||
// removed in a future release, and enabling syntax is a good way to make
|
||||
// sure your shaders comply to the latest spec.
|
||||
//
|
||||
// D3DCOMPILE_ENABLE_BACKWARDS_COMPATIBILITY
|
||||
// This enables older shaders to compile to 4_0 targets.
|
||||
//
|
||||
//----------------------------------------------------------------------------
|
||||
|
||||
#define D3DCOMPILE_DEBUG (1 << 0)
|
||||
#define D3DCOMPILE_SKIP_VALIDATION (1 << 1)
|
||||
#define D3DCOMPILE_SKIP_OPTIMIZATION (1 << 2)
|
||||
#define D3DCOMPILE_PACK_MATRIX_ROW_MAJOR (1 << 3)
|
||||
#define D3DCOMPILE_PACK_MATRIX_COLUMN_MAJOR (1 << 4)
|
||||
#define D3DCOMPILE_PARTIAL_PRECISION (1 << 5)
|
||||
#define D3DCOMPILE_FORCE_VS_SOFTWARE_NO_OPT (1 << 6)
|
||||
#define D3DCOMPILE_FORCE_PS_SOFTWARE_NO_OPT (1 << 7)
|
||||
#define D3DCOMPILE_NO_PRESHADER (1 << 8)
|
||||
#define D3DCOMPILE_AVOID_FLOW_CONTROL (1 << 9)
|
||||
#define D3DCOMPILE_PREFER_FLOW_CONTROL (1 << 10)
|
||||
#define D3DCOMPILE_ENABLE_STRICTNESS (1 << 11)
|
||||
#define D3DCOMPILE_ENABLE_BACKWARDS_COMPATIBILITY (1 << 12)
|
||||
#define D3DCOMPILE_IEEE_STRICTNESS (1 << 13)
|
||||
#define D3DCOMPILE_OPTIMIZATION_LEVEL0 (1 << 14)
|
||||
#define D3DCOMPILE_OPTIMIZATION_LEVEL1 0
|
||||
#define D3DCOMPILE_OPTIMIZATION_LEVEL2 ((1 << 14) | (1 << 15))
|
||||
#define D3DCOMPILE_OPTIMIZATION_LEVEL3 (1 << 15)
|
||||
#define D3DCOMPILE_RESERVED16 (1 << 16)
|
||||
#define D3DCOMPILE_RESERVED17 (1 << 17)
|
||||
#define D3DCOMPILE_WARNINGS_ARE_ERRORS (1 << 18)
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
// D3DCOMPILE_EFFECT flags:
|
||||
// -------------------------------------
|
||||
// These flags are passed in when creating an effect, and affect
|
||||
// either compilation behavior or runtime effect behavior
|
||||
//
|
||||
// D3DCOMPILE_EFFECT_CHILD_EFFECT
|
||||
// Compile this .fx file to a child effect. Child effects have no
|
||||
// initializers for any shared values as these are initialied in the
|
||||
// master effect (pool).
|
||||
//
|
||||
// D3DCOMPILE_EFFECT_ALLOW_SLOW_OPS
|
||||
// By default, performance mode is enabled. Performance mode
|
||||
// disallows mutable state objects by preventing non-literal
|
||||
// expressions from appearing in state object definitions.
|
||||
// Specifying this flag will disable the mode and allow for mutable
|
||||
// state objects.
|
||||
//
|
||||
//----------------------------------------------------------------------------
|
||||
|
||||
#define D3DCOMPILE_EFFECT_CHILD_EFFECT (1 << 0)
|
||||
#define D3DCOMPILE_EFFECT_ALLOW_SLOW_OPS (1 << 1)
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
// D3DCompile:
|
||||
// ----------
|
||||
// Compile source text into bytecode appropriate for the given target.
|
||||
//----------------------------------------------------------------------------
|
||||
|
||||
// D3D_COMPILE_STANDARD_FILE_INCLUDE can be passed for pInclude in any
|
||||
// API and indicates that a simple default include handler should be
|
||||
// used. The include handler will include files relative to the
|
||||
// current directory and files relative to the directory of the initial source
|
||||
// file. When used with APIs like D3DCompile pSourceName must be a
|
||||
// file name and the initial relative directory will be derived from it.
|
||||
#define D3D_COMPILE_STANDARD_FILE_INCLUDE ((ID3DInclude*)(UINT_PTR)1)
|
||||
|
||||
HRESULT WINAPI
|
||||
D3DCompile(_In_reads_bytes_(SrcDataSize) LPCVOID pSrcData,
|
||||
_In_ SIZE_T SrcDataSize,
|
||||
_In_opt_ LPCSTR pSourceName,
|
||||
_In_reads_opt_(_Inexpressible_(pDefines->Name != NULL)) CONST D3D_SHADER_MACRO* pDefines,
|
||||
_In_opt_ ID3DInclude* pInclude,
|
||||
_In_ LPCSTR pEntrypoint,
|
||||
_In_ LPCSTR pTarget,
|
||||
_In_ UINT Flags1,
|
||||
_In_ UINT Flags2,
|
||||
_Out_ ID3DBlob** ppCode,
|
||||
_Out_opt_ ID3DBlob** ppErrorMsgs);
|
||||
|
||||
typedef HRESULT (WINAPI *pD3DCompile)
|
||||
(LPCVOID pSrcData,
|
||||
SIZE_T SrcDataSize,
|
||||
LPCSTR pFileName,
|
||||
CONST D3D_SHADER_MACRO* pDefines,
|
||||
ID3DInclude* pInclude,
|
||||
LPCSTR pEntrypoint,
|
||||
LPCSTR pTarget,
|
||||
UINT Flags1,
|
||||
UINT Flags2,
|
||||
ID3DBlob** ppCode,
|
||||
ID3DBlob** ppErrorMsgs);
|
||||
|
||||
#define D3DCOMPILE_SECDATA_MERGE_UAV_SLOTS 0x00000001
|
||||
#define D3DCOMPILE_SECDATA_PRESERVE_TEMPLATE_SLOTS 0x00000002
|
||||
#define D3DCOMPILE_SECDATA_REQUIRE_TEMPLATE_MATCH 0x00000004
|
||||
|
||||
HRESULT WINAPI
|
||||
D3DCompile2(_In_reads_bytes_(SrcDataSize) LPCVOID pSrcData,
|
||||
_In_ SIZE_T SrcDataSize,
|
||||
_In_opt_ LPCSTR pSourceName,
|
||||
_In_reads_opt_(_Inexpressible_(pDefines->Name != NULL)) CONST D3D_SHADER_MACRO* pDefines,
|
||||
_In_opt_ ID3DInclude* pInclude,
|
||||
_In_ LPCSTR pEntrypoint,
|
||||
_In_ LPCSTR pTarget,
|
||||
_In_ UINT Flags1,
|
||||
_In_ UINT Flags2,
|
||||
_In_ UINT SecondaryDataFlags,
|
||||
_In_reads_bytes_opt_(SecondaryDataSize) LPCVOID pSecondaryData,
|
||||
_In_ SIZE_T SecondaryDataSize,
|
||||
_Out_ ID3DBlob** ppCode,
|
||||
_Out_opt_ ID3DBlob** ppErrorMsgs);
|
||||
|
||||
HRESULT WINAPI
|
||||
D3DCompileFromFile(_In_ LPCWSTR pFileName,
|
||||
_In_reads_opt_(_Inexpressible_(pDefines->Name != NULL)) CONST D3D_SHADER_MACRO* pDefines,
|
||||
_In_opt_ ID3DInclude* pInclude,
|
||||
_In_ LPCSTR pEntrypoint,
|
||||
_In_ LPCSTR pTarget,
|
||||
_In_ UINT Flags1,
|
||||
_In_ UINT Flags2,
|
||||
_Out_ ID3DBlob** ppCode,
|
||||
_Out_opt_ ID3DBlob** ppErrorMsgs);
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
// D3DPreprocess:
|
||||
// -------------
|
||||
// Process source text with the compiler's preprocessor and return
|
||||
// the resulting text.
|
||||
//----------------------------------------------------------------------------
|
||||
|
||||
HRESULT WINAPI
|
||||
D3DPreprocess(_In_reads_bytes_(SrcDataSize) LPCVOID pSrcData,
|
||||
_In_ SIZE_T SrcDataSize,
|
||||
_In_opt_ LPCSTR pSourceName,
|
||||
_In_opt_ CONST D3D_SHADER_MACRO* pDefines,
|
||||
_In_opt_ ID3DInclude* pInclude,
|
||||
_Out_ ID3DBlob** ppCodeText,
|
||||
_Out_opt_ ID3DBlob** ppErrorMsgs);
|
||||
|
||||
typedef HRESULT (WINAPI *pD3DPreprocess)
|
||||
(LPCVOID pSrcData,
|
||||
SIZE_T SrcDataSize,
|
||||
LPCSTR pFileName,
|
||||
CONST D3D_SHADER_MACRO* pDefines,
|
||||
ID3DInclude* pInclude,
|
||||
ID3DBlob** ppCodeText,
|
||||
ID3DBlob** ppErrorMsgs);
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
// D3DGetDebugInfo:
|
||||
// -----------------------
|
||||
// Gets shader debug info. Debug info is generated by D3DCompile and is
|
||||
// embedded in the body of the shader.
|
||||
//----------------------------------------------------------------------------
|
||||
|
||||
HRESULT WINAPI
|
||||
D3DGetDebugInfo(_In_reads_bytes_(SrcDataSize) LPCVOID pSrcData,
|
||||
_In_ SIZE_T SrcDataSize,
|
||||
_Out_ ID3DBlob** ppDebugInfo);
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
// D3DReflect:
|
||||
// ----------
|
||||
// Shader code contains metadata that can be inspected via the
|
||||
// reflection APIs.
|
||||
//----------------------------------------------------------------------------
|
||||
|
||||
HRESULT WINAPI
|
||||
D3DReflect(_In_reads_bytes_(SrcDataSize) LPCVOID pSrcData,
|
||||
_In_ SIZE_T SrcDataSize,
|
||||
_In_ REFIID pInterface,
|
||||
_Out_ void** ppReflector);
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
// D3DDisassemble:
|
||||
// ----------------------
|
||||
// Takes a binary shader and returns a buffer containing text assembly.
|
||||
//----------------------------------------------------------------------------
|
||||
|
||||
#define D3D_DISASM_ENABLE_COLOR_CODE 0x00000001
|
||||
#define D3D_DISASM_ENABLE_DEFAULT_VALUE_PRINTS 0x00000002
|
||||
#define D3D_DISASM_ENABLE_INSTRUCTION_NUMBERING 0x00000004
|
||||
#define D3D_DISASM_ENABLE_INSTRUCTION_CYCLE 0x00000008
|
||||
#define D3D_DISASM_DISABLE_DEBUG_INFO 0x00000010
|
||||
#define D3D_DISASM_ENABLE_INSTRUCTION_OFFSET 0x00000020
|
||||
#define D3D_DISASM_INSTRUCTION_ONLY 0x00000040
|
||||
|
||||
HRESULT WINAPI
|
||||
D3DDisassemble(_In_reads_bytes_(SrcDataSize) LPCVOID pSrcData,
|
||||
_In_ SIZE_T SrcDataSize,
|
||||
_In_ UINT Flags,
|
||||
_In_opt_ LPCSTR szComments,
|
||||
_Out_ ID3DBlob** ppDisassembly);
|
||||
|
||||
typedef HRESULT (WINAPI *pD3DDisassemble)
|
||||
(_In_reads_bytes_(SrcDataSize) LPCVOID pSrcData,
|
||||
_In_ SIZE_T SrcDataSize,
|
||||
_In_ UINT Flags,
|
||||
_In_opt_ LPCSTR szComments,
|
||||
_Out_ ID3DBlob** ppDisassembly);
|
||||
|
||||
HRESULT WINAPI
|
||||
D3DDisassembleRegion(_In_reads_bytes_(SrcDataSize) LPCVOID pSrcData,
|
||||
_In_ SIZE_T SrcDataSize,
|
||||
_In_ UINT Flags,
|
||||
_In_opt_ LPCSTR szComments,
|
||||
_In_ SIZE_T StartByteOffset,
|
||||
_In_ SIZE_T NumInsts,
|
||||
_Out_opt_ SIZE_T* pFinishByteOffset,
|
||||
_Out_ ID3DBlob** ppDisassembly);
|
||||
|
||||
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) */
|
||||
#pragma endregion
|
||||
|
||||
#pragma region Desktop Family
|
||||
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
// D3DDisassemble10Effect:
|
||||
// -----------------------
|
||||
// Takes a D3D10 effect interface and returns a
|
||||
// buffer containing text assembly.
|
||||
//----------------------------------------------------------------------------
|
||||
|
||||
HRESULT WINAPI
|
||||
D3DDisassemble10Effect(_In_ interface ID3D10Effect *pEffect,
|
||||
_In_ UINT Flags,
|
||||
_Out_ ID3DBlob** ppDisassembly);
|
||||
|
||||
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
|
||||
#pragma endregion
|
||||
|
||||
#pragma region Application Family
|
||||
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
// D3DGetTraceInstructionOffsets:
|
||||
// -----------------------
|
||||
// Determines byte offsets for instructions within a shader blob.
|
||||
// This information is useful for going between trace instruction
|
||||
// indices and byte offsets that are used in debug information.
|
||||
//----------------------------------------------------------------------------
|
||||
|
||||
#define D3D_GET_INST_OFFSETS_INCLUDE_NON_EXECUTABLE 0x00000001
|
||||
|
||||
HRESULT WINAPI
|
||||
D3DGetTraceInstructionOffsets(_In_reads_bytes_(SrcDataSize) LPCVOID pSrcData,
|
||||
_In_ SIZE_T SrcDataSize,
|
||||
_In_ UINT Flags,
|
||||
_In_ SIZE_T StartInstIndex,
|
||||
_In_ SIZE_T NumInsts,
|
||||
_Out_writes_to_opt_(NumInsts, min(NumInsts, *pTotalInsts)) SIZE_T* pOffsets,
|
||||
_Out_opt_ SIZE_T* pTotalInsts);
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
// D3DGetInputSignatureBlob:
|
||||
// -----------------------
|
||||
// Retrieve the input signature from a compilation result.
|
||||
//----------------------------------------------------------------------------
|
||||
|
||||
HRESULT WINAPI
|
||||
D3DGetInputSignatureBlob(_In_reads_bytes_(SrcDataSize) LPCVOID pSrcData,
|
||||
_In_ SIZE_T SrcDataSize,
|
||||
_Out_ ID3DBlob** ppSignatureBlob);
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
// D3DGetOutputSignatureBlob:
|
||||
// -----------------------
|
||||
// Retrieve the output signature from a compilation result.
|
||||
//----------------------------------------------------------------------------
|
||||
|
||||
HRESULT WINAPI
|
||||
D3DGetOutputSignatureBlob(_In_reads_bytes_(SrcDataSize) LPCVOID pSrcData,
|
||||
_In_ SIZE_T SrcDataSize,
|
||||
_Out_ ID3DBlob** ppSignatureBlob);
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
// D3DGetInputAndOutputSignatureBlob:
|
||||
// -----------------------
|
||||
// Retrieve the input and output signatures from a compilation result.
|
||||
//----------------------------------------------------------------------------
|
||||
|
||||
HRESULT WINAPI
|
||||
D3DGetInputAndOutputSignatureBlob(_In_reads_bytes_(SrcDataSize) LPCVOID pSrcData,
|
||||
_In_ SIZE_T SrcDataSize,
|
||||
_Out_ ID3DBlob** ppSignatureBlob);
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
// D3DStripShader:
|
||||
// -----------------------
|
||||
// Removes unwanted blobs from a compilation result
|
||||
//----------------------------------------------------------------------------
|
||||
|
||||
typedef enum D3DCOMPILER_STRIP_FLAGS
|
||||
{
|
||||
D3DCOMPILER_STRIP_REFLECTION_DATA = 1,
|
||||
D3DCOMPILER_STRIP_DEBUG_INFO = 2,
|
||||
D3DCOMPILER_STRIP_TEST_BLOBS = 4,
|
||||
D3DCOMPILER_STRIP_PRIVATE_DATA = 8,
|
||||
D3DCOMPILER_STRIP_FORCE_DWORD = 0x7fffffff,
|
||||
} D3DCOMPILER_STRIP_FLAGS;
|
||||
|
||||
HRESULT WINAPI
|
||||
D3DStripShader(_In_reads_bytes_(BytecodeLength) LPCVOID pShaderBytecode,
|
||||
_In_ SIZE_T BytecodeLength,
|
||||
_In_ UINT uStripFlags,
|
||||
_Out_ ID3DBlob** ppStrippedBlob);
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
// D3DGetBlobPart:
|
||||
// -----------------------
|
||||
// Extracts information from a compilation result.
|
||||
//----------------------------------------------------------------------------
|
||||
|
||||
typedef enum D3D_BLOB_PART
|
||||
{
|
||||
D3D_BLOB_INPUT_SIGNATURE_BLOB,
|
||||
D3D_BLOB_OUTPUT_SIGNATURE_BLOB,
|
||||
D3D_BLOB_INPUT_AND_OUTPUT_SIGNATURE_BLOB,
|
||||
D3D_BLOB_PATCH_CONSTANT_SIGNATURE_BLOB,
|
||||
D3D_BLOB_ALL_SIGNATURE_BLOB,
|
||||
D3D_BLOB_DEBUG_INFO,
|
||||
D3D_BLOB_LEGACY_SHADER,
|
||||
D3D_BLOB_XNA_PREPASS_SHADER,
|
||||
D3D_BLOB_XNA_SHADER,
|
||||
D3D_BLOB_PDB,
|
||||
D3D_BLOB_PRIVATE_DATA,
|
||||
|
||||
// Test parts are only produced by special compiler versions and so
|
||||
// are usually not present in shaders.
|
||||
D3D_BLOB_TEST_ALTERNATE_SHADER = 0x8000,
|
||||
D3D_BLOB_TEST_COMPILE_DETAILS,
|
||||
D3D_BLOB_TEST_COMPILE_PERF,
|
||||
D3D_BLOB_TEST_COMPILE_REPORT,
|
||||
} D3D_BLOB_PART;
|
||||
|
||||
HRESULT WINAPI
|
||||
D3DGetBlobPart(_In_reads_bytes_(SrcDataSize) LPCVOID pSrcData,
|
||||
_In_ SIZE_T SrcDataSize,
|
||||
_In_ D3D_BLOB_PART Part,
|
||||
_In_ UINT Flags,
|
||||
_Out_ ID3DBlob** ppPart);
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
// D3DSetBlobPart:
|
||||
// -----------------------
|
||||
// Update information in a compilation result.
|
||||
//----------------------------------------------------------------------------
|
||||
|
||||
HRESULT WINAPI
|
||||
D3DSetBlobPart(_In_reads_bytes_(SrcDataSize) LPCVOID pSrcData,
|
||||
_In_ SIZE_T SrcDataSize,
|
||||
_In_ D3D_BLOB_PART Part,
|
||||
_In_ UINT Flags,
|
||||
_In_reads_bytes_(PartSize) LPCVOID pPart,
|
||||
_In_ SIZE_T PartSize,
|
||||
_Out_ ID3DBlob** ppNewShader);
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
// D3DCompressShaders:
|
||||
// -----------------------
|
||||
// Compresses a set of shaders into a more compact form.
|
||||
//----------------------------------------------------------------------------
|
||||
|
||||
typedef struct _D3D_SHADER_DATA
|
||||
{
|
||||
LPCVOID pBytecode;
|
||||
SIZE_T BytecodeLength;
|
||||
} D3D_SHADER_DATA;
|
||||
|
||||
#define D3D_COMPRESS_SHADER_KEEP_ALL_PARTS 0x00000001
|
||||
|
||||
HRESULT WINAPI
|
||||
D3DCompressShaders(_In_ UINT uNumShaders,
|
||||
_In_reads_(uNumShaders) D3D_SHADER_DATA* pShaderData,
|
||||
_In_ UINT uFlags,
|
||||
_Out_ ID3DBlob** ppCompressedData);
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
// D3DDecompressShaders:
|
||||
// -----------------------
|
||||
// Decompresses one or more shaders from a compressed set.
|
||||
//----------------------------------------------------------------------------
|
||||
|
||||
HRESULT WINAPI
|
||||
D3DDecompressShaders(_In_reads_bytes_(SrcDataSize) LPCVOID pSrcData,
|
||||
_In_ SIZE_T SrcDataSize,
|
||||
_In_ UINT uNumShaders,
|
||||
_In_ UINT uStartIndex,
|
||||
_In_reads_opt_(uNumShaders) UINT* pIndices,
|
||||
_In_ UINT uFlags,
|
||||
_Out_writes_(uNumShaders) ID3DBlob** ppShaders,
|
||||
_Out_opt_ UINT* pTotalShaders);
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
// D3DCreateBlob:
|
||||
// -----------------------
|
||||
// Create an ID3DBlob instance.
|
||||
//----------------------------------------------------------------------------
|
||||
|
||||
HRESULT WINAPI
|
||||
D3DCreateBlob(_In_ SIZE_T Size,
|
||||
_Out_ ID3DBlob** ppBlob);
|
||||
|
||||
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) */
|
||||
#pragma endregion
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif //__cplusplus
|
||||
|
||||
#endif // #ifndef __D3DCOMPILER_H__
|
||||
2951
hgplus/las/framework-dx11-nasm/tools/headerGenerator/dxgi.h
Normal file
2951
hgplus/las/framework-dx11-nasm/tools/headerGenerator/dxgi.h
Normal file
File diff suppressed because it is too large
Load Diff
457
hgplus/las/framework-dx11-nasm/tools/headerGenerator/dxgi.inc
Normal file
457
hgplus/las/framework-dx11-nasm/tools/headerGenerator/dxgi.inc
Normal file
@@ -0,0 +1,457 @@
|
||||
; dxgi.inc by las/mercury
|
||||
|
||||
struc DXGI_SWAP_CHAIN_DESC
|
||||
; DXGI_MODE_DESC BufferDesc
|
||||
.Width: resd 1
|
||||
.Height: resd 1
|
||||
|
||||
; DXGI_RATIONAL RefreshRate
|
||||
.Numerator: resd 1
|
||||
.Denominator: resd 1
|
||||
|
||||
.Format: resd 1
|
||||
.ScanlineOrdering: resd 1
|
||||
.Scaling: resd 1
|
||||
|
||||
; DXGI_SAMPLE_DESC SampleDesc
|
||||
.Count: resd 1
|
||||
.Quality: resd 1
|
||||
|
||||
.BufferUsage: resd 1
|
||||
.BufferCount: resd 1
|
||||
.OutputWindow: resd 1
|
||||
.Windowed: resd 1
|
||||
.SwapEffect: resd 1
|
||||
.Flags: resd 1
|
||||
endstruc
|
||||
|
||||
; DXGI_RESIDENCY
|
||||
%define DXGI_RESIDENCY_FULLY_RESIDENT 1
|
||||
%define DXGI_RESIDENCY_RESIDENT_IN_SHARED_MEMORY 2
|
||||
%define DXGI_RESIDENCY_EVICTED_TO_DISK 3
|
||||
|
||||
; DXGI_SWAP_EFFECT
|
||||
%define DXGI_SWAP_EFFECT_DISCARD 0
|
||||
%define DXGI_SWAP_EFFECT_SEQUENTIAL 1
|
||||
%define DXGI_SWAP_EFFECT_FLIP_SEQUENTIAL 3
|
||||
|
||||
; DXGI_SWAP_CHAIN_FLAG
|
||||
%define DXGI_SWAP_CHAIN_FLAG_NONPREROTATED 1
|
||||
%define DXGI_SWAP_CHAIN_FLAG_ALLOW_MODE_SWITCH 2
|
||||
%define DXGI_SWAP_CHAIN_FLAG_GDI_COMPATIBLE 4
|
||||
%define DXGI_SWAP_CHAIN_FLAG_RESTRICTED_CONTENT 8
|
||||
%define DXGI_SWAP_CHAIN_FLAG_RESTRICT_SHARED_RESOURCE_DRIVER 16
|
||||
%define DXGI_SWAP_CHAIN_FLAG_DISPLAY_ONLY 32
|
||||
%define DXGI_SWAP_CHAIN_FLAG_FRAME_LATENCY_WAITABLE_OBJECT 64
|
||||
%define DXGI_SWAP_CHAIN_FLAG_FOREGROUND_LAYER 128
|
||||
%define DXGI_SWAP_CHAIN_FLAG_FULLSCREEN_VIDEO 256
|
||||
|
||||
; DXGI_ADAPTER_FLAG
|
||||
%define DXGI_ADAPTER_FLAG_NONE 0
|
||||
%define DXGI_ADAPTER_FLAG_REMOTE 1
|
||||
%define DXGI_ADAPTER_FLAG_SOFTWARE 2
|
||||
%define DXGI_ADAPTER_FLAG_FORCE_DWORD 0xffffffff
|
||||
|
||||
; DXGI_FORMAT
|
||||
%define DXGI_FORMAT_UNKNOWN 0
|
||||
%define DXGI_FORMAT_R32G32B32A32_TYPELESS 1
|
||||
%define DXGI_FORMAT_R32G32B32A32_FLOAT 2
|
||||
%define DXGI_FORMAT_R32G32B32A32_UINT 3
|
||||
%define DXGI_FORMAT_R32G32B32A32_SINT 4
|
||||
%define DXGI_FORMAT_R32G32B32_TYPELESS 5
|
||||
%define DXGI_FORMAT_R32G32B32_FLOAT 6
|
||||
%define DXGI_FORMAT_R32G32B32_UINT 7
|
||||
%define DXGI_FORMAT_R32G32B32_SINT 8
|
||||
%define DXGI_FORMAT_R16G16B16A16_TYPELESS 9
|
||||
%define DXGI_FORMAT_R16G16B16A16_FLOAT 10
|
||||
%define DXGI_FORMAT_R16G16B16A16_UNORM 11
|
||||
%define DXGI_FORMAT_R16G16B16A16_UINT 12
|
||||
%define DXGI_FORMAT_R16G16B16A16_SNORM 13
|
||||
%define DXGI_FORMAT_R16G16B16A16_SINT 14
|
||||
%define DXGI_FORMAT_R32G32_TYPELESS 15
|
||||
%define DXGI_FORMAT_R32G32_FLOAT 16
|
||||
%define DXGI_FORMAT_R32G32_UINT 17
|
||||
%define DXGI_FORMAT_R32G32_SINT 18
|
||||
%define DXGI_FORMAT_R32G8X24_TYPELESS 19
|
||||
%define DXGI_FORMAT_D32_FLOAT_S8X24_UINT 20
|
||||
%define DXGI_FORMAT_R32_FLOAT_X8X24_TYPELESS 21
|
||||
%define DXGI_FORMAT_X32_TYPELESS_G8X24_UINT 22
|
||||
%define DXGI_FORMAT_R10G10B10A2_TYPELESS 23
|
||||
%define DXGI_FORMAT_R10G10B10A2_UNORM 24
|
||||
%define DXGI_FORMAT_R10G10B10A2_UINT 25
|
||||
%define DXGI_FORMAT_R11G11B10_FLOAT 26
|
||||
%define DXGI_FORMAT_R8G8B8A8_TYPELESS 27
|
||||
%define DXGI_FORMAT_R8G8B8A8_UNORM 28
|
||||
%define DXGI_FORMAT_R8G8B8A8_UNORM_SRGB 29
|
||||
%define DXGI_FORMAT_R8G8B8A8_UINT 30
|
||||
%define DXGI_FORMAT_R8G8B8A8_SNORM 31
|
||||
%define DXGI_FORMAT_R8G8B8A8_SINT 32
|
||||
%define DXGI_FORMAT_R16G16_TYPELESS 33
|
||||
%define DXGI_FORMAT_R16G16_FLOAT 34
|
||||
%define DXGI_FORMAT_R16G16_UNORM 35
|
||||
%define DXGI_FORMAT_R16G16_UINT 36
|
||||
%define DXGI_FORMAT_R16G16_SNORM 37
|
||||
%define DXGI_FORMAT_R16G16_SINT 38
|
||||
%define DXGI_FORMAT_R32_TYPELESS 39
|
||||
%define DXGI_FORMAT_D32_FLOAT 40
|
||||
%define DXGI_FORMAT_R32_FLOAT 41
|
||||
%define DXGI_FORMAT_R32_UINT 42
|
||||
%define DXGI_FORMAT_R32_SINT 43
|
||||
%define DXGI_FORMAT_R24G8_TYPELESS 44
|
||||
%define DXGI_FORMAT_D24_UNORM_S8_UINT 45
|
||||
%define DXGI_FORMAT_R24_UNORM_X8_TYPELESS 46
|
||||
%define DXGI_FORMAT_X24_TYPELESS_G8_UINT 47
|
||||
%define DXGI_FORMAT_R8G8_TYPELESS 48
|
||||
%define DXGI_FORMAT_R8G8_UNORM 49
|
||||
%define DXGI_FORMAT_R8G8_UINT 50
|
||||
%define DXGI_FORMAT_R8G8_SNORM 51
|
||||
%define DXGI_FORMAT_R8G8_SINT 52
|
||||
%define DXGI_FORMAT_R16_TYPELESS 53
|
||||
%define DXGI_FORMAT_R16_FLOAT 54
|
||||
%define DXGI_FORMAT_D16_UNORM 55
|
||||
%define DXGI_FORMAT_R16_UNORM 56
|
||||
%define DXGI_FORMAT_R16_UINT 57
|
||||
%define DXGI_FORMAT_R16_SNORM 58
|
||||
%define DXGI_FORMAT_R16_SINT 59
|
||||
%define DXGI_FORMAT_R8_TYPELESS 60
|
||||
%define DXGI_FORMAT_R8_UNORM 61
|
||||
%define DXGI_FORMAT_R8_UINT 62
|
||||
%define DXGI_FORMAT_R8_SNORM 63
|
||||
%define DXGI_FORMAT_R8_SINT 64
|
||||
%define DXGI_FORMAT_A8_UNORM 65
|
||||
%define DXGI_FORMAT_R1_UNORM 66
|
||||
%define DXGI_FORMAT_R9G9B9E5_SHAREDEXP 67
|
||||
%define DXGI_FORMAT_R8G8_B8G8_UNORM 68
|
||||
%define DXGI_FORMAT_G8R8_G8B8_UNORM 69
|
||||
%define DXGI_FORMAT_BC1_TYPELESS 70
|
||||
%define DXGI_FORMAT_BC1_UNORM 71
|
||||
%define DXGI_FORMAT_BC1_UNORM_SRGB 72
|
||||
%define DXGI_FORMAT_BC2_TYPELESS 73
|
||||
%define DXGI_FORMAT_BC2_UNORM 74
|
||||
%define DXGI_FORMAT_BC2_UNORM_SRGB 75
|
||||
%define DXGI_FORMAT_BC3_TYPELESS 76
|
||||
%define DXGI_FORMAT_BC3_UNORM 77
|
||||
%define DXGI_FORMAT_BC3_UNORM_SRGB 78
|
||||
%define DXGI_FORMAT_BC4_TYPELESS 79
|
||||
%define DXGI_FORMAT_BC4_UNORM 80
|
||||
%define DXGI_FORMAT_BC4_SNORM 81
|
||||
%define DXGI_FORMAT_BC5_TYPELESS 82
|
||||
%define DXGI_FORMAT_BC5_UNORM 83
|
||||
%define DXGI_FORMAT_BC5_SNORM 84
|
||||
%define DXGI_FORMAT_B5G6R5_UNORM 85
|
||||
%define DXGI_FORMAT_B5G5R5A1_UNORM 86
|
||||
%define DXGI_FORMAT_B8G8R8A8_UNORM 87
|
||||
%define DXGI_FORMAT_B8G8R8X8_UNORM 88
|
||||
%define DXGI_FORMAT_R10G10B10_XR_BIAS_A2_UNORM 89
|
||||
%define DXGI_FORMAT_B8G8R8A8_TYPELESS 90
|
||||
%define DXGI_FORMAT_B8G8R8A8_UNORM_SRGB 91
|
||||
%define DXGI_FORMAT_B8G8R8X8_TYPELESS 92
|
||||
%define DXGI_FORMAT_B8G8R8X8_UNORM_SRGB 93
|
||||
%define DXGI_FORMAT_BC6H_TYPELESS 94
|
||||
%define DXGI_FORMAT_BC6H_UF16 95
|
||||
%define DXGI_FORMAT_BC6H_SF16 96
|
||||
%define DXGI_FORMAT_BC7_TYPELESS 97
|
||||
%define DXGI_FORMAT_BC7_UNORM 98
|
||||
%define DXGI_FORMAT_BC7_UNORM_SRGB 99
|
||||
%define DXGI_FORMAT_AYUV 100
|
||||
%define DXGI_FORMAT_Y410 101
|
||||
%define DXGI_FORMAT_Y416 102
|
||||
%define DXGI_FORMAT_NV12 103
|
||||
%define DXGI_FORMAT_P010 104
|
||||
%define DXGI_FORMAT_P016 105
|
||||
%define DXGI_FORMAT_420_OPAQUE 106
|
||||
%define DXGI_FORMAT_YUY2 107
|
||||
%define DXGI_FORMAT_Y210 108
|
||||
%define DXGI_FORMAT_Y216 109
|
||||
%define DXGI_FORMAT_NV11 110
|
||||
%define DXGI_FORMAT_AI44 111
|
||||
%define DXGI_FORMAT_IA44 112
|
||||
%define DXGI_FORMAT_P8 113
|
||||
%define DXGI_FORMAT_A8P8 114
|
||||
%define DXGI_FORMAT_B4G4R4A4_UNORM 115
|
||||
%define DXGI_FORMAT_FORCE_UINT 0xffffffff
|
||||
|
||||
; DXGI_MODE_SCANLINE_ORDER
|
||||
%define DXGI_MODE_SCANLINE_ORDER_UNSPECIFIED 0
|
||||
%define DXGI_MODE_SCANLINE_ORDER_PROGRESSIVE 1
|
||||
%define DXGI_MODE_SCANLINE_ORDER_UPPER_FIELD_FIRST 2
|
||||
%define DXGI_MODE_SCANLINE_ORDER_LOWER_FIELD_FIRST 3
|
||||
|
||||
; DXGI_MODE_SCALING
|
||||
%define DXGI_MODE_SCALING_UNSPECIFIED 0
|
||||
%define DXGI_MODE_SCALING_CENTERED 1
|
||||
%define DXGI_MODE_SCALING_STRETCHED 2
|
||||
|
||||
; DXGI_MODE_ROTATION
|
||||
%define DXGI_MODE_ROTATION_UNSPECIFIED 0
|
||||
%define DXGI_MODE_ROTATION_IDENTITY 1
|
||||
%define DXGI_MODE_ROTATION_ROTATE90 2
|
||||
%define DXGI_MODE_ROTATION_ROTATE180 3
|
||||
%define DXGI_MODE_ROTATION_ROTATE270 4
|
||||
|
||||
|
||||
%define DXGI_CPU_ACCESS_NONE (0)
|
||||
%define DXGI_CPU_ACCESS_DYNAMIC (1)
|
||||
%define DXGI_CPU_ACCESS_READ_WRITE (2)
|
||||
%define DXGI_CPU_ACCESS_SCRATCH (3)
|
||||
%define DXGI_CPU_ACCESS_FIELD 15
|
||||
%define DXGI_USAGE_SHADER_INPUT (1<<(0 + 4))
|
||||
%define DXGI_USAGE_RENDER_TARGET_OUTPUT (1<<(1 + 4))
|
||||
%define DXGI_USAGE_BACK_BUFFER (1<<(2 + 4))
|
||||
%define DXGI_USAGE_SHARED (1<<(3 + 4))
|
||||
%define DXGI_USAGE_READ_ONLY (1<<(4 + 4))
|
||||
%define DXGI_USAGE_DISCARD_ON_PRESENT (1<<(5 + 4))
|
||||
%define DXGI_USAGE_UNORDERED_ACCESS (1<<(6 + 4))
|
||||
%define DXGI_RESOURCE_PRIORITY_MINIMUM (0x28000000)
|
||||
%define DXGI_RESOURCE_PRIORITY_LOW (0x50000000)
|
||||
%define DXGI_RESOURCE_PRIORITY_NORMAL (0x78000000)
|
||||
%define DXGI_RESOURCE_PRIORITY_HIGH (0xa0000000)
|
||||
%define DXGI_RESOURCE_PRIORITY_MAXIMUM (0xc8000000)
|
||||
%define DXGI_MAP_READ (1)
|
||||
%define DXGI_MAP_WRITE (2)
|
||||
%define DXGI_MAP_DISCARD (4)
|
||||
%define DXGI_ENUM_MODES_INTERLACED (1)
|
||||
%define DXGI_ENUM_MODES_SCALING (2)
|
||||
%define DXGI_MAX_SWAP_CHAIN_BUFFERS (16)
|
||||
%define DXGI_PRESENT_TEST 0x00000001
|
||||
%define DXGI_PRESENT_DO_NOT_SEQUENCE 0x00000002
|
||||
%define DXGI_PRESENT_RESTART 0x00000004
|
||||
%define DXGI_PRESENT_DO_NOT_WAIT 0x00000008
|
||||
%define DXGI_PRESENT_STEREO_PREFER_RIGHT 0x00000010
|
||||
%define DXGI_PRESENT_STEREO_TEMPORARY_MONO 0x00000020
|
||||
%define DXGI_PRESENT_RESTRICT_TO_OUTPUT 0x00000040
|
||||
%define DXGI_PRESENT_USE_DURATION 0x00000100
|
||||
%define DXGI_MWA_NO_WINDOW_CHANGES (1<<0)
|
||||
%define DXGI_MWA_NO_ALT_ENTER (1<<1)
|
||||
%define DXGI_MWA_NO_PRINT_SCREEN (1<<2)
|
||||
%define DXGI_MWA_VALID (0x7)
|
||||
%define DXGI_FORMAT_DEFINED 1
|
||||
%define _FACDXGI 0x87a
|
||||
%define MAKE_DXGI_HRESULT(code) MAKE_HRESULT(1, _FACDXGI, code)
|
||||
%define MAKE_DXGI_STATUS(code) MAKE_HRESULT(0, _FACDXGI, code)
|
||||
%define DXGI_CPU_ACCESS_NONE (0)
|
||||
%define DXGI_CPU_ACCESS_DYNAMIC (1)
|
||||
%define DXGI_CPU_ACCESS_READ_WRITE (2)
|
||||
%define DXGI_CPU_ACCESS_SCRATCH (3)
|
||||
%define DXGI_CPU_ACCESS_FIELD 15
|
||||
%define DXGI_USAGE_SHADER_INPUT (1<<(0 + 4))
|
||||
%define DXGI_USAGE_RENDER_TARGET_OUTPUT (1<<(1 + 4))
|
||||
%define DXGI_USAGE_BACK_BUFFER (1<<(2 + 4))
|
||||
%define DXGI_USAGE_SHARED (1<<(3 + 4))
|
||||
%define DXGI_USAGE_READ_ONLY (1<<(4 + 4))
|
||||
%define DXGI_USAGE_DISCARD_ON_PRESENT (1<<(5 + 4))
|
||||
%define DXGI_USAGE_UNORDERED_ACCESS (1<<(6 + 4))
|
||||
|
||||
|
||||
struc IDXGIObject
|
||||
.QueryInterface: resb 4
|
||||
.AddRef: resb 4
|
||||
.Release: resb 4
|
||||
.SetPrivateData: resb 4
|
||||
.SetPrivateDataInterface: resb 4
|
||||
.GetPrivateData: resb 4
|
||||
.GetParent: resb 4
|
||||
endstruc
|
||||
|
||||
struc IDXGIDeviceSubObject
|
||||
.QueryInterface: resb 4
|
||||
.AddRef: resb 4
|
||||
.Release: resb 4
|
||||
.SetPrivateData: resb 4
|
||||
.SetPrivateDataInterface: resb 4
|
||||
.GetPrivateData: resb 4
|
||||
.GetParent: resb 4
|
||||
.GetDevice: resb 4
|
||||
endstruc
|
||||
|
||||
struc IDXGIResource
|
||||
.QueryInterface: resb 4
|
||||
.AddRef: resb 4
|
||||
.Release: resb 4
|
||||
.SetPrivateData: resb 4
|
||||
.SetPrivateDataInterface: resb 4
|
||||
.GetPrivateData: resb 4
|
||||
.GetParent: resb 4
|
||||
.GetDevice: resb 4
|
||||
.GetSharedHandle: resb 4
|
||||
.GetUsage: resb 4
|
||||
.SetEvictionPriority: resb 4
|
||||
.GetEvictionPriority: resb 4
|
||||
endstruc
|
||||
|
||||
struc IDXGIKeyedMutex
|
||||
.QueryInterface: resb 4
|
||||
.AddRef: resb 4
|
||||
.Release: resb 4
|
||||
.SetPrivateData: resb 4
|
||||
.SetPrivateDataInterface: resb 4
|
||||
.GetPrivateData: resb 4
|
||||
.GetParent: resb 4
|
||||
.GetDevice: resb 4
|
||||
.AcquireSync: resb 4
|
||||
.ReleaseSync: resb 4
|
||||
endstruc
|
||||
|
||||
struc IDXGISurface
|
||||
.QueryInterface: resb 4
|
||||
.AddRef: resb 4
|
||||
.Release: resb 4
|
||||
.SetPrivateData: resb 4
|
||||
.SetPrivateDataInterface: resb 4
|
||||
.GetPrivateData: resb 4
|
||||
.GetParent: resb 4
|
||||
.GetDevice: resb 4
|
||||
.GetDesc: resb 4
|
||||
.Map: resb 4
|
||||
.Unmap: resb 4
|
||||
endstruc
|
||||
|
||||
struc IDXGISurface1
|
||||
.QueryInterface: resb 4
|
||||
.AddRef: resb 4
|
||||
.Release: resb 4
|
||||
.SetPrivateData: resb 4
|
||||
.SetPrivateDataInterface: resb 4
|
||||
.GetPrivateData: resb 4
|
||||
.GetParent: resb 4
|
||||
.GetDevice: resb 4
|
||||
.GetDesc: resb 4
|
||||
.Map: resb 4
|
||||
.Unmap: resb 4
|
||||
.GetDC: resb 4
|
||||
.ReleaseDC: resb 4
|
||||
endstruc
|
||||
|
||||
struc IDXGIAdapter
|
||||
.QueryInterface: resb 4
|
||||
.AddRef: resb 4
|
||||
.Release: resb 4
|
||||
.SetPrivateData: resb 4
|
||||
.SetPrivateDataInterface: resb 4
|
||||
.GetPrivateData: resb 4
|
||||
.GetParent: resb 4
|
||||
.EnumOutputs: resb 4
|
||||
.GetDesc: resb 4
|
||||
.CheckInterfaceSupport: resb 4
|
||||
endstruc
|
||||
|
||||
struc IDXGIOutput
|
||||
.QueryInterface: resb 4
|
||||
.AddRef: resb 4
|
||||
.Release: resb 4
|
||||
.SetPrivateData: resb 4
|
||||
.SetPrivateDataInterface: resb 4
|
||||
.GetPrivateData: resb 4
|
||||
.GetParent: resb 4
|
||||
.GetDesc: resb 4
|
||||
.GetDisplayModeList: resb 4
|
||||
.FindClosestMatchingMode: resb 4
|
||||
.WaitForVBlank: resb 4
|
||||
.TakeOwnership: resb 4
|
||||
.ReleaseOwnership: resb 4
|
||||
.GetGammaControlCapabilities: resb 4
|
||||
.SetGammaControl: resb 4
|
||||
.GetGammaControl: resb 4
|
||||
.SetDisplaySurface: resb 4
|
||||
.GetDisplaySurfaceData: resb 4
|
||||
.GetFrameStatistics: resb 4
|
||||
endstruc
|
||||
|
||||
struc IDXGISwapChain
|
||||
.QueryInterface: resb 4
|
||||
.AddRef: resb 4
|
||||
.Release: resb 4
|
||||
.SetPrivateData: resb 4
|
||||
.SetPrivateDataInterface: resb 4
|
||||
.GetPrivateData: resb 4
|
||||
.GetParent: resb 4
|
||||
.GetDevice: resb 4
|
||||
.Present: resb 4
|
||||
.GetBuffer: resb 4
|
||||
.SetFullscreenState: resb 4
|
||||
.GetFullscreenState: resb 4
|
||||
.GetDesc: resb 4
|
||||
.ResizeBuffers: resb 4
|
||||
.ResizeTarget: resb 4
|
||||
.GetContainingOutput: resb 4
|
||||
.GetFrameStatistics: resb 4
|
||||
.GetLastPresentCount: resb 4
|
||||
endstruc
|
||||
|
||||
struc IDXGIFactory
|
||||
.QueryInterface: resb 4
|
||||
.AddRef: resb 4
|
||||
.Release: resb 4
|
||||
.SetPrivateData: resb 4
|
||||
.SetPrivateDataInterface: resb 4
|
||||
.GetPrivateData: resb 4
|
||||
.GetParent: resb 4
|
||||
.EnumAdapters: resb 4
|
||||
.MakeWindowAssociation: resb 4
|
||||
.GetWindowAssociation: resb 4
|
||||
.CreateSwapChain: resb 4
|
||||
.CreateSoftwareAdapter: resb 4
|
||||
endstruc
|
||||
|
||||
struc IDXGIDevice
|
||||
.QueryInterface: resb 4
|
||||
.AddRef: resb 4
|
||||
.Release: resb 4
|
||||
.SetPrivateData: resb 4
|
||||
.SetPrivateDataInterface: resb 4
|
||||
.GetPrivateData: resb 4
|
||||
.GetParent: resb 4
|
||||
.GetAdapter: resb 4
|
||||
.CreateSurface: resb 4
|
||||
.QueryResourceResidency: resb 4
|
||||
.SetGPUThreadPriority: resb 4
|
||||
.GetGPUThreadPriority: resb 4
|
||||
endstruc
|
||||
|
||||
struc IDXGIFactory1
|
||||
.QueryInterface: resb 4
|
||||
.AddRef: resb 4
|
||||
.Release: resb 4
|
||||
.SetPrivateData: resb 4
|
||||
.SetPrivateDataInterface: resb 4
|
||||
.GetPrivateData: resb 4
|
||||
.GetParent: resb 4
|
||||
.EnumAdapters: resb 4
|
||||
.MakeWindowAssociation: resb 4
|
||||
.GetWindowAssociation: resb 4
|
||||
.CreateSwapChain: resb 4
|
||||
.CreateSoftwareAdapter: resb 4
|
||||
.EnumAdapters1: resb 4
|
||||
.IsCurrent: resb 4
|
||||
endstruc
|
||||
|
||||
struc IDXGIAdapter1
|
||||
.QueryInterface: resb 4
|
||||
.AddRef: resb 4
|
||||
.Release: resb 4
|
||||
.SetPrivateData: resb 4
|
||||
.SetPrivateDataInterface: resb 4
|
||||
.GetPrivateData: resb 4
|
||||
.GetParent: resb 4
|
||||
.EnumOutputs: resb 4
|
||||
.GetDesc: resb 4
|
||||
.CheckInterfaceSupport: resb 4
|
||||
.GetDesc1: resb 4
|
||||
endstruc
|
||||
|
||||
struc IDXGIDevice1
|
||||
.QueryInterface: resb 4
|
||||
.AddRef: resb 4
|
||||
.Release: resb 4
|
||||
.SetPrivateData: resb 4
|
||||
.SetPrivateDataInterface: resb 4
|
||||
.GetPrivateData: resb 4
|
||||
.GetParent: resb 4
|
||||
.GetAdapter: resb 4
|
||||
.CreateSurface: resb 4
|
||||
.QueryResourceResidency: resb 4
|
||||
.SetGPUThreadPriority: resb 4
|
||||
.GetGPUThreadPriority: resb 4
|
||||
.SetMaximumFrameLatency: resb 4
|
||||
.GetMaximumFrameLatency: resb 4
|
||||
endstruc
|
||||
@@ -0,0 +1,131 @@
|
||||
//
|
||||
// Copyright (C) Microsoft. All rights reserved.
|
||||
//
|
||||
|
||||
#ifndef __dxgiformat_h__
|
||||
#define __dxgiformat_h__
|
||||
|
||||
#define DXGI_FORMAT_DEFINED 1
|
||||
|
||||
typedef enum DXGI_FORMAT
|
||||
{
|
||||
DXGI_FORMAT_UNKNOWN = 0,
|
||||
DXGI_FORMAT_R32G32B32A32_TYPELESS = 1,
|
||||
DXGI_FORMAT_R32G32B32A32_FLOAT = 2,
|
||||
DXGI_FORMAT_R32G32B32A32_UINT = 3,
|
||||
DXGI_FORMAT_R32G32B32A32_SINT = 4,
|
||||
DXGI_FORMAT_R32G32B32_TYPELESS = 5,
|
||||
DXGI_FORMAT_R32G32B32_FLOAT = 6,
|
||||
DXGI_FORMAT_R32G32B32_UINT = 7,
|
||||
DXGI_FORMAT_R32G32B32_SINT = 8,
|
||||
DXGI_FORMAT_R16G16B16A16_TYPELESS = 9,
|
||||
DXGI_FORMAT_R16G16B16A16_FLOAT = 10,
|
||||
DXGI_FORMAT_R16G16B16A16_UNORM = 11,
|
||||
DXGI_FORMAT_R16G16B16A16_UINT = 12,
|
||||
DXGI_FORMAT_R16G16B16A16_SNORM = 13,
|
||||
DXGI_FORMAT_R16G16B16A16_SINT = 14,
|
||||
DXGI_FORMAT_R32G32_TYPELESS = 15,
|
||||
DXGI_FORMAT_R32G32_FLOAT = 16,
|
||||
DXGI_FORMAT_R32G32_UINT = 17,
|
||||
DXGI_FORMAT_R32G32_SINT = 18,
|
||||
DXGI_FORMAT_R32G8X24_TYPELESS = 19,
|
||||
DXGI_FORMAT_D32_FLOAT_S8X24_UINT = 20,
|
||||
DXGI_FORMAT_R32_FLOAT_X8X24_TYPELESS = 21,
|
||||
DXGI_FORMAT_X32_TYPELESS_G8X24_UINT = 22,
|
||||
DXGI_FORMAT_R10G10B10A2_TYPELESS = 23,
|
||||
DXGI_FORMAT_R10G10B10A2_UNORM = 24,
|
||||
DXGI_FORMAT_R10G10B10A2_UINT = 25,
|
||||
DXGI_FORMAT_R11G11B10_FLOAT = 26,
|
||||
DXGI_FORMAT_R8G8B8A8_TYPELESS = 27,
|
||||
DXGI_FORMAT_R8G8B8A8_UNORM = 28,
|
||||
DXGI_FORMAT_R8G8B8A8_UNORM_SRGB = 29,
|
||||
DXGI_FORMAT_R8G8B8A8_UINT = 30,
|
||||
DXGI_FORMAT_R8G8B8A8_SNORM = 31,
|
||||
DXGI_FORMAT_R8G8B8A8_SINT = 32,
|
||||
DXGI_FORMAT_R16G16_TYPELESS = 33,
|
||||
DXGI_FORMAT_R16G16_FLOAT = 34,
|
||||
DXGI_FORMAT_R16G16_UNORM = 35,
|
||||
DXGI_FORMAT_R16G16_UINT = 36,
|
||||
DXGI_FORMAT_R16G16_SNORM = 37,
|
||||
DXGI_FORMAT_R16G16_SINT = 38,
|
||||
DXGI_FORMAT_R32_TYPELESS = 39,
|
||||
DXGI_FORMAT_D32_FLOAT = 40,
|
||||
DXGI_FORMAT_R32_FLOAT = 41,
|
||||
DXGI_FORMAT_R32_UINT = 42,
|
||||
DXGI_FORMAT_R32_SINT = 43,
|
||||
DXGI_FORMAT_R24G8_TYPELESS = 44,
|
||||
DXGI_FORMAT_D24_UNORM_S8_UINT = 45,
|
||||
DXGI_FORMAT_R24_UNORM_X8_TYPELESS = 46,
|
||||
DXGI_FORMAT_X24_TYPELESS_G8_UINT = 47,
|
||||
DXGI_FORMAT_R8G8_TYPELESS = 48,
|
||||
DXGI_FORMAT_R8G8_UNORM = 49,
|
||||
DXGI_FORMAT_R8G8_UINT = 50,
|
||||
DXGI_FORMAT_R8G8_SNORM = 51,
|
||||
DXGI_FORMAT_R8G8_SINT = 52,
|
||||
DXGI_FORMAT_R16_TYPELESS = 53,
|
||||
DXGI_FORMAT_R16_FLOAT = 54,
|
||||
DXGI_FORMAT_D16_UNORM = 55,
|
||||
DXGI_FORMAT_R16_UNORM = 56,
|
||||
DXGI_FORMAT_R16_UINT = 57,
|
||||
DXGI_FORMAT_R16_SNORM = 58,
|
||||
DXGI_FORMAT_R16_SINT = 59,
|
||||
DXGI_FORMAT_R8_TYPELESS = 60,
|
||||
DXGI_FORMAT_R8_UNORM = 61,
|
||||
DXGI_FORMAT_R8_UINT = 62,
|
||||
DXGI_FORMAT_R8_SNORM = 63,
|
||||
DXGI_FORMAT_R8_SINT = 64,
|
||||
DXGI_FORMAT_A8_UNORM = 65,
|
||||
DXGI_FORMAT_R1_UNORM = 66,
|
||||
DXGI_FORMAT_R9G9B9E5_SHAREDEXP = 67,
|
||||
DXGI_FORMAT_R8G8_B8G8_UNORM = 68,
|
||||
DXGI_FORMAT_G8R8_G8B8_UNORM = 69,
|
||||
DXGI_FORMAT_BC1_TYPELESS = 70,
|
||||
DXGI_FORMAT_BC1_UNORM = 71,
|
||||
DXGI_FORMAT_BC1_UNORM_SRGB = 72,
|
||||
DXGI_FORMAT_BC2_TYPELESS = 73,
|
||||
DXGI_FORMAT_BC2_UNORM = 74,
|
||||
DXGI_FORMAT_BC2_UNORM_SRGB = 75,
|
||||
DXGI_FORMAT_BC3_TYPELESS = 76,
|
||||
DXGI_FORMAT_BC3_UNORM = 77,
|
||||
DXGI_FORMAT_BC3_UNORM_SRGB = 78,
|
||||
DXGI_FORMAT_BC4_TYPELESS = 79,
|
||||
DXGI_FORMAT_BC4_UNORM = 80,
|
||||
DXGI_FORMAT_BC4_SNORM = 81,
|
||||
DXGI_FORMAT_BC5_TYPELESS = 82,
|
||||
DXGI_FORMAT_BC5_UNORM = 83,
|
||||
DXGI_FORMAT_BC5_SNORM = 84,
|
||||
DXGI_FORMAT_B5G6R5_UNORM = 85,
|
||||
DXGI_FORMAT_B5G5R5A1_UNORM = 86,
|
||||
DXGI_FORMAT_B8G8R8A8_UNORM = 87,
|
||||
DXGI_FORMAT_B8G8R8X8_UNORM = 88,
|
||||
DXGI_FORMAT_R10G10B10_XR_BIAS_A2_UNORM = 89,
|
||||
DXGI_FORMAT_B8G8R8A8_TYPELESS = 90,
|
||||
DXGI_FORMAT_B8G8R8A8_UNORM_SRGB = 91,
|
||||
DXGI_FORMAT_B8G8R8X8_TYPELESS = 92,
|
||||
DXGI_FORMAT_B8G8R8X8_UNORM_SRGB = 93,
|
||||
DXGI_FORMAT_BC6H_TYPELESS = 94,
|
||||
DXGI_FORMAT_BC6H_UF16 = 95,
|
||||
DXGI_FORMAT_BC6H_SF16 = 96,
|
||||
DXGI_FORMAT_BC7_TYPELESS = 97,
|
||||
DXGI_FORMAT_BC7_UNORM = 98,
|
||||
DXGI_FORMAT_BC7_UNORM_SRGB = 99,
|
||||
DXGI_FORMAT_AYUV = 100,
|
||||
DXGI_FORMAT_Y410 = 101,
|
||||
DXGI_FORMAT_Y416 = 102,
|
||||
DXGI_FORMAT_NV12 = 103,
|
||||
DXGI_FORMAT_P010 = 104,
|
||||
DXGI_FORMAT_P016 = 105,
|
||||
DXGI_FORMAT_420_OPAQUE = 106,
|
||||
DXGI_FORMAT_YUY2 = 107,
|
||||
DXGI_FORMAT_Y210 = 108,
|
||||
DXGI_FORMAT_Y216 = 109,
|
||||
DXGI_FORMAT_NV11 = 110,
|
||||
DXGI_FORMAT_AI44 = 111,
|
||||
DXGI_FORMAT_IA44 = 112,
|
||||
DXGI_FORMAT_P8 = 113,
|
||||
DXGI_FORMAT_A8P8 = 114,
|
||||
DXGI_FORMAT_B4G4R4A4_UNORM = 115,
|
||||
DXGI_FORMAT_FORCE_UINT = 0xffffffff
|
||||
} DXGI_FORMAT;
|
||||
|
||||
#endif // __dxgiformat_h__
|
||||
113
hgplus/las/framework-dx11-nasm/tools/headerGenerator/dxgitype.h
Normal file
113
hgplus/las/framework-dx11-nasm/tools/headerGenerator/dxgitype.h
Normal file
@@ -0,0 +1,113 @@
|
||||
//
|
||||
// Copyright (C) Microsoft. All rights reserved.
|
||||
//
|
||||
#ifndef __dxgitype_h__
|
||||
#define __dxgitype_h__
|
||||
|
||||
|
||||
#include "dxgiformat.h"
|
||||
|
||||
#define _FACDXGI 0x87a
|
||||
#define MAKE_DXGI_HRESULT(code) MAKE_HRESULT(1, _FACDXGI, code)
|
||||
#define MAKE_DXGI_STATUS(code) MAKE_HRESULT(0, _FACDXGI, code)
|
||||
|
||||
// DXGI error messages have moved to winerror.h
|
||||
|
||||
#define DXGI_CPU_ACCESS_NONE ( 0 )
|
||||
#define DXGI_CPU_ACCESS_DYNAMIC ( 1 )
|
||||
#define DXGI_CPU_ACCESS_READ_WRITE ( 2 )
|
||||
#define DXGI_CPU_ACCESS_SCRATCH ( 3 )
|
||||
#define DXGI_CPU_ACCESS_FIELD 15
|
||||
|
||||
#define DXGI_USAGE_SHADER_INPUT ( 1L << (0 + 4) )
|
||||
#define DXGI_USAGE_RENDER_TARGET_OUTPUT ( 1L << (1 + 4) )
|
||||
#define DXGI_USAGE_BACK_BUFFER ( 1L << (2 + 4) )
|
||||
#define DXGI_USAGE_SHARED ( 1L << (3 + 4) )
|
||||
#define DXGI_USAGE_READ_ONLY ( 1L << (4 + 4) )
|
||||
#define DXGI_USAGE_DISCARD_ON_PRESENT ( 1L << (5 + 4) )
|
||||
#define DXGI_USAGE_UNORDERED_ACCESS ( 1L << (6 + 4) )
|
||||
|
||||
typedef struct DXGI_RGB
|
||||
{
|
||||
float Red;
|
||||
float Green;
|
||||
float Blue;
|
||||
} DXGI_RGB;
|
||||
|
||||
#ifndef D3DCOLORVALUE_DEFINED
|
||||
typedef struct _D3DCOLORVALUE {
|
||||
float r;
|
||||
float g;
|
||||
float b;
|
||||
float a;
|
||||
} D3DCOLORVALUE;
|
||||
|
||||
#define D3DCOLORVALUE_DEFINED
|
||||
#endif
|
||||
|
||||
typedef D3DCOLORVALUE DXGI_RGBA;
|
||||
|
||||
typedef struct DXGI_GAMMA_CONTROL
|
||||
{
|
||||
DXGI_RGB Scale;
|
||||
DXGI_RGB Offset;
|
||||
DXGI_RGB GammaCurve[ 1025 ];
|
||||
} DXGI_GAMMA_CONTROL;
|
||||
|
||||
typedef struct DXGI_GAMMA_CONTROL_CAPABILITIES
|
||||
{
|
||||
BOOL ScaleAndOffsetSupported;
|
||||
float MaxConvertedValue;
|
||||
float MinConvertedValue;
|
||||
UINT NumGammaControlPoints;
|
||||
float ControlPointPositions[1025];
|
||||
} DXGI_GAMMA_CONTROL_CAPABILITIES;
|
||||
|
||||
typedef struct DXGI_RATIONAL
|
||||
{
|
||||
UINT Numerator;
|
||||
UINT Denominator;
|
||||
} DXGI_RATIONAL;
|
||||
|
||||
typedef enum DXGI_MODE_SCANLINE_ORDER
|
||||
{
|
||||
DXGI_MODE_SCANLINE_ORDER_UNSPECIFIED = 0,
|
||||
DXGI_MODE_SCANLINE_ORDER_PROGRESSIVE = 1,
|
||||
DXGI_MODE_SCANLINE_ORDER_UPPER_FIELD_FIRST = 2,
|
||||
DXGI_MODE_SCANLINE_ORDER_LOWER_FIELD_FIRST = 3
|
||||
} DXGI_MODE_SCANLINE_ORDER;
|
||||
|
||||
typedef enum DXGI_MODE_SCALING
|
||||
{
|
||||
DXGI_MODE_SCALING_UNSPECIFIED = 0,
|
||||
DXGI_MODE_SCALING_CENTERED = 1,
|
||||
DXGI_MODE_SCALING_STRETCHED = 2
|
||||
} DXGI_MODE_SCALING;
|
||||
|
||||
typedef enum DXGI_MODE_ROTATION
|
||||
{
|
||||
DXGI_MODE_ROTATION_UNSPECIFIED = 0,
|
||||
DXGI_MODE_ROTATION_IDENTITY = 1,
|
||||
DXGI_MODE_ROTATION_ROTATE90 = 2,
|
||||
DXGI_MODE_ROTATION_ROTATE180 = 3,
|
||||
DXGI_MODE_ROTATION_ROTATE270 = 4
|
||||
} DXGI_MODE_ROTATION;
|
||||
|
||||
typedef struct DXGI_MODE_DESC
|
||||
{
|
||||
UINT Width;
|
||||
UINT Height;
|
||||
DXGI_RATIONAL RefreshRate;
|
||||
DXGI_FORMAT Format;
|
||||
DXGI_MODE_SCANLINE_ORDER ScanlineOrdering;
|
||||
DXGI_MODE_SCALING Scaling;
|
||||
} DXGI_MODE_DESC;
|
||||
|
||||
typedef struct DXGI_SAMPLE_DESC
|
||||
{
|
||||
UINT Count;
|
||||
UINT Quality;
|
||||
} DXGI_SAMPLE_DESC;
|
||||
|
||||
#endif // __dxgitype_h__
|
||||
|
||||
@@ -0,0 +1,669 @@
|
||||
#include <Windows.h>
|
||||
|
||||
#include <iostream>
|
||||
#include <fstream>
|
||||
#include <vector>
|
||||
#include <string>
|
||||
#include <regex>
|
||||
|
||||
typedef UINT uint;
|
||||
|
||||
#define LogMessage(...) do { fprintf(stderr, "[%s:%d]", __FILE__, __LINE__); fprintf(stderr, __VA_ARGS__); } while(0);
|
||||
|
||||
#define SOURCE_LINE_FLAG_NONE 0
|
||||
#define SOURCE_LINE_FLAG_DISCARD 1
|
||||
#define SOURCE_LINE_FLAG_FORCE_NEWLINE 2
|
||||
|
||||
struct SourceLine {
|
||||
SourceLine(uint l, const std::string& s) : lineNumber(l), string(s), flag(SOURCE_LINE_FLAG_NONE) {}
|
||||
uint lineNumber;
|
||||
std::string string;
|
||||
uint flag;
|
||||
};
|
||||
|
||||
struct EnumBlock {
|
||||
std::string enumName;
|
||||
std::vector<std::pair<std::string,std::string>> enumEntries;
|
||||
};
|
||||
|
||||
struct InterfaceBlock {
|
||||
std::string interfaceName;
|
||||
std::string interfaceGUID;
|
||||
std::vector<std::string> interfaceMethods;
|
||||
|
||||
};
|
||||
|
||||
struct StructBlock {
|
||||
std::string structName;
|
||||
std::vector<std::pair<std::string, std::string>> structEntries;
|
||||
};
|
||||
|
||||
struct DefineBlock {
|
||||
std::vector<std::pair<std::string,std::string>> defines;
|
||||
};
|
||||
|
||||
static size_t getFileSize(const char* filename) {
|
||||
FILE* f = fopen(filename, "rb");
|
||||
if (f == NULL) return 0;
|
||||
fseek(f, 0, SEEK_END);
|
||||
size_t size = ftell(f);
|
||||
fclose(f);
|
||||
return size;
|
||||
}
|
||||
|
||||
static bool readLinesFromFile(const char* filename, std::vector<SourceLine>& lines) {
|
||||
std::ifstream ifs;
|
||||
ifs.open(filename, std::ios::in);
|
||||
if (!ifs.good()) {
|
||||
LogMessage("readLinesFromFile() - could not open file %s", filename);
|
||||
return false;
|
||||
}
|
||||
|
||||
std::string str;
|
||||
uint lineNumber = 0;
|
||||
while (ifs.good() && getline(ifs, str))
|
||||
lines.push_back(SourceLine(++lineNumber, str));
|
||||
ifs.close();
|
||||
return true;
|
||||
}
|
||||
|
||||
std::string trim(std::string& s) {
|
||||
s.erase(0, s.find_first_not_of(" \t\n\r\v\f"));
|
||||
s.erase(s.find_last_not_of(" \t\n\r\v\f") + 1);
|
||||
return s;
|
||||
}
|
||||
|
||||
void inplaceFindAndReplace(std::string& src, const std::string& find, const std::string& replace) {
|
||||
std::string::size_type j, s = 0;
|
||||
while ((j = src.find(find, s)) != std::string::npos) {
|
||||
src.replace(j, find.length(), replace);
|
||||
s = j + replace.length();
|
||||
}
|
||||
}
|
||||
|
||||
std::string regexReplace(const std::string& src, const std::string& rgx, const std::string& fmt) {
|
||||
return std::tr1::regex_replace(src, std::tr1::regex(rgx), fmt);
|
||||
}
|
||||
|
||||
static void stripLines(std::vector<SourceLine>& lines) {
|
||||
bool removeComments = true;
|
||||
bool removeFiles = true;
|
||||
bool removeStrings = true;
|
||||
bool removeSpaces = true;
|
||||
bool removeLocations = true;
|
||||
bool removeTabulators = true;
|
||||
bool replaceTemp = true;
|
||||
const char* tempString = "%temp";
|
||||
const char* tempReplacementString = "%_";
|
||||
|
||||
uint N = lines.size();
|
||||
for (uint i = 0; i < N; ++i) {
|
||||
SourceLine& sl = lines[i];
|
||||
|
||||
// Trim left and right whitespaces
|
||||
trim(sl.string);
|
||||
|
||||
if (sl.string.empty()) {
|
||||
// Remove empty lines
|
||||
sl.flag |= SOURCE_LINE_FLAG_DISCARD;
|
||||
} else if (sl.string.find("//") == 0 && removeComments) {
|
||||
// Remove comments
|
||||
sl.flag |= SOURCE_LINE_FLAG_DISCARD;
|
||||
} else if (sl.string.find(".file") == 0 && removeFiles) {
|
||||
// Remove .file
|
||||
sl.flag |= SOURCE_LINE_FLAG_DISCARD;
|
||||
} else if (sl.string.find(".b8 $str") != std::string::npos && removeStrings) {
|
||||
// Remove strings
|
||||
sl.flag |= SOURCE_LINE_FLAG_DISCARD;
|
||||
} else if (sl.string.find(".loc") == 0 && removeLocations) {
|
||||
// Remove locations
|
||||
sl.flag |= SOURCE_LINE_FLAG_DISCARD;
|
||||
} else {
|
||||
// Remove all tabs
|
||||
if (removeTabulators)
|
||||
inplaceFindAndReplace(sl.string, "\t", "");
|
||||
|
||||
if (removeSpaces) {
|
||||
// Remove possible duplicate spaces
|
||||
inplaceFindAndReplace(sl.string, " ", " ");
|
||||
inplaceFindAndReplace(sl.string, " ", " ");
|
||||
|
||||
// Remove space after ','
|
||||
inplaceFindAndReplace(sl.string, ", ", ",");
|
||||
|
||||
// Remove space before '%'
|
||||
inplaceFindAndReplace(sl.string, " %", "%");
|
||||
|
||||
// Remove space before '['
|
||||
inplaceFindAndReplace(sl.string, " [", "[");
|
||||
|
||||
// Remove space before '.'
|
||||
//if (sl.string.find(".align") == std::string::npos)
|
||||
// inplaceFindAndReplace(sl.string, " .", ".");
|
||||
sl.string = regexReplace(sl.string, "([A-Za-z_]+)(\\s+)(\\.)", "$1$3");
|
||||
|
||||
}
|
||||
|
||||
if (replaceTemp) {
|
||||
inplaceFindAndReplace(sl.string, tempString, tempReplacementString);
|
||||
}
|
||||
|
||||
// If the string is empty, discard the line
|
||||
if (sl.string.empty()) {
|
||||
sl.flag |= SOURCE_LINE_FLAG_DISCARD;
|
||||
}
|
||||
}
|
||||
|
||||
if ((sl.flag & SOURCE_LINE_FLAG_DISCARD) == 0) {
|
||||
if (sl.string.find(".version") == 0 ||
|
||||
sl.string.find(".target") == 0 ||
|
||||
sl.string.find(".address_size") == 0) {
|
||||
sl.flag |= SOURCE_LINE_FLAG_FORCE_NEWLINE;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static bool isValueDefine(const std::string& s, std::string& name, std::string& value) {
|
||||
size_t definePos = s.find("#define");
|
||||
|
||||
if (definePos != std::string::npos &&
|
||||
s.find("__") == std::string::npos && s.find("\\") == std::string::npos) {
|
||||
|
||||
std::string tmp = s.substr(definePos+std::string("#define").size());
|
||||
trim(tmp);
|
||||
size_t whiteSpacePos = tmp.find_first_of(" \t\v");
|
||||
if (whiteSpacePos == std::string::npos) { // || tmp.find("MAKE_D3D11") != std::string::npos || tmp.find("MAKE_DXGI") != std::string::npos) {
|
||||
return false;
|
||||
}
|
||||
|
||||
name = tmp.substr(0, whiteSpacePos);
|
||||
tmp = tmp.substr(whiteSpacePos);
|
||||
trim(tmp);
|
||||
|
||||
inplaceFindAndReplace(tmp, " ", " ");
|
||||
inplaceFindAndReplace(tmp, " ", " ");
|
||||
inplaceFindAndReplace(tmp, " (", "(");
|
||||
inplaceFindAndReplace(tmp, "( ", "(");
|
||||
inplaceFindAndReplace(tmp, " )", ")");
|
||||
inplaceFindAndReplace(tmp, ") ", ")");
|
||||
inplaceFindAndReplace(tmp, "| ", "|");
|
||||
inplaceFindAndReplace(tmp, " |", "|");
|
||||
inplaceFindAndReplace(tmp, " <<", "<<");
|
||||
inplaceFindAndReplace(tmp, "<< ", "<<");
|
||||
inplaceFindAndReplace(tmp, " >>", ">>");
|
||||
inplaceFindAndReplace(tmp, ">> ", ">>");
|
||||
tmp = regexReplace(tmp, "(\\d+)(UL)", "$1");
|
||||
tmp = regexReplace(tmp, "(\\d+)(L)", "$1");
|
||||
tmp = regexReplace(tmp, "(\\d+)(\\.*f)", "$1");
|
||||
value = tmp;
|
||||
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
static bool isInterfaceDeclaration(const std::string& s, std::string& interfaceName) {
|
||||
size_t typedefPos = s.find("typedef");
|
||||
size_t structPos = s.find("struct");
|
||||
size_t vtblPos = s.find("Vtbl");
|
||||
|
||||
if (typedefPos != std::string::npos && structPos != std::string::npos && vtblPos != std::string::npos) {
|
||||
structPos += std::string("struct").size();
|
||||
std::string tmp = s.substr(structPos, vtblPos - structPos);
|
||||
trim(tmp);
|
||||
//std::cerr << "#" << tmp << "#" << std::endl;
|
||||
interfaceName = tmp;
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
static bool isBeginInterface(const std::string& s) {
|
||||
size_t beginInterfacePos = s.find("BEGIN_INTERFACE");
|
||||
if (beginInterfacePos != std::string::npos) {
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
static bool isFunctionDeclaration(const std::string& s, std::string& functionName) {
|
||||
std::string stringSTDMETHODCALLTYPE("STDMETHODCALLTYPE");
|
||||
size_t stdcallPos = s.find(stringSTDMETHODCALLTYPE);
|
||||
if (stdcallPos != std::string::npos) {
|
||||
std::string tmp = s.substr(stdcallPos + stringSTDMETHODCALLTYPE.size());
|
||||
size_t ptrPos = tmp.find("*")+1;
|
||||
size_t bracketPos = tmp.find(")");
|
||||
tmp = tmp.substr(ptrPos, bracketPos - ptrPos);
|
||||
functionName = trim(tmp);
|
||||
//std::cerr << "#" << tmp << "#" << std::endl;
|
||||
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
|
||||
}
|
||||
|
||||
static bool isEndInterface(const std::string& s) {
|
||||
size_t beginInterfacePos = s.find("END_INTERFACE");
|
||||
if (beginInterfacePos != std::string::npos) {
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
static bool isStructDeclaration(const std::string& s, std::string& structName) {
|
||||
size_t typedefPos = s.find("typedef");
|
||||
size_t structPos = s.find("struct");
|
||||
size_t vtblPos = s.find("Vtbl");
|
||||
|
||||
if (typedefPos != std::string::npos && structPos != std::string::npos && vtblPos == std::string::npos) {
|
||||
structPos += std::string("struct").size();
|
||||
std::string tmp = s.substr(structPos);
|
||||
trim(tmp);
|
||||
//std::cerr << "#" << tmp << "#" << std::endl;
|
||||
structName = tmp;
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
static bool isEnum(const std::string& s, std::string& enumName) {
|
||||
size_t enumPos = s.find("enum");
|
||||
if (enumPos != std::string::npos) {
|
||||
std::string tmp = s.substr(enumPos + std::string("enum").size());
|
||||
trim(tmp);
|
||||
enumName = tmp;
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
static bool isValidEnumEntry(const std::string& s, std::string& name, std::string& value) {
|
||||
size_t equalSignPos = s.find("=");
|
||||
if (equalSignPos == std::string::npos)
|
||||
return false;
|
||||
|
||||
std::string tmp = s.substr(0, equalSignPos);
|
||||
trim(tmp);
|
||||
name = tmp;
|
||||
|
||||
tmp = s.substr(equalSignPos+1);
|
||||
|
||||
inplaceFindAndReplace(tmp, ",", " ");
|
||||
inplaceFindAndReplace(tmp, " ", " ");
|
||||
inplaceFindAndReplace(tmp, " ", " ");
|
||||
inplaceFindAndReplace(tmp, " (", "(");
|
||||
inplaceFindAndReplace(tmp, "( ", "(");
|
||||
inplaceFindAndReplace(tmp, " )", ")");
|
||||
inplaceFindAndReplace(tmp, ") ", ")");
|
||||
inplaceFindAndReplace(tmp, "| ", "|");
|
||||
inplaceFindAndReplace(tmp, " |", "|");
|
||||
inplaceFindAndReplace(tmp, " <<", "<<");
|
||||
inplaceFindAndReplace(tmp, "<< ", "<<");
|
||||
inplaceFindAndReplace(tmp, " >>", ">>");
|
||||
inplaceFindAndReplace(tmp, ">> ", ">>");
|
||||
tmp = regexReplace(tmp, "(\\d+)(UL)", "$1");
|
||||
tmp = regexReplace(tmp, "(\\d+)(L)", "$1");
|
||||
tmp = regexReplace(tmp, "(\\d+)(\\.*f)", "$1");
|
||||
|
||||
trim(tmp);
|
||||
|
||||
value = tmp;
|
||||
|
||||
//size_t commaPos = s.find(",");
|
||||
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
static bool isEnumBegin(const std::string& s) {
|
||||
if (s.find("{") != std::string::npos)
|
||||
return true;
|
||||
return false;
|
||||
}
|
||||
|
||||
static bool isEnumEnd(const std::string& s) {
|
||||
if (s.find("}") != std::string::npos)
|
||||
return true;
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
//static
|
||||
|
||||
static void parseInterfaces(std::vector<SourceLine>& lines, std::vector<InterfaceBlock>& interfaces, std::vector<EnumBlock>& enums, DefineBlock& defineBlock) {
|
||||
bool foundInterfaceBlock = false;
|
||||
bool foundBlockBegin = false;
|
||||
bool foundEnum = false;
|
||||
bool foundEnumBlockBegin = false;
|
||||
|
||||
|
||||
bool end = false;
|
||||
int currentLineIndex = 0;
|
||||
|
||||
std::string interfaceName;
|
||||
std::string methodName;
|
||||
std::string enumName;
|
||||
std::string structName;
|
||||
|
||||
size_t N = lines.size();
|
||||
int currentInterfaceIndex = -1;
|
||||
int currentEnumIndex = -1;
|
||||
|
||||
for (size_t i = 0; i < N; ++i) {
|
||||
SourceLine& sl = lines[i];
|
||||
// Trim left and right whitespaces
|
||||
trim(sl.string);
|
||||
{ // Interfaces
|
||||
if (isInterfaceDeclaration(sl.string, interfaceName)) {
|
||||
//std::cout << "interface " << interfaceName << std::endl;
|
||||
foundInterfaceBlock = true;
|
||||
}
|
||||
|
||||
if (isBeginInterface(sl.string) && foundInterfaceBlock) {
|
||||
foundBlockBegin = true;
|
||||
|
||||
InterfaceBlock ib;
|
||||
ib.interfaceMethods.clear();
|
||||
ib.interfaceName = interfaceName;
|
||||
interfaces.push_back(ib);
|
||||
|
||||
currentInterfaceIndex++;
|
||||
}
|
||||
|
||||
if (foundBlockBegin) {
|
||||
if (isFunctionDeclaration(sl.string, methodName)) {
|
||||
//std::cout << "\t" << methodName << std::endl;
|
||||
if (foundBlockBegin) {
|
||||
InterfaceBlock& ib = interfaces.at(currentInterfaceIndex);
|
||||
ib.interfaceMethods.push_back(methodName);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (isEndInterface(sl.string)) {
|
||||
foundInterfaceBlock = false;
|
||||
foundBlockBegin = false;
|
||||
//std::cout << std::endl;
|
||||
}
|
||||
}
|
||||
|
||||
{ // Structs
|
||||
if (isStructDeclaration(sl.string, structName)) {
|
||||
std::cout << structName << std::endl;
|
||||
}
|
||||
}
|
||||
|
||||
{ // Defines
|
||||
std::string defineName, defineValue;
|
||||
if (isValueDefine(sl.string, defineName, defineValue)) {
|
||||
//std::cout << defineName<< " " << defineValue << std::endl;
|
||||
defineBlock.defines.push_back(std::make_pair(defineName, defineValue));
|
||||
}
|
||||
}
|
||||
|
||||
{
|
||||
|
||||
if (isEnum(sl.string, enumName)) {
|
||||
foundEnum = true;
|
||||
//std::cout << enumName << std::endl;
|
||||
}
|
||||
|
||||
if (foundEnum) {
|
||||
if (isEnumBegin(sl.string)) {
|
||||
foundEnumBlockBegin = true;
|
||||
EnumBlock eb;
|
||||
eb.enumEntries.clear();
|
||||
eb.enumName = enumName;
|
||||
enums.push_back(eb);
|
||||
currentEnumIndex++;
|
||||
}
|
||||
}
|
||||
|
||||
if (foundEnumBlockBegin) {
|
||||
std::string enumElementName, enumElementValue;
|
||||
if (isValidEnumEntry(sl.string, enumElementName, enumElementValue)) {
|
||||
//std::cout << enumElementName << " " << enumElementValue << std::endl;
|
||||
EnumBlock& eb = enums.at(currentEnumIndex);
|
||||
eb.enumEntries.push_back(make_pair(enumElementName, enumElementValue));
|
||||
}
|
||||
}
|
||||
|
||||
if (isEnumEnd(sl.string)) {
|
||||
foundEnum = false;
|
||||
foundEnumBlockBegin = false;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
size_t numInterfaces = interfaces.size();
|
||||
|
||||
}
|
||||
|
||||
|
||||
static bool writeLinesToFile(const char* filename, const std::vector<SourceLine>& lines) {
|
||||
std::ofstream ofs;
|
||||
ofs.open(filename, std::ios::out);
|
||||
if (!ofs.good()) {
|
||||
LogMessage("writeLinesToFile() - could not open file %s\n", filename);
|
||||
return false;
|
||||
}
|
||||
|
||||
uint N = lines.size();
|
||||
for (uint i = 0; i < N; ++i) {
|
||||
const SourceLine& sl = lines[i];
|
||||
if (sl.flag != SOURCE_LINE_FLAG_DISCARD) {
|
||||
ofs << sl.string;
|
||||
if (sl.flag & SOURCE_LINE_FLAG_FORCE_NEWLINE)
|
||||
ofs << std::endl;
|
||||
}
|
||||
}
|
||||
ofs.close();
|
||||
return true;
|
||||
}
|
||||
|
||||
static bool writeInterfacesToFileASM(const char* filename, const std::vector<InterfaceBlock>& interfaces, const std::vector<EnumBlock>& enums, const DefineBlock& defineBlock) {
|
||||
std::ofstream ofs;
|
||||
ofs.open(filename, std::ios::out);
|
||||
if (!ofs.good()) {
|
||||
LogMessage("writeLinesToFile() - could not open file %s\n", filename);
|
||||
return false;
|
||||
}
|
||||
ofs << "; " << filename << " by las/mercury" << std::endl << std::endl;
|
||||
if (std::string(filename).find("d3d11") != std::string::npos) {
|
||||
//ofs << "; " << filename << " by las/mercury" << std::endl;
|
||||
ofs << "extern _D3D11CreateDeviceAndSwapChain@48" << std::endl;
|
||||
ofs << "extern _D3DCompile@44" << std::endl;
|
||||
ofs << std::endl;
|
||||
/*
|
||||
typedef struct D3D11_TEXTURE2D_DESC
|
||||
{
|
||||
UINT Width;
|
||||
UINT Height;
|
||||
UINT MipLevels;
|
||||
UINT ArraySize;
|
||||
DXGI_FORMAT Format;
|
||||
DXGI_SAMPLE_DESC SampleDesc;
|
||||
D3D11_USAGE Usage;
|
||||
UINT BindFlags;
|
||||
UINT CPUAccessFlags;
|
||||
UINT MiscFlags;
|
||||
} D3D11_TEXTURE2D_DESC;
|
||||
*/
|
||||
std::string struc = std::string("");
|
||||
|
||||
struc += "struc D3D11_BUFFER_DESC\n"
|
||||
"\t.ByteWidth: resd 1\n"
|
||||
"\t.Usage: resd 1\n"
|
||||
"\t.BindFlags: resd 1\n"
|
||||
"\t.CPUAccessFlags: resd 1\n"
|
||||
"\t.MiscFlags: resd 1\n"
|
||||
"\t.StructureByteStride: resd 1\n"
|
||||
"endstruc\n";
|
||||
struc += "\n";
|
||||
|
||||
struc += "struc D3D11_SAMPLER_DESC\n"
|
||||
"\t.Filter: resd 1\n"
|
||||
"\t.AddressU: resd 1\n"
|
||||
"\t.AddressV: resd 1\n"
|
||||
"\t.AddressW: resd 1\n"
|
||||
"\t.MipLODBias: resd 1\n"
|
||||
"\t.MaxAnisotropy: resd 1\n"
|
||||
"\t.ComparisonFunc: resd 1\n"
|
||||
"\t.BorderColor: resd 4\n"
|
||||
"\t.MinLOD: resd 1\n"
|
||||
"\t.MaxLOD: resd 1\n"
|
||||
"endstruc\n";
|
||||
struc += "\n";
|
||||
|
||||
struc += "struc D3D11_TEXTURE2D_DESC\n"
|
||||
"\t.Width: resd 1\n"
|
||||
"\t.Height: resd 1\n"
|
||||
"\t.MipLevels: resd 1\n"
|
||||
"\t.ArraySize: resd 1\n"
|
||||
"\t.Format: resd 1\n"
|
||||
"\n"
|
||||
"\t; DXGI_SAMPLE_DESC SampleDesc\n"
|
||||
"\t.Count: resd 1\n"
|
||||
"\t.Quality: resd 1\n"
|
||||
"\n"
|
||||
"\t.Usage: resd 1\n"
|
||||
"\t.BindFlags: resd 1\n"
|
||||
"\t.CPUAccessFlags: resd 1\n"
|
||||
"\t.MiscFlags: resd 1\n"
|
||||
"endstruc\n";
|
||||
struc += "\n";
|
||||
|
||||
ofs << struc << std::endl;
|
||||
|
||||
} else if (std::string(filename).find("dxgi") != std::string::npos) {
|
||||
std::string struc = std::string(
|
||||
"struc DXGI_SWAP_CHAIN_DESC\n"
|
||||
"\t; DXGI_MODE_DESC BufferDesc\n"
|
||||
"\t.Width: resd 1\n"
|
||||
"\t.Height: resd 1\n"
|
||||
"\n"
|
||||
"\t; DXGI_RATIONAL RefreshRate\n"
|
||||
"\t.Numerator: resd 1\n"
|
||||
"\t.Denominator: resd 1\n"
|
||||
"\n"
|
||||
"\t.Format: resd 1\n"
|
||||
"\t.ScanlineOrdering: resd 1\n"
|
||||
"\t.Scaling: resd 1\n"
|
||||
"\n"
|
||||
"\t; DXGI_SAMPLE_DESC SampleDesc\n"
|
||||
"\t.Count: resd 1\n"
|
||||
"\t.Quality: resd 1\n"
|
||||
"\n"
|
||||
"\t.BufferUsage: resd 1\n"
|
||||
"\t.BufferCount: resd 1\n"
|
||||
"\t.OutputWindow: resd 1\n"
|
||||
"\t.Windowed: resd 1\n"
|
||||
"\t.SwapEffect: resd 1\n"
|
||||
"\t.Flags: resd 1\n"
|
||||
"endstruc\n");
|
||||
ofs << struc << std::endl;
|
||||
}
|
||||
|
||||
{
|
||||
uint N = enums.size();
|
||||
for (uint i = 0; i < N; ++i) {
|
||||
const EnumBlock& eb = enums[i];
|
||||
uint M = eb.enumEntries.size();
|
||||
ofs << "; " << eb.enumName << std::endl;
|
||||
for (auto &enumElement : eb.enumEntries) {
|
||||
ofs << "%define " << enumElement.first << " " << enumElement.second << std::endl;
|
||||
}
|
||||
ofs << std::endl;
|
||||
}
|
||||
ofs << std::endl;
|
||||
|
||||
}
|
||||
|
||||
|
||||
{
|
||||
uint N = defineBlock.defines.size();
|
||||
for (uint i = 0; i < N; ++i) {
|
||||
const auto& def = defineBlock.defines[i];
|
||||
ofs << "%define " << def.first << " " << def.second << std::endl;
|
||||
}
|
||||
ofs << std::endl;
|
||||
|
||||
}
|
||||
|
||||
{
|
||||
uint N = interfaces.size();
|
||||
for (uint i = 0; i < N; ++i) {
|
||||
const InterfaceBlock& ib = interfaces[i];
|
||||
ofs << std::endl << "struc " << ib.interfaceName << std::endl;
|
||||
uint numInterfaces = ib.interfaceMethods.size();
|
||||
for (uint j = 0; j < numInterfaces; ++j) {
|
||||
ofs << "\t." << ib.interfaceMethods[j] << ": " << "resb 4" << std::endl;
|
||||
}
|
||||
ofs << "endstruc" << std::endl;
|
||||
}
|
||||
}
|
||||
ofs.close();
|
||||
return true;
|
||||
}
|
||||
|
||||
int main(int argc, char** argv) {
|
||||
if (argc != 3 && argc != 2) {
|
||||
fprintf(stderr, "Usage: ptxStrip in.ptx [out.ptx]\n");
|
||||
return EXIT_FAILURE;
|
||||
}
|
||||
|
||||
const char* inputFile = argv[1];
|
||||
const char* outputFile = argv[argc == 2 ? 1 : 2];
|
||||
|
||||
// Read in the source
|
||||
std::vector<SourceLine> source;
|
||||
if (!readLinesFromFile(inputFile, source)) {
|
||||
return EXIT_FAILURE;
|
||||
}
|
||||
if (std::string(inputFile).find("dxgi.h") != std::string::npos) {
|
||||
if (!readLinesFromFile("dxgiformat.h", source)) {
|
||||
return EXIT_FAILURE;
|
||||
}
|
||||
if (!readLinesFromFile("dxgitype.h", source)) {
|
||||
return EXIT_FAILURE;
|
||||
}
|
||||
}
|
||||
if (std::string(inputFile).find("d3d11.h") != std::string::npos) {
|
||||
if (!readLinesFromFile("d3dcommon.h", source)) {
|
||||
return EXIT_FAILURE;
|
||||
}
|
||||
if (!readLinesFromFile("d3dcompiler.h", source)) {
|
||||
return EXIT_FAILURE;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
size_t inputSize = getFileSize(inputFile);
|
||||
fprintf(stdout, "Input file size: %d bytes\n", inputSize);
|
||||
|
||||
// Find interfaces in the header file
|
||||
std::vector<InterfaceBlock> interfaces;
|
||||
std::vector<EnumBlock> enums;
|
||||
DefineBlock defineBlock;
|
||||
|
||||
parseInterfaces(source, interfaces, enums, defineBlock);
|
||||
|
||||
// Write the new *.inc
|
||||
if (!writeInterfacesToFileASM(outputFile, interfaces, enums, defineBlock)) {
|
||||
return EXIT_FAILURE;
|
||||
}
|
||||
|
||||
size_t outputSize = getFileSize(outputFile);
|
||||
fprintf(stdout, "Output file size: %d bytes\n", outputSize);
|
||||
|
||||
return EXIT_SUCCESS;
|
||||
}
|
||||
Reference in New Issue
Block a user