Поделиться через


структура D3D10DDI_DEVICEFUNCS (d3d10umddi.h)

Структура D3D10DDI_DEVICEFUNCS содержит функции, которые драйвер отображения пользовательского режима может реализовать для отрисовки графических примитивов и изменения состояния обработки.

Синтаксис

typedef struct D3D10DDI_DEVICEFUNCS {
  PFND3D10DDI_RESOURCEUPDATESUBRESOURCEUP               pfnDefaultConstantBufferUpdateSubresourceUP;
  PFND3D10DDI_SETCONSTANTBUFFERS                        pfnVsSetConstantBuffers;
  PFND3D10DDI_SETSHADERRESOURCES                        pfnPsSetShaderResources;
  PFND3D10DDI_SETSHADER                                 pfnPsSetShader;
  PFND3D10DDI_SETSAMPLERS                               pfnPsSetSamplers;
  PFND3D10DDI_SETSHADER                                 pfnVsSetShader;
  PFND3D10DDI_DRAWINDEXED                               pfnDrawIndexed;
  PFND3D10DDI_DRAW                                      pfnDraw;
  PFND3D10DDI_RESOURCEMAP                               pfnDynamicIABufferMapNoOverwrite;
  PFND3D10DDI_RESOURCEUNMAP                             pfnDynamicIABufferUnmap;
  PFND3D10DDI_RESOURCEMAP                               pfnDynamicConstantBufferMapDiscard;
  PFND3D10DDI_RESOURCEMAP                               pfnDynamicIABufferMapDiscard;
  PFND3D10DDI_RESOURCEUNMAP                             pfnDynamicConstantBufferUnmap;
  PFND3D10DDI_SETCONSTANTBUFFERS                        pfnPsSetConstantBuffers;
  PFND3D10DDI_SETINPUTLAYOUT                            pfnIaSetInputLayout;
  PFND3D10DDI_IA_SETVERTEXBUFFERS                       pfnIaSetVertexBuffers;
  PFND3D10DDI_IA_SETINDEXBUFFER                         pfnIaSetIndexBuffer;
  PFND3D10DDI_DRAWINDEXEDINSTANCED                      pfnDrawIndexedInstanced;
  PFND3D10DDI_DRAWINSTANCED                             pfnDrawInstanced;
  PFND3D10DDI_RESOURCEMAP                               pfnDynamicResourceMapDiscard;
  PFND3D10DDI_RESOURCEUNMAP                             pfnDynamicResourceUnmap;
  PFND3D10DDI_SETCONSTANTBUFFERS                        pfnGsSetConstantBuffers;
  PFND3D10DDI_SETSHADER                                 pfnGsSetShader;
  PFND3D10DDI_IA_SETTOPOLOGY                            pfnIaSetTopology;
  PFND3D10DDI_RESOURCEMAP                               pfnStagingResourceMap;
  PFND3D10DDI_RESOURCEUNMAP                             pfnStagingResourceUnmap;
  PFND3D10DDI_SETSHADERRESOURCES                        pfnVsSetShaderResources;
  PFND3D10DDI_SETSAMPLERS                               pfnVsSetSamplers;
  PFND3D10DDI_SETSHADERRESOURCES                        pfnGsSetShaderResources;
  PFND3D10DDI_SETSAMPLERS                               pfnGsSetSamplers;
  PFND3D10DDI_SETRENDERTARGETS                          pfnSetRenderTargets;
  PFND3D10DDI_SHADERRESOURCEVIEWREADAFTERWRITEHAZARD    pfnShaderResourceViewReadAfterWriteHazard;
  PFND3D10DDI_RESOURCEREADAFTERWRITEHAZARD              pfnResourceReadAfterWriteHazard;
  PFND3D10DDI_SETBLENDSTATE                             pfnSetBlendState;
  PFND3D10DDI_SETDEPTHSTENCILSTATE                      pfnSetDepthStencilState;
  PFND3D10DDI_SETRASTERIZERSTATE                        pfnSetRasterizerState;
  PFND3D10DDI_QUERYEND                                  pfnQueryEnd;
  PFND3D10DDI_QUERYBEGIN                                pfnQueryBegin;
  PFND3D10DDI_RESOURCECOPYREGION                        pfnResourceCopyRegion;
  PFND3D10DDI_RESOURCEUPDATESUBRESOURCEUP               pfnResourceUpdateSubresourceUP;
  PFND3D10DDI_SO_SETTARGETS                             pfnSoSetTargets;
  PFND3D10DDI_DRAWAUTO                                  pfnDrawAuto;
  PFND3D10DDI_SETVIEWPORTS                              pfnSetViewports;
  PFND3D10DDI_SETSCISSORRECTS                           pfnSetScissorRects;
  PFND3D10DDI_CLEARRENDERTARGETVIEW                     pfnClearRenderTargetView;
  PFND3D10DDI_CLEARDEPTHSTENCILVIEW                     pfnClearDepthStencilView;
  PFND3D10DDI_SETPREDICATION                            pfnSetPredication;
  PFND3D10DDI_QUERYGETDATA                              pfnQueryGetData;
  PFND3D10DDI_FLUSH                                     pfnFlush;
  PFND3D10DDI_GENMIPS                                   pfnGenMips;
  PFND3D10DDI_RESOURCECOPY                              pfnResourceCopy;
  PFND3D10DDI_RESOURCERESOLVESUBRESOURCE                pfnResourceResolveSubresource;
  PFND3D10DDI_RESOURCEMAP                               pfnResourceMap;
  PFND3D10DDI_RESOURCEUNMAP                             pfnResourceUnmap;
  PFND3D10DDI_RESOURCEISSTAGINGBUSY                     pfnResourceIsStagingBusy;
  PFND3D10DDI_RELOCATEDEVICEFUNCS                       pfnRelocateDeviceFuncs;
  PFND3D10DDI_CALCPRIVATERESOURCESIZE                   pfnCalcPrivateResourceSize;
  PFND3D10DDI_CALCPRIVATEOPENEDRESOURCESIZE             pfnCalcPrivateOpenedResourceSize;
  PFND3D10DDI_CREATERESOURCE                            pfnCreateResource;
  PFND3D10DDI_OPENRESOURCE                              pfnOpenResource;
  PFND3D10DDI_DESTROYRESOURCE                           pfnDestroyResource;
  PFND3D10DDI_CALCPRIVATESHADERRESOURCEVIEWSIZE         pfnCalcPrivateShaderResourceViewSize;
  PFND3D10DDI_CREATESHADERRESOURCEVIEW                  pfnCreateShaderResourceView;
  PFND3D10DDI_DESTROYSHADERRESOURCEVIEW                 pfnDestroyShaderResourceView;
  PFND3D10DDI_CALCPRIVATERENDERTARGETVIEWSIZE           pfnCalcPrivateRenderTargetViewSize;
  PFND3D10DDI_CREATERENDERTARGETVIEW                    pfnCreateRenderTargetView;
  PFND3D10DDI_DESTROYRENDERTARGETVIEW                   pfnDestroyRenderTargetView;
  PFND3D10DDI_CALCPRIVATEDEPTHSTENCILVIEWSIZE           pfnCalcPrivateDepthStencilViewSize;
  PFND3D10DDI_CREATEDEPTHSTENCILVIEW                    pfnCreateDepthStencilView;
  PFND3D10DDI_DESTROYDEPTHSTENCILVIEW                   pfnDestroyDepthStencilView;
  PFND3D10DDI_CALCPRIVATEELEMENTLAYOUTSIZE              pfnCalcPrivateElementLayoutSize;
  PFND3D10DDI_CREATEELEMENTLAYOUT                       pfnCreateElementLayout;
  PFND3D10DDI_DESTROYELEMENTLAYOUT                      pfnDestroyElementLayout;
  PFND3D10DDI_CALCPRIVATEBLENDSTATESIZE                 pfnCalcPrivateBlendStateSize;
  PFND3D10DDI_CREATEBLENDSTATE                          pfnCreateBlendState;
  PFND3D10DDI_DESTROYBLENDSTATE                         pfnDestroyBlendState;
  PFND3D10DDI_CALCPRIVATEDEPTHSTENCILSTATESIZE          pfnCalcPrivateDepthStencilStateSize;
  PFND3D10DDI_CREATEDEPTHSTENCILSTATE                   pfnCreateDepthStencilState;
  PFND3D10DDI_DESTROYDEPTHSTENCILSTATE                  pfnDestroyDepthStencilState;
  PFND3D10DDI_CALCPRIVATERASTERIZERSTATESIZE            pfnCalcPrivateRasterizerStateSize;
  PFND3D10DDI_CREATERASTERIZERSTATE                     pfnCreateRasterizerState;
  PFND3D10DDI_DESTROYRASTERIZERSTATE                    pfnDestroyRasterizerState;
  PFND3D10DDI_CALCPRIVATESHADERSIZE                     pfnCalcPrivateShaderSize;
  PFND3D10DDI_CREATEVERTEXSHADER                        pfnCreateVertexShader;
  PFND3D10DDI_CREATEGEOMETRYSHADER                      pfnCreateGeometryShader;
  PFND3D10DDI_CREATEPIXELSHADER                         pfnCreatePixelShader;
  PFND3D10DDI_CALCPRIVATEGEOMETRYSHADERWITHSTREAMOUTPUT pfnCalcPrivateGeometryShaderWithStreamOutput;
  PFND3D10DDI_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT      pfnCreateGeometryShaderWithStreamOutput;
  PFND3D10DDI_DESTROYSHADER                             pfnDestroyShader;
  PFND3D10DDI_CALCPRIVATESAMPLERSIZE                    pfnCalcPrivateSamplerSize;
  PFND3D10DDI_CREATESAMPLER                             pfnCreateSampler;
  PFND3D10DDI_DESTROYSAMPLER                            pfnDestroySampler;
  PFND3D10DDI_CALCPRIVATEQUERYSIZE                      pfnCalcPrivateQuerySize;
  PFND3D10DDI_CREATEQUERY                               pfnCreateQuery;
  PFND3D10DDI_DESTROYQUERY                              pfnDestroyQuery;
  PFND3D10DDI_CHECKFORMATSUPPORT                        pfnCheckFormatSupport;
  PFND3D10DDI_CHECKMULTISAMPLEQUALITYLEVELS             pfnCheckMultisampleQualityLevels;
  PFND3D10DDI_CHECKCOUNTERINFO                          pfnCheckCounterInfo;
  PFND3D10DDI_CHECKCOUNTER                              pfnCheckCounter;
  PFND3D10DDI_DESTROYDEVICE                             pfnDestroyDevice;
  PFND3D10DDI_SETTEXTFILTERSIZE                         pfnSetTextFilterSize;
  PFND3D10DDI_RESETPRIMITIVEID                          pfnResetPrimitiveID;
  PFND3D10DDI_SETVERTEXPIPELINEOUTPUT                   pfnSetVertexPipelineOutput;
} D3D10DDI_DEVICEFUNCS;

Члены

pfnDefaultConstantBufferUpdateSubresourceUP

Указатель на функцию DefaultConstantBufferUpdateSubresourceUP драйвера.

pfnVsSetConstantBuffers

Указатель на функцию VsSetConstantBuffers драйвера.

pfnPsSetShaderResources

Указатель на функцию PsSetShaderResources драйвера.

pfnPsSetShader

Указатель на функцию PsSetShader драйвера.

pfnPsSetSamplers

Указатель на функцию PsSetSamplers драйвера.

pfnVsSetShader

Указатель на функцию VsSetShader драйвера.

pfnDrawIndexed

Указатель на функцию DrawIndexed драйвера.

pfnDraw

Указатель на функцию Draw драйвера.

pfnDynamicIABufferMapNoOverwrite

Указатель на функцию ResourceMap драйвера. Дополнительные сведения о том, следует ли реализовать отдельную функцию DynamicIABufferMapNoOverwrite или указывать на многоцелевую карту ResourceMap, см. в разделе Примечания resourceMap.

pfnDynamicIABufferUnmap

Указатель на функцию ResourceUnmap драйвера. Дополнительные сведения о том, следует ли реализовать отдельную функцию DynamicIABufferUnmap или указать на многоцелевой ResourceUnmap, см. в разделе Примечания статьи ResourceMap.

