3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync/*
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * Copyright 2010 Matteo Bruni for CodeWeavers
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync *
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * This library is free software; you can redistribute it and/or
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * modify it under the terms of the GNU Lesser General Public
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * License as published by the Free Software Foundation; either
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * version 2.1 of the License, or (at your option) any later version.
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync *
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * This library is distributed in the hope that it will be useful,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * but WITHOUT ANY WARRANTY; without even the implied warranty of
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * Lesser General Public License for more details.
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync *
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * You should have received a copy of the GNU Lesser General Public
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * License along with this library; if not, write to the Free Software
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync */
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
930b5f872e89407f445d4000d4e4aaecaa6a0998vboxsync/*
930b5f872e89407f445d4000d4e4aaecaa6a0998vboxsync * Oracle LGPL Disclaimer: For the avoidance of doubt, except that if any license choice
930b5f872e89407f445d4000d4e4aaecaa6a0998vboxsync * other than GPL or LGPL is available it will apply instead, Oracle elects to use only
930b5f872e89407f445d4000d4e4aaecaa6a0998vboxsync * the Lesser General Public License version 2.1 (LGPLv2) at this time for any software where
930b5f872e89407f445d4000d4e4aaecaa6a0998vboxsync * a choice of LGPL license versions is made available with the language indicating
930b5f872e89407f445d4000d4e4aaecaa6a0998vboxsync * that LGPLv2 or any later version may be used, or where a choice of which version
930b5f872e89407f445d4000d4e4aaecaa6a0998vboxsync * of the LGPL is applied is otherwise unspecified.
930b5f872e89407f445d4000d4e4aaecaa6a0998vboxsync */
930b5f872e89407f445d4000d4e4aaecaa6a0998vboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#ifndef __D3D11SHADER_H__
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define __D3D11SHADER_H__
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#include "d3dcommon.h"
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync/* These are defined as version-neutral in d3dcommon.h */
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsynctypedef D3D_CBUFFER_TYPE D3D11_CBUFFER_TYPE;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsynctypedef D3D_RESOURCE_RETURN_TYPE D3D11_RESOURCE_RETURN_TYPE;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsynctypedef D3D_TESSELLATOR_DOMAIN D3D11_TESSELLATOR_DOMAIN;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsynctypedef D3D_TESSELLATOR_PARTITIONING D3D11_TESSELLATOR_PARTITIONING;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsynctypedef D3D_TESSELLATOR_OUTPUT_PRIMITIVE D3D11_TESSELLATOR_OUTPUT_PRIMITIVE;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsynctypedef struct _D3D11_SHADER_DESC
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync{
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync UINT Version;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync const char *Creator;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync UINT Flags;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync UINT ConstantBuffers;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync UINT BoundResources;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync UINT InputParameters;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync UINT OutputParameters;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync UINT InstructionCount;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync UINT TempRegisterCount;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync UINT TempArrayCount;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync UINT DefCount;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync UINT DclCount;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync UINT TextureNormalInstructions;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync UINT TextureLoadInstructions;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync UINT TextureCompInstructions;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync UINT TextureBiasInstructions;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync UINT TextureGradientInstructions;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync UINT FloatInstructionCount;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync UINT IntInstructionCount;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync UINT UintInstructionCount;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync UINT StaticFlowControlCount;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync UINT DynamicFlowControlCount;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync UINT MacroInstructionCount;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync UINT ArrayInstructionCount;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync UINT CutInstructionCount;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync UINT EmitInstructionCount;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync D3D_PRIMITIVE_TOPOLOGY GSOutputTopology;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync UINT GSMaxOutputVertexCount;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync D3D_PRIMITIVE InputPrimitive;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync UINT PatchConstantParameters;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync UINT cGSInstanceCount;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync UINT cControlPoints;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync D3D_TESSELLATOR_OUTPUT_PRIMITIVE HSOutputPrimitive;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync D3D_TESSELLATOR_PARTITIONING HSPartitioning;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync D3D_TESSELLATOR_DOMAIN TessellatorDomain;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync UINT cBarrierInstructions;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync UINT cInterlockedInstructions;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync UINT cTextureStoreInstructions;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync} D3D11_SHADER_DESC;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsynctypedef struct _D3D11_SHADER_VARIABLE_DESC
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync{
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync const char *Name;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync UINT StartOffset;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync UINT Size;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync UINT uFlags;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync void *DefaultValue;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync UINT StartTexture;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync UINT TextureSize;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync UINT StartSampler;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync UINT SamplerSize;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync} D3D11_SHADER_VARIABLE_DESC;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsynctypedef struct _D3D11_SHADER_TYPE_DESC
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync{
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync D3D_SHADER_VARIABLE_CLASS Class;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync D3D_SHADER_VARIABLE_TYPE Type;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync UINT Rows;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync UINT Columns;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync UINT Elements;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync UINT Members;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync UINT Offset;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync const char *Name;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync} D3D11_SHADER_TYPE_DESC;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsynctypedef struct _D3D11_SHADER_BUFFER_DESC
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync{
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync const char *Name;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync D3D_CBUFFER_TYPE Type;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync UINT Variables;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync UINT Size;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync UINT uFlags;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync} D3D11_SHADER_BUFFER_DESC;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsynctypedef struct _D3D11_SHADER_INPUT_BIND_DESC
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync{
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync const char *Name;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync D3D_SHADER_INPUT_TYPE Type;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync UINT BindPoint;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync UINT BindCount;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync UINT uFlags;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync D3D_RESOURCE_RETURN_TYPE ReturnType;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync D3D_SRV_DIMENSION Dimension;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync UINT NumSamples;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync} D3D11_SHADER_INPUT_BIND_DESC;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsynctypedef struct _D3D11_SIGNATURE_PARAMETER_DESC
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync{
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync const char *SemanticName;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync UINT SemanticIndex;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync UINT Register;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync D3D_NAME SystemValueType;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync D3D_REGISTER_COMPONENT_TYPE ComponentType;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync BYTE Mask;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync BYTE ReadWriteMask;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync UINT Stream;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync} D3D11_SIGNATURE_PARAMETER_DESC;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncDEFINE_GUID(IID_ID3D11ShaderReflectionType, 0x6e6ffa6a, 0x9bae, 0x4613, 0xa5, 0x1e, 0x91, 0x65, 0x2d, 0x50, 0x8c, 0x21);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define INTERFACE ID3D11ShaderReflectionType
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncDECLARE_INTERFACE(ID3D11ShaderReflectionType)
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync{
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync STDMETHOD(GetDesc)(THIS_ D3D11_SHADER_TYPE_DESC *desc) PURE;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync STDMETHOD_(struct ID3D11ShaderReflectionType *, GetMemberTypeByIndex)(THIS_ UINT index) PURE;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync STDMETHOD_(struct ID3D11ShaderReflectionType *, GetMemberTypeByName)(THIS_ const char *name) PURE;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync STDMETHOD_(const char *, GetMemberTypeName)(THIS_ UINT index) PURE;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync STDMETHOD(IsEqual)(THIS_ struct ID3D11ShaderReflectionType *type) PURE;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync STDMETHOD_(struct ID3D11ShaderReflectionType *, GetSubType)(THIS) PURE;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync STDMETHOD_(struct ID3D11ShaderReflectionType *, GetBaseClass)(THIS) PURE;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync STDMETHOD_(UINT, GetNumInterfaces)(THIS) PURE;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync STDMETHOD_(struct ID3D11ShaderReflectionType *, GetInterfaceByIndex)(THIS_ UINT index) PURE;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync STDMETHOD(IsOfType)(THIS_ struct ID3D11ShaderReflectionType *type) PURE;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync STDMETHOD(ImplementsInterface)(THIS_ ID3D11ShaderReflectionType *base) PURE;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync};
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#undef INTERFACE
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncDEFINE_GUID(IID_ID3D11ShaderReflectionVariable, 0x51f23923, 0xf3e5, 0x4bd1, 0x91, 0xcb, 0x60, 0x61, 0x77, 0xd8, 0xdb, 0x4c);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define INTERFACE ID3D11ShaderReflectionVariable
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncDECLARE_INTERFACE(ID3D11ShaderReflectionVariable)
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync{
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync STDMETHOD(GetDesc)(THIS_ D3D11_SHADER_VARIABLE_DESC *desc) PURE;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync STDMETHOD_(struct ID3D11ShaderReflectionType *, GetType)(THIS) PURE;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync STDMETHOD_(struct ID3D11ShaderReflectionConstantBuffer *, GetBuffer)(THIS) PURE;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync STDMETHOD_(UINT, GetInterfaceSlot)(THIS_ UINT index) PURE;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync};
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#undef INTERFACE
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncDEFINE_GUID(IID_ID3D11ShaderReflectionConstantBuffer, 0xeb62d63d, 0x93dd, 0x4318, 0x8a, 0xe8, 0xc6, 0xf8, 0x3a, 0xd3, 0x71, 0xb8);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define INTERFACE ID3D11ShaderReflectionConstantBuffer
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncDECLARE_INTERFACE(ID3D11ShaderReflectionConstantBuffer)
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync{
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync STDMETHOD(GetDesc)(THIS_ D3D11_SHADER_BUFFER_DESC *desc) PURE;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync STDMETHOD_(struct ID3D11ShaderReflectionVariable *, GetVariableByIndex)(THIS_ UINT index) PURE;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync STDMETHOD_(struct ID3D11ShaderReflectionVariable *, GetVariableByName)(THIS_ const char *name) PURE;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync};
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#undef INTERFACE
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncDEFINE_GUID(IID_ID3D11ShaderReflection, 0x0a233719, 0x3960, 0x4578, 0x9d, 0x7c, 0x20, 0x3b, 0x8b, 0x1d, 0x9c, 0xc1);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define INTERFACE ID3D11ShaderReflection
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncDECLARE_INTERFACE_(ID3D11ShaderReflection, IUnknown)
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync{
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync /* IUnknown methods */
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **out) PURE;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync STDMETHOD_(ULONG, AddRef)(THIS) PURE;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync STDMETHOD_(ULONG, Release)(THIS) PURE;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync /* ID3D11ShaderReflection methods */
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync STDMETHOD(GetDesc)(THIS_ D3D11_SHADER_DESC *desc) PURE;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync STDMETHOD_(struct ID3D11ShaderReflectionConstantBuffer *, GetConstantBufferByIndex)(THIS_ UINT index) PURE;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync STDMETHOD_(struct ID3D11ShaderReflectionConstantBuffer *, GetConstantBufferByName)(THIS_ const char *name) PURE;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync STDMETHOD(GetResourceBindingDesc)(THIS_ UINT index, D3D11_SHADER_INPUT_BIND_DESC *desc) PURE;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync STDMETHOD(GetInputParameterDesc)(THIS_ UINT index, D3D11_SIGNATURE_PARAMETER_DESC *desc) PURE;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync STDMETHOD(GetOutputParameterDesc)(THIS_ UINT index, D3D11_SIGNATURE_PARAMETER_DESC *desc) PURE;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync STDMETHOD(GetPatchConstantParameterDesc)(THIS_ UINT index, D3D11_SIGNATURE_PARAMETER_DESC *desc) PURE;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync STDMETHOD_(struct ID3D11ShaderReflectionVariable *, GetVariableByName)(THIS_ const char *name) PURE;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync STDMETHOD(GetResourceBindingDescByName)(THIS_ const char *name, D3D11_SHADER_INPUT_BIND_DESC *desc) PURE;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync STDMETHOD_(UINT, GetMovInstructionCount)(THIS) PURE;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync STDMETHOD_(UINT, GetMovcInstructionCount)(THIS) PURE;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync STDMETHOD_(UINT, GetConversionInstructionCount)(THIS) PURE;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync STDMETHOD_(UINT, GetBitwiseInstructionCount)(THIS) PURE;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync STDMETHOD_(D3D_PRIMITIVE, GetGSInputPrimitive)(THIS) PURE;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync STDMETHOD_(BOOL, IsSampleFrequencyShader)(THIS) PURE;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync STDMETHOD_(UINT, GetNumInterfaceSlots)(THIS) PURE;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync STDMETHOD(GetMinFeatureLevel)(THIS_ enum D3D_FEATURE_LEVEL *level) PURE;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync STDMETHOD_(UINT, GetThreadGroupSize)(THIS_ UINT *sizex, UINT *sizey, UINT *sizez) PURE;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync};
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#undef INTERFACE
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#endif