Direct2D Hata Ayıklama Katmanına Genel Bakış
Direct2D hata ayıklama katmanı, çalışma zamanı uygulama hatasını en aza indirmek için tasarım zamanı hata ayıklama iletileri sağlar. Bu genel bakış, Direct2D hata ayıklama katmanının temellerini açıklar. Temel Direct2D uygulamaları oluşturmayı bildiğiniz varsayılır.
Bu genel bakış aşağıdaki bölümleri içerir.
- Direct2D Hata Ayıklama Katmanı Nedir
- Direct2D Hata Ayıklama Katmanını Yükleme
- Hata Ayıklama Katmanı'nı Etkinleştirme
- Hata Ayıklama Seviyeleri
- İlgili konular
Direct2D Hata Ayıklama Katmanı nedir?
d2d1debug.dlladlı kendi DLL'sinde Direct2D'den ayrı olarak uygulanan Direct2D hata ayıklama katmanı, Direct2D işlevlerini doğru bir şekilde kullanmanızı sağlamak için hata ayıklama iletileri sağlar. Hata ayıklama iletileri genellikle geçersiz parametreler (Direct3D ile ilgili olabilir), geçersiz kaynaklar, iş parçacığı ihlalleri ve bir klibin yeterli olduğu durumlarda katman kullanma gibi performans sorunları gibi API sözleşmesi ihlallerinden kaynaklanır. Hata ayıklama katmanı tarafından ne kadar bilginin izleneceğini belirtmek için üç hata ayıklama düzeyinden birini belirtebilirsiniz: bilgi, uyarı ve hata. Hata düzeyindeki bir ileti, hata ayıklamanıza yardımcı olmak için kesme noktasını tetikler.
Direct2D Hata Ayıklama Katmanını Yükleme
Hata ayıklama katmanını yükleme yönergeleri için bkz. Direct2D Hata Ayıklama Katmanını Yükleme.
Debug Katmanını Etkinleştirme
Uygulamanızda hata ayıklama katmanını etkinleştirmek için, D2D1CreateFactory işleviyle bir fabrika oluşturduğunuzda D2D1_DEBUG_LEVEL_NONE dışında bir D2D1_DEBUG_LEVEL değeri belirtin.
Not
Direct2D hata ayıklama katmanı etkinleştirilirse, Direct2D renk yönetimi efekti (CLSID_D2D1ColorManagement) renk bağlamı ayarlanırken erişim ihlaline neden olabilir. Geçici çözüm, renk yönetimi efektini kullanırken hata ayıklama katmanını devre dışı bırakmaktır
Bir fabrika için hata ayıklama katmanını etkinleştirmek, fabrika tarafından oluşturulan tüm nesneler için hata ayıklama bilgilerini de etkinleştirir.
Aşağıdaki örnek, uygulama DEBUG derleme yapılandırması için derlendiğinde fabrika için hata ayıklama katmanını etkinleştirir.
// 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
Not
Fabrika seçenekleri belirtilmez veya hata ayıklama düzeyi "yok" olarak belirtilirse, hata ayıklama katmanı etkinleştirilmez. Hata ayıklama katmanı hiçbir zaman bir uygulamanın yayın sürümünde etkin olmamalıdır.
Sonraki bölümde, D2D1_DEBUG_LEVEL numaralandırması tarafından tanımlanan farklı hata ayıklama düzeyleri açıklanmaktadır.
Hata Ayıklama Düzeyleri
D2D1_DEBUG_LEVEL numaralandırması üç hata ayıklama düzeyi belirtir: D2D1_DEBUG_LEVEL_ERROR (hata), D2D1_DEBUG_LEVEL_WARNING (uyarı) ve D2D1_DEBUG_LEVEL_INFORMATION (bilgi). Bu düzeyler aşağıdaki gibi yorumlanır:
Hatası: Direct2D hata ayıklama katmanına ciddi hata iletileri gönderir. Örneğin, bir iş parçacığı kısıtlamasının ihlali ciddi bir hataya neden olur.
Uyarısı: Direct2D hata ayıklama katmanına hata iletileri ve uyarılar gönderir, böylece bu iletilerden herhangi birini ele alabilirsiniz.
Bilgileri: Direct2D hata ayıklama katmanına hata iletileri, uyarılar ve ek tanılama bilgileri gönderir. Örneğin, performans geliştirme iletileri bu hata ayıklama düzeyinde gönderilir.
D2D1_DEBUG_LEVEL_NONE değeri (yok), Direct2D'nin hata ayıklama çıkışı sağlamadığını gösterir.
İlgili konular