pfnDynamicConstantBufferMapDiscard

Указатель на функцию ResourceMap драйвера. Дополнительные сведения о том, следует ли реализовать отдельную функцию DynamicConstantBufferMapDiscard или указывать на многоцелевую карту ResourceMap, см. в разделе Примечания resourceMap.

pfnDynamicIABufferMapDiscard

Указатель на функцию ResourceMap драйвера. Дополнительные сведения о том, следует ли реализовать отдельную функцию DynamicIABufferMapDiscard или указывать на многоцелевую карту ResourceMap, см. в разделе Примечания статьи ResourceMap.

pfnDynamicConstantBufferUnmap

Указатель на функцию ResourceUnmap драйвера. Дополнительные сведения о том, следует ли реализовать отдельную функцию DynamicConstantBufferUnmap или указать на многоцелевой ResourceUnmap, см. в разделе Примечания статьи ResourceMap.

pfnPsSetConstantBuffers

Указатель на функцию PsSetConstantBuffers драйвера.

pfnIaSetInputLayout

Указатель на функцию IaSetInputLayout драйвера.

pfnIaSetVertexBuffers

Указатель на функцию IaSetVertexBuffers драйвера.

pfnIaSetIndexBuffer

Указатель на функцию IaSetIndexBuffer драйвера.

