d3d/archive/D3D11_3_FunctionalSpec.htm [2800:3091]: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - contents of the Resource.
typedef struct D3D10DDI_HSHADERRESOURCEVIEW { void* m_pDrvPrivate; } D3D10DDI_HSHADERRESOURCEVIEW; typedef struct D3D10DDIARG_BUFFER_SHADERRESOURCEVIEW { union { UINT FirstElement; // Nicer name // < ResourceWidth / ElementSize UINT ElementOffset; }; union { UINT NumElements; // Nicer name // <= ( ResourceWidth / ElementSize - ElementOffset ) UINT ElementWidth; }; } D3D10DDIARG_BUFFER_SHADERRESOURCEVIEW; typedef struct D3D11DDIARG_BUFFEREX_SHADERRESOURCEVIEW { union { UINT FirstElement; // Nicer name // < ResourceWidth / ElementSize UINT ElementOffset; }; union { UINT NumElements; // Nicer name // <= ( ResourceWidth / ElementSize - ElementOffset ) UINT ElementWidth; }; UINT Flags; // See D3D11_DDI_BUFFEREX_SRV_FLAG_* below } D3D11DDIARG_BUFFEREX_SHADERRESOURCEVIEW; #define D3D11_DDI_BUFFEREX_SRV_FLAG_RAW 0x00000001 typedef struct D3D10DDIARG_TEX1D_SHADERRESOURCEVIEW { UINT MostDetailedMip; // < Resource MipLevels UINT FirstArraySlice; // < Resource ArraySize UINT MipLevels; // <= ( Resource MipLevels - MostDetailedMip ) UINT ArraySize; // <= ( Resource ArraySize - FirstArraySlice ) } D3D10DDIARG_TEX1D_SHADERRESOURCEVIEW; typedef struct D3D10DDIARG_TEX2D_SHADERRESOURCEVIEW { UINT MostDetailedMip; // < Resource MipLevels UINT FirstArraySlice; // < Resource ArraySize UINT MipLevels; // <= ( Resource MipLevels - MostDetailedMip ) UINT ArraySize; // <= ( Resource ArraySize - FirstArraySlice ) } D3D10DDIARG_TEX2D_SHADERRESOURCEVIEW; typedef struct D3D10DDIARG_TEX3D_SHADERRESOURCEVIEW { UINT MostDetailedMip; // < Resource MipLevels UINT MipLevels; // <= ( Resource MipLevels - MostDetailedMip ) } D3D10DDIARG_TEX3D_SHADERRESOURCEVIEW; typedef struct D3D10DDIARG_TEXCUBE_SHADERRESOURCEVIEW { UINT MostDetailedMip; UINT MipLevels; } D3D10DDIARG_TEXCUBE_SHADERRESOURCEVIEW; typedef struct D3D10_1DDIARG_TEXCUBE_SHADERRESOURCEVIEW { UINT MostDetailedMip; // < Resource MipLevels UINT MipLevels; // <= ( Resource MipLevels - MostDetailedMip ) UINT First2DArrayFace; // <= ( Resource ArraySize - 5 ) UINT NumCubes; // multiple of 6 faces that must fit in resource after First2DArrayFace } D3D10_1DDIARG_TEXCUBE_SHADERRESOURCEVIEW; typedef struct D3D11DDIARG_CREATESHADERRESOURCEVIEW { D3D10DDI_HRESOURCE hDrvResource; DXGI_FORMAT Format; // Fully qualified D3D10DDIRESOURCE_TYPE ResourceDimension; union { D3D10DDIARG_BUFFER_SHADERRESOURCEVIEW Buffer; D3D10DDIARG_TEX1D_SHADERRESOURCEVIEW Tex1D; D3D10DDIARG_TEX2D_SHADERRESOURCEVIEW Tex2D; D3D10DDIARG_TEX3D_SHADERRESOURCEVIEW Tex3D; D3D10_1DDIARG_TEXCUBE_SHADERRESOURCEVIEW TexCube; D3D11DDIARG_BUFFEREX_SHADERRESOURCEVIEW BufferEx; }; } D3D11DDIARG_CREATESHADERRESOURCEVIEW; // part of user mode Device interface: STDMETHOD_( SIZE_T, CalcPrivateShaderResourceViewSize )( D3D10DDI_HDEVICE hDrvDevice, CONST D3D11DDIARG_CREATESHADERRESOURCEVIEW* pCreateShaderResourceView ); STDMETHOD( CreateShaderResourceView )( D3D10DDI_HDEVICE hDrvDevice, CONST D3D11DDIARG_CREATESHADERRESOURCEVIEW* pCreateShaderResourceView, D3D10DDI_HSHADERRESOURCEVIEW hDrvShaderResourceView ); STDMETHOD_( void, DestroyShaderInput )( D3D10DDI_HDEVICE hDrvDevice, D3D10DDI_HSHADERRESOURCEVIEW hDrvShaderResourceView ); typedef struct D3D10DDI_HRENDERTARGETVIEW { void* m_pDrvPrivate; } D3D10DDI_HRENDERTARGETVIEW; typedef struct D3D10DDIARG_BUFFER_RENDERTARGETVIEW { union { UINT FirstElement; // Nicer name // < ResourceWidth / ElementSize UINT ElementOffset; }; union { UINT NumElements; // Nicer name // <= ( ResourceWidth / ElementSize - ElementOffset ) UINT ElementWidth; }; } D3D10DDIARG_BUFFER_RENDERTARGETVIEW; typedef struct D3D10DDIARG_TEX1D_RENDERTARGETVIEW { UINT MipSlice; UINT FirstArraySlice; // < Resource ArraySize UINT ArraySize; // <= ( Resource ArraySize - FirstArraySlice ) } D3D10DDIARG_TEX1D_RENDERTARGETVIEW; typedef struct D3D10DDIARG_TEX2D_RENDERTARGETVIEW { UINT MipSlice; UINT FirstArraySlice; // < Resource ArraySize UINT ArraySize; // <= ( Resource ArraySize - FirstArraySlice ) } D3D10DDIARG_TEX2D_RENDERTARGETVIEW; typedef struct D3D10DDIARG_TEX3D_RENDERTARGETVIEW { UINT MipSlice; UINT FirstW; // < Resource MipSlice W dimension UINT WSize; // <= ( Resource MipSlice W dimension - FirstW ) } D3D10DDIARG_TEX3D_RENDERTARGETVIEW; typedef struct D3D10DDIARG_TEXCUBE_RENDERTARGETVIEW { UINT MipSlice; UINT FirstArraySlice; // as 2DArray UINT ArraySize; // as 2DArray } D3D10DDIARG_TEXCUBE_RENDERTARGETVIEW; typedef struct D3D10DDIARG_CREATERENDERTARGETVIEW { D3D10DDI_HRESOURCE hDrvResource; DXGI_FORMAT Format; // Fully qualified D3D10DDIRESOURCE_TYPE ResourceDimension; union { D3D10DDIARG_BUFFER_RENDERTARGETVIEW Buffer; D3D10DDIARG_TEX1D_RENDERTARGETVIEW Tex1D; D3D10DDIARG_TEX2D_RENDERTARGETVIEW Tex2D; D3D10DDIARG_TEX3D_RENDERTARGETVIEW Tex3D; D3D10DDIARG_TEXCUBE_RENDERTARGETVIEW TexCube; }; } D3D10DDIARG_CREATERENDERTARGETVIEW; // part of user mode Device interface: STDMETHOD_( SIZE_T, CalcPrivateRenderTargetViewSize )( D3D10DDI_HDEVICE hDrvDevice, CONST D3D10DDIARG_CREATERENDERTARGETVIEW* pCreateRenderTargetView ); STDMETHOD( CreateRenderTargetView )( D3D10DDI_HDEVICE hDrvDevice, CONST D3D10DDIARG_CREATERENDERTARGETVIEW* pCreateRenderTargetView, D3D10DDI_HRENDERTARGETVIEW hDrvRenderTargetView ); STDMETHOD_( void, DestroyRenderTargetView )( D3D10DDI_HDEVICE hDrvDevice, D3D10DDI_HRENDERTARGETVIEW hDrvRenderTargetView ); typedef struct D3D10DDI_HDEPTHSTENCILVIEW { void* m_pDrvPrivate; } D3D10DDI_HDEPTHSTENCILVIEW; typedef struct D3D10DDIARG_TEX1D_DEPTHSTENCILVIEW { UINT MipSlice; UINT FirstArraySlice; // < Resource ArraySize UINT ArraySize; // <= ( Resource ArraySize - FirstArraySlice ) } D3D10DDIARG_TEX1D_DEPTHSTENCILVIEW; typedef struct D3D10DDIARG_TEX2D_DEPTHSTENCILVIEW { UINT MipSlice; UINT FirstArraySlice; // < Resource ArraySize UINT ArraySize; // <= ( Resource ArraySize - FirstArraySlice ) } D3D10DDIARG_TEX2D_DEPTHSTENCILVIEW; typedef struct D3D10DDIARG_TEXCUBE_DEPTHSTENCILVIEW { UINT MipSlice; UINT FirstArraySlice; // as 2DArray UINT ArraySize; // as 2DArray } D3D10DDIARG_TEXCUBE_DEPTHSTENCILVIEW; typedef enum D3D11_DDI_CREATEDEPTHSTENCILVIEW_FLAG { D3D11_DDI_CREATE_DSV_READ_ONLY_DEPTH = 0x01L, D3D11_DDI_CREATE_DSV_READ_ONLY_STENCIL = 0x02L, D3D11_DDI_CREATE_DSV_FLAG_MASK = 0x03L, } D3D11_DDI_CREATEDEPTHSTENCILVIEW_FLAG; typedef struct D3D11DDIARG_CREATEDEPTHSTENCILVIEW { D3D10DDI_HRESOURCE hDrvResource; DXGI_FORMAT Format; // Fully qualified D3D10DDIRESOURCE_TYPE ResourceDimension; UINT Flags; union { D3D10DDIARG_TEX1D_DEPTHSTENCILVIEW Tex1D; D3D10DDIARG_TEX2D_DEPTHSTENCILVIEW Tex2D; D3D10DDIARG_TEXCUBE_DEPTHSTENCILVIEW TexCube; }; } D3D11DDIARG_CREATEDEPTHSTENCILVIEW; // part of user mode Device interface: STDMETHOD_( SIZE_T, CalcPrivateDepthStencilViewSize )( D3D10DDI_HDEVICE hDrvDevice, CONST D3D11DDIARG_CREATEDEPTHSTENCILVIEW* pCreateDepthStencilView ); STDMETHOD( CreateDepthStencilView )( D3D10DDI_HDEVICE hDrvDevice, CONST D3D11DDIARG_CREATEDEPTHSTENCILVIEW* pCreateDepthStencilView, D3D10DDI_HDEPTHSTENCILVIEW hDrvDepthStencilView ); STDMETHOD_( void, DestroyDepthStencilView )( D3D10DDI_HDEVICE hDrvDevice, D3D10DDI_HDEPTHSTENCILVIEW hDrvDepthStencilView ); typedef struct D3D11DDI_HUNORDEREDACCESSVIEW { void* m_pDrvPrivate; } D3D11DDI_HUNORDEREDACCESSVIEW; typedef struct D3D11DDIARG_BUFFER_UNORDEREDACCESSVIEW { UINT FirstElement; // < ResourceWidth / ElementSize UINT NumElements; // <= ( ResourceWidth / ElementSize - ElementOffset ) UINT Flags; // See D3D11_DDI_BUFFER_UAV_FLAG* below } D3D11DDIARG_BUFFER_UNORDEREDACCESSVIEW; #define D3D11_DDI_BUFFER_UAV_FLAG_RAW 0x00000001 #define D3D11_DDI_BUFFER_UAV_FLAG_APPEND 0x00000002 #define D3D11_DDI_BUFFER_UAV_FLAG_COUNTER 0x00000004 typedef struct D3D11DDIARG_TEX1D_UNORDEREDACCESSVIEW { UINT MipSlice; UINT FirstArraySlice; // < Resource ArraySize UINT ArraySize; // <= ( Resource ArraySize - FirstArraySlice ) } D3D11DDIARG_TEX1D_UNORDEREDACCESSVIEW; typedef struct D3D11DDIARG_TEX2D_UNORDEREDACCESSVIEW { UINT MipSlice; UINT FirstArraySlice; // < Resource ArraySize UINT ArraySize; // <= ( Resource ArraySize - FirstArraySlice ) } D3D11DDIARG_TEX2D_UNORDEREDACCESSVIEW; typedef struct D3D11DDIARG_TEX3D_UNORDEREDACCESSVIEW { UINT MipSlice; UINT FirstW; // < Resource MipSlice W dimension UINT WSize; // <= ( Resource MipSlice W dimension - FirstW ) } D3D11DDIARG_TEX3D_UNORDEREDACCESSVIEW; typedef struct D3D11DDIARG_CREATEUNORDEREDACCESSVIEW { D3D10DDI_HRESOURCE hDrvResource; DXGI_FORMAT Format; // Fully qualified D3D10DDIRESOURCE_TYPE ResourceDimension; // Runtime will never set this to TexCube union { D3D11DDIARG_BUFFER_UNORDEREDACCESSVIEW Buffer; D3D11DDIARG_TEX1D_UNORDEREDACCESSVIEW Tex1D; D3D11DDIARG_TEX2D_UNORDEREDACCESSVIEW Tex2D; D3D11DDIARG_TEX3D_UNORDEREDACCESSVIEW Tex3D; }; } D3D11DDIARG_CREATEUNORDEREDACCESSVIEW; // part of user mode Device interface: STDMETHOD_( SIZE_T, CalcPrivateUnorderedAccessViewSize )( D3D10DDI_HDEVICE hDrvDevice, CONST D3D11DDIARG_CREATEUNORDEREDACCESS* pCreateUnorderedAccessView ); STDMETHOD( CreateUnorderedAccessView )( D3D10DDI_HDEVICE hDrvDevice, CONST D3D11DDIARG_CREATEUNORDEREDACCESSVIEW* pCreateUnorderedAccessView, D3D10DDI_HUNORDEREDACCESSVIEW hDrvUnorderedAccessView ); STDMETHOD_( void, DestroyDepthStencilView )( D3D10DDI_HDEVICE hDrvDevice, D3D10DDI_HUNORDEREDACCESSVIEW hDrvUnorderedAccessView ); - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - d3d/archive/images/d3d11/D3D11_3_FunctionalSpec.htm [2398:2689]: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - contents of the Resource.typedef struct D3D10DDI_HSHADERRESOURCEVIEW { void* m_pDrvPrivate; } D3D10DDI_HSHADERRESOURCEVIEW; typedef struct D3D10DDIARG_BUFFER_SHADERRESOURCEVIEW { union { UINT FirstElement; // Nicer name // < ResourceWidth / ElementSize UINT ElementOffset; }; union { UINT NumElements; // Nicer name // <= ( ResourceWidth / ElementSize - ElementOffset ) UINT ElementWidth; }; } D3D10DDIARG_BUFFER_SHADERRESOURCEVIEW; typedef struct D3D11DDIARG_BUFFEREX_SHADERRESOURCEVIEW { union { UINT FirstElement; // Nicer name // < ResourceWidth / ElementSize UINT ElementOffset; }; union { UINT NumElements; // Nicer name // <= ( ResourceWidth / ElementSize - ElementOffset ) UINT ElementWidth; }; UINT Flags; // See D3D11_DDI_BUFFEREX_SRV_FLAG_* below } D3D11DDIARG_BUFFEREX_SHADERRESOURCEVIEW; #define D3D11_DDI_BUFFEREX_SRV_FLAG_RAW 0x00000001 typedef struct D3D10DDIARG_TEX1D_SHADERRESOURCEVIEW { UINT MostDetailedMip; // < Resource MipLevels UINT FirstArraySlice; // < Resource ArraySize UINT MipLevels; // <= ( Resource MipLevels - MostDetailedMip ) UINT ArraySize; // <= ( Resource ArraySize - FirstArraySlice ) } D3D10DDIARG_TEX1D_SHADERRESOURCEVIEW; typedef struct D3D10DDIARG_TEX2D_SHADERRESOURCEVIEW { UINT MostDetailedMip; // < Resource MipLevels UINT FirstArraySlice; // < Resource ArraySize UINT MipLevels; // <= ( Resource MipLevels - MostDetailedMip ) UINT ArraySize; // <= ( Resource ArraySize - FirstArraySlice ) } D3D10DDIARG_TEX2D_SHADERRESOURCEVIEW; typedef struct D3D10DDIARG_TEX3D_SHADERRESOURCEVIEW { UINT MostDetailedMip; // < Resource MipLevels UINT MipLevels; // <= ( Resource MipLevels - MostDetailedMip ) } D3D10DDIARG_TEX3D_SHADERRESOURCEVIEW; typedef struct D3D10DDIARG_TEXCUBE_SHADERRESOURCEVIEW { UINT MostDetailedMip; UINT MipLevels; } D3D10DDIARG_TEXCUBE_SHADERRESOURCEVIEW; typedef struct D3D10_1DDIARG_TEXCUBE_SHADERRESOURCEVIEW { UINT MostDetailedMip; // < Resource MipLevels UINT MipLevels; // <= ( Resource MipLevels - MostDetailedMip ) UINT First2DArrayFace; // <= ( Resource ArraySize - 5 ) UINT NumCubes; // multiple of 6 faces that must fit in resource after First2DArrayFace } D3D10_1DDIARG_TEXCUBE_SHADERRESOURCEVIEW; typedef struct D3D11DDIARG_CREATESHADERRESOURCEVIEW { D3D10DDI_HRESOURCE hDrvResource; DXGI_FORMAT Format; // Fully qualified D3D10DDIRESOURCE_TYPE ResourceDimension; union { D3D10DDIARG_BUFFER_SHADERRESOURCEVIEW Buffer; D3D10DDIARG_TEX1D_SHADERRESOURCEVIEW Tex1D; D3D10DDIARG_TEX2D_SHADERRESOURCEVIEW Tex2D; D3D10DDIARG_TEX3D_SHADERRESOURCEVIEW Tex3D; D3D10_1DDIARG_TEXCUBE_SHADERRESOURCEVIEW TexCube; D3D11DDIARG_BUFFEREX_SHADERRESOURCEVIEW BufferEx; }; } D3D11DDIARG_CREATESHADERRESOURCEVIEW; // part of user mode Device interface: STDMETHOD_( SIZE_T, CalcPrivateShaderResourceViewSize )( D3D10DDI_HDEVICE hDrvDevice, CONST D3D11DDIARG_CREATESHADERRESOURCEVIEW* pCreateShaderResourceView ); STDMETHOD( CreateShaderResourceView )( D3D10DDI_HDEVICE hDrvDevice, CONST D3D11DDIARG_CREATESHADERRESOURCEVIEW* pCreateShaderResourceView, D3D10DDI_HSHADERRESOURCEVIEW hDrvShaderResourceView ); STDMETHOD_( void, DestroyShaderInput )( D3D10DDI_HDEVICE hDrvDevice, D3D10DDI_HSHADERRESOURCEVIEW hDrvShaderResourceView ); typedef struct D3D10DDI_HRENDERTARGETVIEW { void* m_pDrvPrivate; } D3D10DDI_HRENDERTARGETVIEW; typedef struct D3D10DDIARG_BUFFER_RENDERTARGETVIEW { union { UINT FirstElement; // Nicer name // < ResourceWidth / ElementSize UINT ElementOffset; }; union { UINT NumElements; // Nicer name // <= ( ResourceWidth / ElementSize - ElementOffset ) UINT ElementWidth; }; } D3D10DDIARG_BUFFER_RENDERTARGETVIEW; typedef struct D3D10DDIARG_TEX1D_RENDERTARGETVIEW { UINT MipSlice; UINT FirstArraySlice; // < Resource ArraySize UINT ArraySize; // <= ( Resource ArraySize - FirstArraySlice ) } D3D10DDIARG_TEX1D_RENDERTARGETVIEW; typedef struct D3D10DDIARG_TEX2D_RENDERTARGETVIEW { UINT MipSlice; UINT FirstArraySlice; // < Resource ArraySize UINT ArraySize; // <= ( Resource ArraySize - FirstArraySlice ) } D3D10DDIARG_TEX2D_RENDERTARGETVIEW; typedef struct D3D10DDIARG_TEX3D_RENDERTARGETVIEW { UINT MipSlice; UINT FirstW; // < Resource MipSlice W dimension UINT WSize; // <= ( Resource MipSlice W dimension - FirstW ) } D3D10DDIARG_TEX3D_RENDERTARGETVIEW; typedef struct D3D10DDIARG_TEXCUBE_RENDERTARGETVIEW { UINT MipSlice; UINT FirstArraySlice; // as 2DArray UINT ArraySize; // as 2DArray } D3D10DDIARG_TEXCUBE_RENDERTARGETVIEW; typedef struct D3D10DDIARG_CREATERENDERTARGETVIEW { D3D10DDI_HRESOURCE hDrvResource; DXGI_FORMAT Format; // Fully qualified D3D10DDIRESOURCE_TYPE ResourceDimension; union { D3D10DDIARG_BUFFER_RENDERTARGETVIEW Buffer; D3D10DDIARG_TEX1D_RENDERTARGETVIEW Tex1D; D3D10DDIARG_TEX2D_RENDERTARGETVIEW Tex2D; D3D10DDIARG_TEX3D_RENDERTARGETVIEW Tex3D; D3D10DDIARG_TEXCUBE_RENDERTARGETVIEW TexCube; }; } D3D10DDIARG_CREATERENDERTARGETVIEW; // part of user mode Device interface: STDMETHOD_( SIZE_T, CalcPrivateRenderTargetViewSize )( D3D10DDI_HDEVICE hDrvDevice, CONST D3D10DDIARG_CREATERENDERTARGETVIEW* pCreateRenderTargetView ); STDMETHOD( CreateRenderTargetView )( D3D10DDI_HDEVICE hDrvDevice, CONST D3D10DDIARG_CREATERENDERTARGETVIEW* pCreateRenderTargetView, D3D10DDI_HRENDERTARGETVIEW hDrvRenderTargetView ); STDMETHOD_( void, DestroyRenderTargetView )( D3D10DDI_HDEVICE hDrvDevice, D3D10DDI_HRENDERTARGETVIEW hDrvRenderTargetView ); typedef struct D3D10DDI_HDEPTHSTENCILVIEW { void* m_pDrvPrivate; } D3D10DDI_HDEPTHSTENCILVIEW; typedef struct D3D10DDIARG_TEX1D_DEPTHSTENCILVIEW { UINT MipSlice; UINT FirstArraySlice; // < Resource ArraySize UINT ArraySize; // <= ( Resource ArraySize - FirstArraySlice ) } D3D10DDIARG_TEX1D_DEPTHSTENCILVIEW; typedef struct D3D10DDIARG_TEX2D_DEPTHSTENCILVIEW { UINT MipSlice; UINT FirstArraySlice; // < Resource ArraySize UINT ArraySize; // <= ( Resource ArraySize - FirstArraySlice ) } D3D10DDIARG_TEX2D_DEPTHSTENCILVIEW; typedef struct D3D10DDIARG_TEXCUBE_DEPTHSTENCILVIEW { UINT MipSlice; UINT FirstArraySlice; // as 2DArray UINT ArraySize; // as 2DArray } D3D10DDIARG_TEXCUBE_DEPTHSTENCILVIEW; typedef enum D3D11_DDI_CREATEDEPTHSTENCILVIEW_FLAG { D3D11_DDI_CREATE_DSV_READ_ONLY_DEPTH = 0x01L, D3D11_DDI_CREATE_DSV_READ_ONLY_STENCIL = 0x02L, D3D11_DDI_CREATE_DSV_FLAG_MASK = 0x03L, } D3D11_DDI_CREATEDEPTHSTENCILVIEW_FLAG; typedef struct D3D11DDIARG_CREATEDEPTHSTENCILVIEW { D3D10DDI_HRESOURCE hDrvResource; DXGI_FORMAT Format; // Fully qualified D3D10DDIRESOURCE_TYPE ResourceDimension; UINT Flags; union { D3D10DDIARG_TEX1D_DEPTHSTENCILVIEW Tex1D; D3D10DDIARG_TEX2D_DEPTHSTENCILVIEW Tex2D; D3D10DDIARG_TEXCUBE_DEPTHSTENCILVIEW TexCube; }; } D3D11DDIARG_CREATEDEPTHSTENCILVIEW; // part of user mode Device interface: STDMETHOD_( SIZE_T, CalcPrivateDepthStencilViewSize )( D3D10DDI_HDEVICE hDrvDevice, CONST D3D11DDIARG_CREATEDEPTHSTENCILVIEW* pCreateDepthStencilView ); STDMETHOD( CreateDepthStencilView )( D3D10DDI_HDEVICE hDrvDevice, CONST D3D11DDIARG_CREATEDEPTHSTENCILVIEW* pCreateDepthStencilView, D3D10DDI_HDEPTHSTENCILVIEW hDrvDepthStencilView ); STDMETHOD_( void, DestroyDepthStencilView )( D3D10DDI_HDEVICE hDrvDevice, D3D10DDI_HDEPTHSTENCILVIEW hDrvDepthStencilView ); typedef struct D3D11DDI_HUNORDEREDACCESSVIEW { void* m_pDrvPrivate; } D3D11DDI_HUNORDEREDACCESSVIEW; typedef struct D3D11DDIARG_BUFFER_UNORDEREDACCESSVIEW { UINT FirstElement; // < ResourceWidth / ElementSize UINT NumElements; // <= ( ResourceWidth / ElementSize - ElementOffset ) UINT Flags; // See D3D11_DDI_BUFFER_UAV_FLAG* below } D3D11DDIARG_BUFFER_UNORDEREDACCESSVIEW; #define D3D11_DDI_BUFFER_UAV_FLAG_RAW 0x00000001 #define D3D11_DDI_BUFFER_UAV_FLAG_APPEND 0x00000002 #define D3D11_DDI_BUFFER_UAV_FLAG_COUNTER 0x00000004 typedef struct D3D11DDIARG_TEX1D_UNORDEREDACCESSVIEW { UINT MipSlice; UINT FirstArraySlice; // < Resource ArraySize UINT ArraySize; // <= ( Resource ArraySize - FirstArraySlice ) } D3D11DDIARG_TEX1D_UNORDEREDACCESSVIEW; typedef struct D3D11DDIARG_TEX2D_UNORDEREDACCESSVIEW { UINT MipSlice; UINT FirstArraySlice; // < Resource ArraySize UINT ArraySize; // <= ( Resource ArraySize - FirstArraySlice ) } D3D11DDIARG_TEX2D_UNORDEREDACCESSVIEW; typedef struct D3D11DDIARG_TEX3D_UNORDEREDACCESSVIEW { UINT MipSlice; UINT FirstW; // < Resource MipSlice W dimension UINT WSize; // <= ( Resource MipSlice W dimension - FirstW ) } D3D11DDIARG_TEX3D_UNORDEREDACCESSVIEW; typedef struct D3D11DDIARG_CREATEUNORDEREDACCESSVIEW { D3D10DDI_HRESOURCE hDrvResource; DXGI_FORMAT Format; // Fully qualified D3D10DDIRESOURCE_TYPE ResourceDimension; // Runtime will never set this to TexCube union { D3D11DDIARG_BUFFER_UNORDEREDACCESSVIEW Buffer; D3D11DDIARG_TEX1D_UNORDEREDACCESSVIEW Tex1D; D3D11DDIARG_TEX2D_UNORDEREDACCESSVIEW Tex2D; D3D11DDIARG_TEX3D_UNORDEREDACCESSVIEW Tex3D; }; } D3D11DDIARG_CREATEUNORDEREDACCESSVIEW; // part of user mode Device interface: STDMETHOD_( SIZE_T, CalcPrivateUnorderedAccessViewSize )( D3D10DDI_HDEVICE hDrvDevice, CONST D3D11DDIARG_CREATEUNORDEREDACCESS* pCreateUnorderedAccessView ); STDMETHOD( CreateUnorderedAccessView )( D3D10DDI_HDEVICE hDrvDevice, CONST D3D11DDIARG_CREATEUNORDEREDACCESSVIEW* pCreateUnorderedAccessView, D3D10DDI_HUNORDEREDACCESSVIEW hDrvUnorderedAccessView ); STDMETHOD_( void, DestroyDepthStencilView )( D3D10DDI_HDEVICE hDrvDevice, D3D10DDI_HUNORDEREDACCESSVIEW hDrvUnorderedAccessView ); - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -