PFND3DDDI_SETPRIORITYCB função de retorno de chamada (d3dumddi.h)
A função pfnSetPriorityCb define o nível de prioridade de um recurso ou lista de alocações.
Sintaxe
PFND3DDDI_SETPRIORITYCB Pfnd3dddiSetprioritycb;
HRESULT Pfnd3dddiSetprioritycb(
HANDLE hDevice,
D3DDDICB_SETPRIORITY *unnamedParam2
)
{...}
Parâmetros
hDevice
Um identificador para o dispositivo de exibição (contexto gráfico).
unnamedParam2
pData [in]
Um ponteiro para uma estrutura D3DDDICB_SETPRIORITY que descreve o nível de prioridade para definir um recurso ou uma lista de alocações.
Retornar valor
pfnSetPriorityCb retorna um dos seguintes valores:
Código de retorno | Descrição |
---|---|
S_OK | O nível de prioridade foi definido com êxito. |
E_INVALIDARG | Os parâmetros foram validados e determinados como incorretos. |
Essa função também pode retornar outros valores HRESULT.
Comentários
O driver de exibição do modo de usuário pode chamar a função pfnSetPriorityCb para definir a prioridade do recurso subjacente ou da lista de alocações. Se o nível de prioridade de um recurso for definido, todas as alocações que pertencem ao recurso serão definidas para o nível de prioridade especificado. Normalmente, o driver de exibição do modo de usuário define a prioridade de um recurso ou lista de alocações depois que o runtime do Microsoft Direct3D chama a função SetPriority ou SetResourcePriorityDXGI do driver de exibição do modo de usuário para definir a prioridade de remoção da memória para um recurso. No entanto, o driver de exibição do modo de usuário pode definir a prioridade das alocações a qualquer momento.
Depois que um aplicativo solicita definir o nível de prioridade de uma superfície, o driver de exibição do modo de usuário deve definir o recurso apropriado ou a lista de alocações para o nível de prioridade especificado pelo aplicativo.
O driver pode usar níveis de prioridade diferentes dos valores definidos anteriormente quando apropriado. Por exemplo, marcar uma alocação com um nível de prioridade de 0x78000001 indica que a alocação está ligeiramente acima do normal.
Exemplos
O exemplo de código a seguir mostra como definir o nível de prioridade.
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 | Valor |
---|---|
Cliente mínimo com suporte | Disponível no Windows Vista e versões posteriores dos sistemas operacionais Windows. |
Plataforma de Destino | Área de Trabalho |
Cabeçalho | d3dumddi.h (inclua D3dumddi.h) |