pfnDrawIndexedInstanced

Указатель на функцию DrawIndexedInstanced драйвера.

pfnDrawInstanced

Указатель на функцию DrawInstanced драйвера.

pfnDynamicResourceMapDiscard

Указатель на функцию ResourceMap драйвера. Дополнительные сведения о том, следует ли реализовать отдельную функцию DynamicResourceMapDiscard или указать на многоцелевую карту ResourceMap, см. в разделе Примечания resourceMap.

pfnDynamicResourceUnmap

Указатель на функцию ResourceUnmap драйвера. Дополнительные сведения о том, следует ли реализовать отдельную функцию DynamicResourceUnmap или указывать на многоцелевую функцию ResourceUnmap, см. в разделе Примечания resourceUnmap.

pfnGsSetConstantBuffers

Указатель на функцию GsSetConstantBuffers драйвера.

pfnGsSetShader

Указатель на функцию GsSetShader драйвера.

pfnIaSetTopology

Указатель на функцию IaSetTopology драйвера.

pfnStagingResourceMap

Указатель на функцию ResourceMap драйвера. Дополнительные сведения о том, следует ли реализовать отдельную функцию StagingResourceMap или указать на многоцелевую карту ResourceMap, см. в разделе Примечания статьи ResourceMap.

pfnStagingResourceUnmap

Указатель на функцию ResourceUnmap драйвера. Дополнительные сведения о том, следует ли реализовать отдельную функцию StagingResourceUnmap или указать на многоцелевую функцию ResourceUnmap, см. в разделе Примечания resourceMap.

pfnVsSetShaderResources

Указатель на функцию VsSetShaderResources драйвера.

pfnVsSetSamplers

Указатель на функцию VsSetSamplers драйвера.

pfnGsSetShaderResources

Указатель на функцию GsSetShaderResources драйвера.

pfnGsSetSamplers

Указатель на функцию GsSetSamplers драйвера.

