функция обратного вызова PFND3DDDI_SETPRIORITYCB (d3dumddi.h)
Функция pfnSetPriorityCb задает уровень приоритета ресурса или списка выделений.
Синтаксис
PFND3DDDI_SETPRIORITYCB Pfnd3dddiSetprioritycb;
HRESULT Pfnd3dddiSetprioritycb(
HANDLE hDevice,
D3DDDICB_SETPRIORITY *unnamedParam2
)
{...}
Параметры
hDevice
Дескриптор устройства отображения (графический контекст).
unnamedParam2
pData [in]
Указатель на структуру D3DDDICB_SETPRIORITY , описывающую уровень приоритета для задания ресурса или списка выделений.
Возвращаемое значение
pfnSetPriorityCb возвращает одно из следующих значений:
Код возврата | Описание |
---|---|
S_OK | Уровень приоритета успешно задан. |
E_INVALIDARG | Параметры были проверены и определены как неверные. |
Эта функция также может возвращать другие значения HRESULT.
Комментарии
Драйвер отображения пользовательского режима может вызвать функцию pfnSetPriorityCb , чтобы задать приоритет базового ресурса или списка выделений. Если задан уровень приоритета ресурса, для всех выделений, относящихся к ресурсу, устанавливается указанный уровень приоритета. Как правило, драйвер отображения пользовательского режима задает приоритет ресурса или списка выделений после того, как среда выполнения Microsoft Direct3D вызывает функцию SetPriority или SetResourcePriorityDXGI драйвера отображения пользовательского режима, чтобы задать приоритет вытеснения из памяти для ресурса. Однако драйвер отображения пользовательского режима может задать приоритет выделения в любое время.
После того как приложение запросит установить уровень приоритета поверхности, драйвер отображения пользовательского режима должен задать для соответствующего ресурса или списка выделений уровень приоритета, заданный приложением.
Драйвер может использовать уровни приоритета, отличные от предыдущих определенных значений, если это необходимо. Например, пометка выделения с уровнем приоритета 0x78000001 указывает, что выделение немного выше нормы.
Примеры
В следующем примере кода показано, как задать уровень приоритета.
HRESULT CD3DContext::SetPriority(CONST D3DDDIARG_SETPRIORITY* pSetPriority) {
DWORD dwSurfaceHandle = (DWORD)(DWORD_PTR)pSetPriority->hResource;
CResource &res = m_RTbl[dwSurfaceHandle];
D3DDDICB_SETPRIORITY setPri;
UINT priority;
priority = pSetPriority->Priority;
memset(&setPri, 0, sizeof(setPri));
setPri.hResource = res.m_hResRuntime;
setPri.pPriorities = &priority;
return (m_d3dCallbacks.pfnSetPriorityCb(m_hD3D, &setPri));
}
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Доступно в Windows Vista и более поздних версиях операционных систем Windows. |
Целевая платформа | Персональный компьютер |
Верхняя часть | d3dumddi.h (включая D3dumddi.h) |