Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Direct2D-felsökningsskiktet innehåller felsökningsmeddelanden för designtid som du kan använda för att minimera programfel vid körning. Den här översikten beskriver grunderna i Direct2D-felsökningsskiktet. Det förutsätter att du är bekant med att skapa grundläggande Direct2D-program.
Den här översikten innehåller följande avsnitt.
- Vad är Direct2D-felsökningsskiktet
- Installera Direct2D-felsökningsskiktet
- Aktivera felsökningsskiktet
- Felsökningsnivåer
- Relaterade ämnen
Vad är Direct2D-felsökningsskiktet
Direct2D-felsökningsskiktet, som implementeras separat från Direct2D i sin egen DLL med namnet d2d1debug.dll, innehåller felsökningsmeddelanden så att du kan använda Direct2D-funktioner korrekt. Felsökningsmeddelandena beror ofta på överträdelser av API-kontrakt, till exempel ogiltiga parametrar (kan vara Direct3D-relaterade), ogiltiga resurser, trådöverträdelser och prestandaproblem som att använda ett lager när ett klipp räcker. Om du vill ange hur mycket information som spåras av felsökningsskiktet kan du ange någon av de tre felsökningsnivåerna: information, varning och fel. och ett meddelande om nivåfel utlöser brytpunkten som hjälper dig att felsöka.
Installera Direct2D-felsökningsskiktet
Anvisningar om hur du installerar felsökningsskiktet finns i Installera Direct2D-felsökningsskiktet.
Aktivera felsökningsskiktet
Om du vill aktivera felsökningsskiktet i programmet anger du ett annat D2D1_DEBUG_LEVEL värde än D2D1_DEBUG_LEVEL_NONE när du skapar en fabrik med funktionen D2D1CreateFactory.
Anteckning
Om Direct2D-felsökningsskiktet är aktiverat kan Direct2D-färghanteringseffekten (CLSID_D2D1ColorManagement) orsaka en åtkomstöverträdelse när du anger en färgkontext. Lösningen är att inaktivera felsökningsskiktet när du använder färghanteringseffekten
Om du aktiverar felsökningsskiktet för en fabrik kan du också felsöka information för alla objekt som skapats av fabriken.
I följande exempel aktiveras felsökningslagret för en fabrik när programmet kompileras för DEBUG-byggkonfigurationen.
// If you set the options.debugLevel to D2D1_DEBUG_LEVEL_NONE,
// the debug layer is not enabled.
#if defined(DEBUG) || defined(_DEBUG)
D2D1_FACTORY_OPTIONS options;
options.debugLevel = D2D1_DEBUG_LEVEL_INFORMATION;
hr = D2D1CreateFactory(
D2D1_FACTORY_TYPE_SINGLE_THREADED,
options,
&m_pD2DFactory
);
#else
hr = D2D1CreateFactory(
D2D1_FACTORY_TYPE_SINGLE_THREADED,
&m_pD2DFactory
);
#endif
Obs
Om inga fabriksalternativ har angetts eller om en felsökningsnivå på "ingen" har angetts anropas inte felsökningsskiktet. Felsökningsskiktet bör aldrig vara aktivt i slutversionen av ett program.
I nästa avsnitt beskrivs de olika felsökningsnivåer som definieras av D2D1_DEBUG_LEVEL uppräkning.
Felsökningsnivåer
Uppräkningen D2D1_DEBUG_LEVEL anger tre felsökningsnivåer: D2D1_DEBUG_LEVEL_ERROR (fel), D2D1_DEBUG_LEVEL_WARNING (varning) och D2D1_DEBUG_LEVEL_INFORMATION (information). Dessa nivåer tolkas på följande sätt:
Fel: Direct2D skickar allvarliga felmeddelanden till felsökningsskiktet. Om du till exempel bryter mot en trådbegränsning genereras ett allvarligt fel.
Varning: Direct2D skickar felmeddelanden och varningar till felsökningsskiktet så att du kan åtgärda något av dessa meddelanden.
Information: Direct2D skickar felmeddelanden, varningar och ytterligare diagnostikinformation till felsökningsskiktet. Till exempel skickas meddelanden om prestandaförbättringar på den här felsökningsnivån.
Värdet D2D1_DEBUG_LEVEL_NONE (ingen) anger att Direct2D inte tillhandahåller några felsökningsutdata.
Relaterade ämnen