pfnSetRenderTargets

Указатель на функцию SetRenderTargets драйвера.

pfnShaderResourceViewReadAfterWriteHazard

Указатель на функцию ShaderResourceViewReadAfterWriteHazard драйвера.

pfnResourceReadAfterWriteHazard

Указатель на функцию ResourceReadAfterWriteHazard драйвера.

pfnSetBlendState

Указатель на функцию SetBlendState драйвера.

pfnSetDepthStencilState

Указатель на функцию SetDepthStencilState драйвера.

pfnSetRasterizerState

Указатель на функцию SetRasterizerState драйвера.

pfnQueryEnd

Указатель на функцию QueryEnd драйвера.

pfnQueryBegin

Указатель на функцию QueryBegin драйвера.

pfnResourceCopyRegion

Указатель на функцию ResourceCopyRegion драйвера.

pfnResourceUpdateSubresourceUP

Указатель на функцию ResourceUpdateSubresourceUP драйвера.

pfnSoSetTargets

Указатель на функцию SoSetTargets драйвера.

pfnDrawAuto

Указатель на функцию DrawAuto драйвера.

pfnSetViewports

Указатель на функцию SetViewports драйвера.

pfnSetScissorRects

Указатель на функцию SetScissorRects драйвера.

pfnClearRenderTargetView

Указатель на функцию ClearRenderTargetView драйвера.

pfnClearDepthStencilView

Указатель на функцию ClearDepthStencilView драйвера.

pfnSetPredication

Указатель на функцию SetPredication драйвера.

pfnQueryGetData

Указатель на функцию QueryGetData драйвера.

pfnFlush

Указатель на функцию Flush(D3D10) драйвера.

pfnGenMips

Указатель на функцию GenMips драйвера.

pfnResourceCopy

Указатель на функцию ResourceCopy драйвера.

pfnResourceResolveSubresource

Указатель на функцию ResourceResolveSubresource драйвера.

pfnResourceMap

Указатель на функцию ResourceMap драйвера.

pfnResourceUnmap

Указатель на функцию ResourceUnmap драйвера.

pfnResourceIsStagingBusy

Указатель на функцию ResourceIsStagingBusy драйвера.

pfnRelocateDeviceFuncs

Указатель на функцию RelocateDeviceFuncs драйвера.

pfnCalcPrivateResourceSize

Указатель на функцию CalcPrivateResourceSize драйвера.

pfnCalcPrivateOpenedResourceSize

Указатель на функцию CalcPrivateOpenedResourceSize драйвера.

pfnCreateResource

Указатель на функцию CreateResource(D3D10) драйвера.

pfnOpenResource

Указатель на функцию OpenResource(D3D10) драйвера.

pfnDestroyResource

Указатель на функцию DestroyResource(D3D10) драйвера.

pfnCalcPrivateShaderResourceViewSize

Указатель на функцию CalcPrivateShaderResourceViewSize драйвера.

pfnCreateShaderResourceView

Указатель на функцию CreateShaderResourceView драйвера.

pfnDestroyShaderResourceView

Указатель на функцию DestroyShaderResourceView драйвера.

pfnCalcPrivateRenderTargetViewSize

Указатель на функцию CalcPrivateRenderTargetViewSize драйвера.

pfnCreateRenderTargetView

Указатель на функцию CreateRenderTargetView драйвера.

pfnDestroyRenderTargetView

Указатель на функцию DestroyRenderTargetView драйвера.

pfnCalcPrivateDepthStencilViewSize

Указатель на функцию CalcPrivateDepthStencilViewSize драйвера.

pfnCreateDepthStencilView

Указатель на функцию CreateDepthStencilView драйвера.

pfnDestroyDepthStencilView

Указатель на функцию DestroyDepthStencilView драйвера.

pfnCalcPrivateElementLayoutSize

Указатель на функцию CalcPrivateElementLayoutSize драйвера.

pfnCreateElementLayout

