Sweden-Number/include/d3d12shader.idl

185 lines
4.9 KiB
Plaintext
Raw Normal View History

/*
* Copyright 2020 Paul Gofman for CodeWeavers
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
*/
import "oaidl.idl";
import "ocidl.idl";
import "d3dcommon.idl";
typedef struct _D3D12_SHADER_DESC
{
UINT Version;
const char *Creator;
UINT Flags;
UINT ConstantBuffers;
UINT BoundResources;
UINT InputParameters;
UINT OutputParameters;
UINT InstructionCount;
UINT TempRegisterCount;
UINT TempArrayCount;
UINT DefCount;
UINT DclCount;
UINT TextureNormalInstructions;
UINT TextureLoadInstructions;
UINT TextureCompInstructions;
UINT TextureBiasInstructions;
UINT TextureGradientInstructions;
UINT FloatInstructionCount;
UINT IntInstructionCount;
UINT UintInstructionCount;
UINT StaticFlowControlCount;
UINT DynamicFlowControlCount;
UINT MacroInstructionCount;
UINT ArrayInstructionCount;
UINT CutInstructionCount;
UINT EmitInstructionCount;
D3D_PRIMITIVE_TOPOLOGY GSOutputTopology;
UINT GSMaxOutputVertexCount;
D3D_PRIMITIVE InputPrimitive;
UINT PatchConstantParameters;
UINT cGSInstanceCount;
UINT cControlPoints;
D3D_TESSELLATOR_OUTPUT_PRIMITIVE HSOutputPrimitive;
D3D_TESSELLATOR_PARTITIONING HSPartitioning;
D3D_TESSELLATOR_DOMAIN TessellatorDomain;
UINT cBarrierInstructions;
UINT cInterlockedInstructions;
UINT cTextureStoreInstructions;
} D3D12_SHADER_DESC;
typedef struct _D3D12_SHADER_VARIABLE_DESC
{
const char *Name;
UINT StartOffset;
UINT Size;
UINT uFlags;
void *DefaultValue;
UINT StartTexture;
UINT TextureSize;
UINT StartSampler;
UINT SamplerSize;
} D3D12_SHADER_VARIABLE_DESC;
typedef struct _D3D12_SHADER_TYPE_DESC
{
D3D_SHADER_VARIABLE_CLASS Class;
D3D_SHADER_VARIABLE_TYPE Type;
UINT Rows;
UINT Columns;
UINT Elements;
UINT Members;
UINT Offset;
const char *Name;
} D3D12_SHADER_TYPE_DESC;
typedef struct _D3D12_SHADER_BUFFER_DESC
{
const char *Name;
D3D_CBUFFER_TYPE Type;
UINT Variables;
UINT Size;
UINT uFlags;
} D3D12_SHADER_BUFFER_DESC;
typedef struct _D3D12_SHADER_INPUT_BIND_DESC
{
const char *Name;
D3D_SHADER_INPUT_TYPE Type;
UINT BindPoint;
UINT BindCount;
UINT uFlags;
D3D_RESOURCE_RETURN_TYPE ReturnType;
D3D_SRV_DIMENSION Dimension;
UINT NumSamples;
UINT Space;
UINT uID;
} D3D12_SHADER_INPUT_BIND_DESC;
typedef struct _D3D12_SIGNATURE_PARAMETER_DESC
{
const char *SemanticName;
UINT SemanticIndex;
UINT Register;
D3D_NAME SystemValueType;
D3D_REGISTER_COMPONENT_TYPE ComponentType;
BYTE Mask;
BYTE ReadWriteMask;
UINT Stream;
D3D_MIN_PRECISION MinPrecision;
} D3D12_SIGNATURE_PARAMETER_DESC;
typedef struct _D3D12_PARAMETER_DESC
{
const char *Name;
const char *SemanticName;
D3D_SHADER_VARIABLE_TYPE Type;
D3D_SHADER_VARIABLE_CLASS Class;
UINT Rows;
UINT Columns;
D3D_INTERPOLATION_MODE InterpolationMode;
D3D_PARAMETER_FLAGS Flags;
UINT FirstInRegister;
UINT FirstInComponent;
UINT FirstOutRegister;
UINT FirstOutComponent;
} D3D12_PARAMETER_DESC;
typedef struct _D3D12_FUNCTION_DESC
{
UINT Version;
const char *Creator;
UINT Flags;
UINT ConstantBuffers;
UINT BoundResources;
UINT InstructionCount;
UINT TempRegisterCount;
UINT TempArrayCount;
UINT DefCount;
UINT DclCount;
UINT TextureNormalInstructions;
UINT TextureLoadInstructions;
UINT TextureCompInstructions;
UINT TextureBiasInstructions;
UINT TextureGradientInstructions;
UINT FloatInstructionCount;
UINT IntInstructionCount;
UINT UintInstructionCount;
UINT StaticFlowControlCount;
UINT DynamicFlowControlCount;
UINT MacroInstructionCount;
UINT ArrayInstructionCount;
UINT MovInstructionCount;
UINT MovcInstructionCount;
UINT ConversionInstructionCount;
UINT BitwiseInstructionCount;
D3D_FEATURE_LEVEL MinFeatureLevel;
UINT64 RequiredFeatureFlags;
const char *Name;
INT FunctionParameterCount;
BOOL HasReturn;
BOOL Has10Level9VertexShader;
BOOL Has10Level9PixelShader;
} D3D12_FUNCTION_DESC;
typedef struct _D3D12_LIBRARY_DESC
{
const char *Creator;
UINT Flags;
UINT FunctionCount;
} D3D12_LIBRARY_DESC;