PFND3DDDI_SETPRIORITYCB función de devolución de llamada (d3dumddi.h)
La función pfnSetPriorityCb establece el nivel de prioridad de un recurso o lista de asignaciones.
Sintaxis
PFND3DDDI_SETPRIORITYCB Pfnd3dddiSetprioritycb;
HRESULT Pfnd3dddiSetprioritycb(
HANDLE hDevice,
D3DDDICB_SETPRIORITY *unnamedParam2
)
{...}
Parámetros
hDevice
Identificador del dispositivo de visualización (contexto de gráficos).
unnamedParam2
pData [in]
Puntero a una estructura de D3DDDICB_SETPRIORITY que describe el nivel de prioridad en el que se va a establecer un recurso o una lista de asignaciones.
Valor devuelto
pfnSetPriorityCb devuelve uno de los siguientes valores:
Código devuelto | Descripción |
---|---|
S_OK | El nivel de prioridad se estableció correctamente. |
E_INVALIDARG | Los parámetros se validaron y determinaron que son incorrectos. |
Esta función también puede devolver otros valores HRESULT.
Comentarios
El controlador de pantalla en modo de usuario puede llamar a la función pfnSetPriorityCb para establecer la prioridad del recurso subyacente o la lista de asignaciones. Si se establece el nivel de prioridad de un recurso, todas las asignaciones que pertenecen al recurso se establecen en el nivel de prioridad especificado. Normalmente, el controlador de visualización en modo de usuario establece la prioridad de un recurso o una lista de asignaciones después de que el tiempo de ejecución de Microsoft Direct3D llame a la función SetPriority o SetResourcePriorityDXGI del controlador de visualización en modo de usuario para establecer la prioridad de expulsión de memoria para un recurso. Sin embargo, el controlador de pantalla en modo de usuario puede establecer la prioridad de las asignaciones en cualquier momento.
Después de que una aplicación solicite establecer el nivel de prioridad de una superficie, el controlador de visualización en modo de usuario debe establecer el recurso o la lista adecuados de asignaciones en el nivel de prioridad especificado por la aplicación.
El controlador puede usar niveles de prioridad distintos de los valores definidos anteriores cuando corresponda. Por ejemplo, marcar una asignación con un nivel de prioridad de 0x78000001 indica que la asignación está ligeramente por encima de lo normal.
Ejemplos
En el ejemplo de código siguiente se muestra cómo establecer el nivel de prioridad.
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));
}
Requisitos
Requisito | Value |
---|---|
Cliente mínimo compatible | Disponible en Windows Vista y versiones posteriores de los sistemas operativos Windows. |
Plataforma de destino | Escritorio |
Encabezado | d3dumddi.h (incluya D3dumddi.h) |