Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
The pfnPresentCb function copies content from a source allocation.
Syntax
PFND3DDDI_PRESENTCB Pfnd3dddiPresentcb;
HRESULT Pfnd3dddiPresentcb(
HANDLE hDevice,
D3DDDICB_PRESENT *unnamedParam2
)
{...}
Parameters
hDevice
A handle to a display device (graphics context).
unnamedParam2
pData [in]
A pointer to a D3DDDICB_PRESENT structure that describes the source allocation that content is copied from.
Return value
pfnPresentCb returns one of the following values:
Return code | Description |
---|---|
S_OK | Content was successfully copied. |
E_OUTOFMEMORY | pfnPresentCb could not complete because of insufficient memory. |
E_INVALIDARG | Parameters were validated and determined to be incorrect. |
This function might also return other HRESULT values.
Remarks
The user-mode display driver sets the hContext member of the D3DDDICB_PRESENT structure that is pointed to by the pData parameter to a context that it previously created by calling the pfnCreateContextCb function. The user-mode display driver must create at least one context when the Microsoft Direct3D runtime calls the driver's CreateDevice or CreateDevice(D3D10) function to create a device. The Direct3D runtime sends the present operation to a created context.
Direct3D Version 11 Note: For more information about how the driver calls pfnPresentCb, see Changes from Direct3D 10.
Examples
The following code example shows how to color-fill a destination surface.
HRESULT hr=S_OK;
// A color-fill request that does not have a source surface
D3DDDICB_PRESENT PresentCBData = {0};
PresentCBData.hContext = m_sContexts[MULTI_ENGINE_NODE_3D].hContext;
PresentCBData.hSrcAllocation = NULL;
if (pPresent->hDstResource) {
DWORD dwDstSurf = ((DWORD)(DWORD_PTR)pPresent->hDstResource) + pPresent->DstSubResourceIndex;
_ASSERT(dwDstSurf < m_RTbl.Size());
m_RTbl[dwDstSurf].m_qwBatch = m_qwBatch;
PresentCBData.hDstAllocation = R200GetSurfaceAllocHandle(m_pR200Ctx, dwDstSurf);
}
hr = m_d3dCallbacks.pfnPresentCb(m_hD3D, &PresentCBData);
return hr;
Requirements
Requirement | Value |
---|---|
Minimum supported client | Available in Windows Vista and later versions of the Windows operating systems. |
Target Platform | Desktop |
Header | d3dumddi.h (include D3dumddi.h) |