Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Você está tentando descobrir mais informações sobre objetos Direct3D durante a depuração? Por exemplo, a captura de tela a seguir mostra o que você normalmente vê quando olha para uma interface Direct3D na janela de observação.
Você pode habilitar os principais objetos de depuração para que um objeto espelhado que contenha todas as propriedades do objeto possa ser exibido na janela de observação. Basta incluir os seguintes #define em seu código antes do arquivo D3D9.h:
#define D3D_DEBUG_INFO
Para habilitar as informações de depuração, o #define deve ser construído antes do arquivo D3D9.h (Qualquer programa usando DXUT ativará automaticamente D3D_DEBUG_INFO quando o programa for compilado para depuração). Se você estiver executando um exemplo de SDK, poderá ver isso em DXStdAfx.h (que afeta todos os exemplos de C++). Você também deve estar a executar a versão de depuração do runtime do Direct3D (que pode ser ativada no Painel de Controlo, se necessário).
Aqui está um exemplo usando o BasicHLSL Sample.
- Adicione o #define ao arquivo Dxstdafx.h antes da linha 37.
- Crie um projeto de depuração.
- Definir um ponto de interrupção na linha 307 em BasicHLSL.cpp
- Execute o depurador.
A captura de tela a seguir mostra o tipo de informações detalhadas que você pode obter sobre um objeto de textura Direct3D na janela de observação.
Observação
Os nomes de propriedade do objeto são visíveis e os valores estão corretos somente quando o runtime de depuração está habilitado. Quando executado em relação ao tempo de execução de varejo, os valores são inválidos.
Utilizar a pilha de chamadas para depuração avançada
Com a depuração do Direct3D ativada, pode-se também examinar a pilha de chamadas cada vez que um objeto é criado. Isso tornará seu aplicativo muito lento, mas pode ser usado para verificar se há vazamentos de recursos. Para escrever a pilha de chamadas, defina a seguinte chave do registo como 1:
\\HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Direct3D\\
D3D9Debugging\\EnableCreationStack
Construir seu aplicativo com debug ativado lhe dará acesso a esta variável adicional:
LPCWSTR CreationCallStack;
Essa variável armazenará a pilha de chamadas sempre que um objeto for criado. Isso tornará seu aplicativo muito lento, mas pode ser usado para depurar vazamentos de recursos.
Tópicos relacionados