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 réduire l’échec de l’application Runtime. Cette vue d’ensemble décrit les principes fondamentaux de la couche de débogage Direct2D. Il part du principe 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 les paramètres non valides (qui peuvent être liés à Direct3D), de ressources non valides, de violations de thread et de problèmes de performances, tels que l’utilisation d’une couche quand un clip suffit. Pour spécifier la quantité d’informations qui est tracée par la couche de débogage, vous pouvez spécifier l’un des trois niveaux de débogage : information, avertissement et erreur. et un message d’erreur de niveau déclenche le point d’arrêt pour vous aider à effectuer le débogage.

Installation de la couche de débogage Direct2D

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

Activation de la couche de débogage

Pour activer la couche de débogage dans votre application, spécifiez une valeur de _ _ niveau de débogage d2d1 autre que le niveau de débogage d2d1 _ _ _ aucun 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 active également les 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 de « 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 Release d’une application.

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

Niveaux de débogage

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

  • Erreur : Direct2D envoie des messages d’erreur graves à la couche de débogage. Par exemple, l’interruption 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 pour vous permettre de 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, les messages d’amélioration des performances seront envoyés à ce niveau de débogage.

La valeur D2D1 _ niveau de débogage _ _ aucun (aucune) indique que Direct2D ne fournit pas de sortie de débogage.

Messages de débogage