Partager via


Vue d’ensemble de la couche de débogage Direct2D

La couche de débogage Direct2D fournit des messages de débogage au moment du design pour vous permettre de réduire l’échec de l’application runtime. Cette vue d’ensemble décrit les principes de base de la couche de débogage Direct2D. Il suppose que vous êtes familiarisé avec la création d’applications Direct2D de base.

Cette vue d’ensemble contient les sections suivantes.

Qu’est-ce que la couche de débogage Direct2D

La couche de débogage Direct2D, implémentée séparément de Direct2D dans sa propre DLL nommée d2d1debug.dll, fournit des messages de débogage pour vous permettre d’utiliser avec précision les fonctions Direct2D. Les messages de débogage résultent souvent de violations de contrat d’API telles que des paramètres non valides (peuvent être liés à Direct3D), des ressources non valides, des violations de thread et des problèmes de performances tels que l’utilisation d’une couche lorsqu’un clip suffit. Pour spécifier la quantité d’informations tracées par la couche de débogage, vous pouvez spécifier l’un des trois niveaux de débogage : informations, avertissement et erreur ; et un message d’erreur de niveau déclenche le point d’arrêt pour vous aider à déboguer.

Installation de la couche Debug Direct2D

Pour obtenir des instructions sur l’installation de la couche de débogage, consultez Installation de la couche Debug Direct2D.

Activation de la couche Debug

Pour activer la couche de débogage dans votre application, spécifiez une valeur D2D1_DEBUG_LEVEL autre que D2D1_DEBUG_LEVEL_NONE lorsque vous créez une fabrique avec la fonction D2D1CreateFactory .

Notes

Si la couche de débogage Direct2D est activée, l’effet de gestion des couleurs Direct2D (CLSID_D2D1ColorManagement) peut entraîner une violation d’accès lors de la définition d’un contexte de couleur. La solution de contournement consiste à désactiver la couche de débogage lors de l’utilisation de l’effet de gestion des couleurs

 

L’activation de la couche de débogage pour une fabrique permet également d’obtenir des informations de débogage pour tout objet créé par cette fabrique.

L’exemple suivant active la couche de débogage pour une fabrique lorsque l’application est compilée pour la configuration de build DEBUG.

        // 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

Notes

Si aucune option de fabrique n’est spécifiée ou si un niveau de débogage « none » est spécifié, la couche de débogage n’est pas appelée. La couche de débogage ne doit jamais être active dans la version de publication d’une application.

 

La section suivante décrit les différents niveaux de débogage définis par l’énumération D2D1_DEBUG_LEVEL .

Niveaux de débogage

L’énumération D2D1_DEBUG_LEVEL spécifie trois niveaux de débogage : D2D1_DEBUG_LEVEL_ERROR (erreur), D2D1_DEBUG_LEVEL_WARNING (avertissement) et D2D1_DEBUG_LEVEL_INFORMATION (informations). Ces niveaux sont interprétés comme suit :

  • Erreur: Direct2D envoie des messages d’erreur graves à la couche de débogage. Par exemple, la rupture d’une contrainte de thread génère une erreur grave.

  • Avertissement: Direct2D envoie des messages d’erreur et des avertissements à la couche de débogage afin que vous puissiez traiter l’un de ces messages.

  • Informations: Direct2D envoie des messages d’erreur, des avertissements et des informations de diagnostic supplémentaires à la couche de débogage. Par exemple, des messages d’amélioration des performances seront envoyés à ce niveau de débogage.

La valeur D2D1_DEBUG_LEVEL_NONE (none) indique que Direct2D ne fournit aucune sortie de débogage.

Messages de débogage