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


функция обратного вызова PFND3DDDI_PRESENTCB (d3dumddi.h)

Функция pfnPresentCb копирует содержимое из исходного выделения.

Синтаксис

PFND3DDDI_PRESENTCB Pfnd3dddiPresentcb;

HRESULT Pfnd3dddiPresentcb(
  HANDLE hDevice,
  D3DDDICB_PRESENT *unnamedParam2
)
{...}

Параметры

hDevice

Дескриптор для устройства отображения (графический контекст).

unnamedParam2

pData [in]

Указатель на структуру D3DDDICB_PRESENT, описывающую выделение источника, из которое копируется содержимое.

Возвращаемое значение

pfnPresentCb возвращает одно из следующих значений:

Возвращаемый код Описание
S_OK Содержимое успешно скопировано.
E_OUTOFMEMORY pfnPresentCb не удалось завершить из-за нехватки памяти.
E_INVALIDARG Параметры были проверены и определены как неверные.

Эта функция также может возвращать другие значения HRESULT.

Замечания

Драйвер отображения в пользовательском режиме задает элемент hContext структуры D3DDDICB_PRESENT, на которую указывает параметр pData контекст, созданный ранее путем вызова функции pfnCreateContextCb. Драйвер отображения в пользовательском режиме должен создать по крайней мере один контекст, когда среда выполнения Microsoft Direct3D вызывает драйвера CreateDevice или CreateDevice(D3D10) функцию для создания устройства. Среда выполнения Direct3D отправляет текущую операцию в созданный контекст.

Direct3D версии 11 Примечание. Дополнительные сведения о том, как драйвер вызывает pfnPresentCb, см. изменения с Direct3D 10.

Примеры

В следующем примере кода показано, как заполнить область назначения цветом.

    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;

Требования

Требование Ценность
минимальные поддерживаемые клиентские Доступно в Windows Vista и более поздних версиях операционных систем Windows.
целевая платформа Настольный
заголовка d3dumddi.h (include D3dumddi.h)

См. также

CreateDevice

CreateDevice(D3D10)

D3DDDICB_PRESENT

D3DDDI_DEVICECALLBACKS

pfnCreateContextCb