Указатель на функцию CreateElementLayout драйвера.

pfnDestroyElementLayout

Указатель на функцию DestroyElementLayout драйвера.

pfnCalcPrivateBlendStateSize

Указатель на функцию CalcPrivateBlendStateSize драйвера.

pfnCreateBlendState

Указатель на функцию CreateBlendState драйвера.

pfnDestroyBlendState

Указатель на функцию DestroyBlendState драйвера.

pfnCalcPrivateDepthStencilStateSize

Указатель на функцию CalcPrivateDepthStencilStateSize драйвера.

pfnCreateDepthStencilState

Указатель на функцию CreateDepthStencilState драйвера.

pfnDestroyDepthStencilState

Указатель на функцию DestroyDepthStencilState драйвера.

pfnCalcPrivateRasterizerStateSize

Указатель на функцию CalcPrivateRasterizerStateSize драйвера.

pfnCreateRasterizerState

Указатель на функцию CreateRasterizerState драйвера.

pfnDestroyRasterizerState

Указатель на функцию DestroyRasterizerState драйвера.

pfnCalcPrivateShaderSize

Указатель на функцию CalcPrivateShaderSize драйвера.

pfnCreateVertexShader

Указатель на функцию CreateVertexShader(D3D10) драйвера.

pfnCreateGeometryShader

Указатель на функцию CreateGeometryShader драйвера.

pfnCreatePixelShader

Указатель на функцию CreatePixelShader(D3D10) драйвера.

pfnCalcPrivateGeometryShaderWithStreamOutput

Указатель на функцию CalcPrivateGeometryShaderWithStreamOutput драйвера.

pfnCreateGeometryShaderWithStreamOutput

Указатель на функцию CreateGeometryShaderWithStreamOutput драйвера.

pfnDestroyShader

Указатель на функцию DestroyShader драйвера.

pfnCalcPrivateSamplerSize

Указатель на функцию CalcPrivateSamplerSize драйвера.

pfnCreateSampler

Указатель на функцию CreateSampler драйвера.

pfnDestroySampler

Указатель на функцию DestroySampler драйвера.

pfnCalcPrivateQuerySize

Указатель на функцию CalcPrivateQuerySize драйвера.

pfnCreateQuery

Указатель на функцию CreateQuery(D3D10) драйвера.

pfnDestroyQuery

Указатель на функцию DestroyQuery(D3D10) драйвера.

pfnCheckFormatSupport

Указатель на функцию CheckFormatSupport драйвера.

pfnCheckMultisampleQualityLevels

Указатель на функцию CheckMultisampleQualityLevels драйвера.

pfnCheckCounterInfo

Указатель на функцию CheckCounterInfo драйвера.

pfnCheckCounter

Указатель на функцию CheckCounter драйвера.

pfnDestroyDevice

Указатель на функцию DestroyDevice(D3D10) драйвера.

pfnSetTextFilterSize

Указатель на функцию SetTextFilterSize драйвера.

pfnResetPrimitiveID

pfnSetVertexPipelineOutput

Комментарии

Порядок функций драйвера отображения в пользовательском режиме (т. е. порядок членов структуры D3D10DDI_DEVICEFUNCS) находится в порядке уменьшения приоритета (в отношении производительности).

Драйвер отображения пользовательского режима может использовать разные имена для этих функций, так как адрес таблицы функций (эта структура) является общим для среды выполнения Direct3D 10 и драйвера посредством вызова функции CreateDevice(D3D10) драйвера.

Члены pfnResetPrimitiveID и pfnSetVertexPipelineOutput (не показаны здесь) и их типы данных зарезервированы для системного использования и не должны использоваться в драйвере.

Требования

Требование Значение
Минимальная версия клиента Доступно в Windows Vista и более поздних версиях операционных систем Windows.
Верхняя часть d3d10umddi.h (включая D3d10umddi.h)

См. также раздел

CreateDevice(D3D10)

D3D10DDIARG_CREATEDEVICE