Masaüstü Pencere Yöneticisi - Desktop Window Manager

Masaüstü Pencere Yöneticisi
Geliştirici(ler) Microsoft
İlk sürüm 30 Kasım 2006 ; 14 yıl önce ( 2006-11-30 )
İşletim sistemi Microsoft Windows
Hizmet adı UxSms

Masaüstü Pencere Yöneticisi ( DWM , daha önce Masaüstü Birleştirme Motor veya DCE ) 'dir pencere yöneticisi de Windows Vista , Windows 7 , Windows 8 , Windows 10'a ve Windows'un 11 kullanımını sağlayan donanım hızlandırma işlemek için grafik kullanıcı arayüzü Windows.

Başlangıçta şeffaflık, 3B pencere değiştirme ve daha fazlası gibi efektlere izin veren yeni " Windows Aero " kullanıcı deneyiminin bölümlerini etkinleştirmek için oluşturuldu . Ayrıca Windows Server 2008'e dahildir , ancak "Masaüstü Deneyimi" özelliğinin ve uyumlu grafik sürücülerinin yüklenmesini gerektirir.

Mimari

Masaüstü Pencere Yöneticisi, bir birleştirme penceresi yöneticisidir . Bu, her programın veri yazdığı bir arabelleğe sahip olduğu anlamına gelir; DWM sonra kompozit son şeklini her programın tamponu. Karşılaştırıldığında, Windows XP ve önceki sürümlerdeki (ve ayrıca Windows Aero devre dışı bırakılmış Windows Vista ve Windows 7'deki) yığınlama penceresi yöneticisi, tüm programların yazdığı tek bir ekran arabelleği içerir.

DWM, işletim sistemine (Windows 7 veya Windows Vista) ve kullandığı grafik sürücülerinin sürümüne ( WDDM 1.0 veya 1.1) bağlı olarak farklı şekillerde çalışır . Windows 7 altında ve WDDM 1.1 sürücüleriyle, DWM, bir grafik aygıtı arabirimi (GDI) programı olsa bile yalnızca programın arabelleğini video RAM'ine yazar . Bunun nedeni, Windows 7'nin GDI için (sınırlı) donanım hızlandırmayı desteklemesi ve bunu yaparken, CPU'nun yazabilmesi için arabelleğin bir kopyasını sistem RAM'inde tutması gerekmemesidir.

Birleştirici tüm uygulamaların grafiklerine erişebildiğinden, şeffaflık gibi birden çok uygulamadan gelen görselleri bir araya getiren görsel efektlere kolayca izin verir. DWM , GPU'da birleştirme ve işleme işlevini gerçekleştirmek için DirectX'i kullanır ve CPU'yu ekran dışı arabelleklerden ekrana işlemeyi yönetme görevinden kurtarır . Ancak, ekran dışı arabelleklere boyama yapan uygulamaları etkilemez - bunun için kullanılan teknolojilere bağlı olarak, bu yine de CPU'ya bağlı olabilir. GDI gibi DWM'den bağımsız işleme teknikleri , kullanıcı arabirimini (UI) bitmapler olarak işleyerek arabelleklere yönlendirilir . WPF gibi DWM'ye duyarlı işleme teknolojileri, doğrudan dahili veri yapılarını DWM uyumlu bir biçimde kullanılabilir hale getirir. Arabelleklerdeki pencere içerikleri daha sonra DirectX dokularına dönüştürülür.

Masaüstünün kendisi tam ekran bir Direct3D yüzeyidir ve pencereler, bir 2D dikdörtgeni temsil edecek şekilde dönüştürülen iki bitişik (ve karşılıklı olarak ters çevrilmiş) üçgenden oluşan bir ağ olarak temsil edilir. UI kromunu temsil eden doku daha sonra bu dikdörtgenlere eşlenir. Pencere geçişleri, gölgelendirici programları kullanılarak ağların dönüşümleri olarak uygulanır . Windows Vista'da geçişler, dönüşümleri uygulayan yerleşik gölgelendiriciler kümesiyle sınırlıdır. Microsoft'ta bir geliştirici olan Greg Schechter, bunun geliştiricilerin ve kullanıcıların gelecekteki bir sürümde kendi efektlerini eklemeleri için açılabileceğini öne sürdü. DWM, yalnızca birincil masaüstü nesnesini bir 3B yüzey olarak eşler ; Sanal masaüstleri ve Kullanıcı Hesabı Denetimi tarafından kullanılan güvenli masaüstü dahil olmak üzere diğer masaüstü nesneleri değildir.

Image
Aero Flip, DWM'nin birçok özelliğini gösterir: 2B düzlemlerin 3B dönüşümü, düzlemleri ölçeklendirme ve farklı bir konuma çevirme, bir uygulamanın dinamik görünümlerini diğerine gömme ve özel gölgelendirici programlarının kullanımı.
Image
Windows 7'de kullanılan Aero Flip özelliği .

Tüm uygulamalar ekran dışı bir arabelleğe işlendiğinden, diğer uygulamalara gömülü arabellekten de okunabilirler. Ekran dışı arabellek uygulama tarafından sürekli olarak güncellendiğinden, gömülü işleme, statik bir oluşturma değil, uygulama penceresinin dinamik bir temsili olacaktır. Canlı küçük resim önizlemeleri ve Windows Flip , Windows Vista ve Windows 7'de bu şekilde çalışır . DWM, uygulamaların bu küçük resim temsillerine erişmesine izin veren bir genel API sunar. Küçük resmin boyutu sabit değildir; uygulamalar, orijinal pencereden daha küçük, aynı boyutta veya hatta daha büyük boyuttaki küçük resimleri herhangi bir boyutta isteyebilir ve DWM, geri dönmeden önce bunları uygun şekilde ölçeklendirir. Aero Flip, Direct3D dokularına doğrudan erişime izin vermedikleri için genel küçük resim API'lerini kullanmaz. Bunun yerine, Aero Flip doğrudan DWM motorunda uygulanır.

Masaüstü Pencere Yöneticisi , pencereleri bir kompozisyon ağacında kompozisyon düğümleri olarak temsil etmek için Windows Presentation Foundation ile paylaştığı yönetilmeyen birleştirici olan Medya Entegrasyon Katmanı'nı (MIL) kullanır . Kompozisyon ağacı, masaüstünü ve içinde barındırılan tüm pencereleri temsil eder ve bunlar daha sonra MIL tarafından sahnenin arkasından öne doğru işlenir. Tüm pencereler nihai görüntüye katkıda bulunduğundan, ortaya çıkan bir pikselin rengine birden fazla pencere tarafından karar verilebilir. Bu, piksel başına saydamlık gibi efektleri uygulamak için kullanılır. DWM, görüntülenen pikseli oluşturmak için birden çok uygulamadan gelen piksellerin nasıl kullanıldığını kontrol etmek için özel gölgelendiricilerin çağrılmasına izin verir. DWM, bir penceredeki pikselin rengini, arkasındaki pencere ve komşu pikseller tarafından belirlenen pikselin renginin ortalamasını alarak hesaplayan yerleşik Pixel Shader 2.0 programlarını içerir. Bu gölgelendiriciler, DWM tarafından yönetilen pencerelerin pencere kenarlarında ve isteğe bağlı olarak uygulamanın talep ettiği alanlarda bulanıklık efekti elde etmek için DWM tarafından kullanılır.

MIL , kompozisyon ağaçlarını önbelleğe alarak korunan mod grafik sistemi sağladığından , pencereler hareket ettirildiğinde ekranı yeniden boyama ve yenileme işi DWM ve MIL tarafından yapılır ve uygulama sorumluluktan kurtarılır. Arka plan verileri zaten kompozisyon ağacında ve ekran dışı arabelleklerdedir ve doğrudan arka planı oluşturmak için kullanılır. Vista öncesi Windows işletim sistemlerinde, arka plan uygulamalarının kendilerine WM_PAINTmesaj göndererek kendilerini yeniden oluşturmaları isteniyordu . DWM, pencereleri hareket ettirirken titremeyi ve yırtılmayı önlemek için çift ​​arabellekli grafikler kullanır . Birleştirme motoru, performansı artırmak için ayırma gibi optimizasyonları kullanır ve değişmeyen alanları yeniden çizmez. Besteci çoklu monitör farkında olduğundan, DWM doğal olarak bunu da destekler.

Oyunlar gibi tam ekran uygulamalar sırasında, DWM pencere birleştirme gerçekleştirmez ve bu nedenle performans önemli ölçüde düşmez.

Windows 8 ve Windows Server 2012'de DWM her zaman kullanılır ve uygulanan yeni "başlangıç ​​ekranı deneyimi" nedeniyle devre dışı bırakılamaz. DWM işleminin genellikle Windows 8'de her zaman çalışması gerektiğinden, işlemle ilgili bir sorun yaşayan kullanıcılar, sistem yeniden başlatıldıktan sonra bellek kullanımının azaldığını görüyorlar. Bu genellikle yardımcı olabilecek uzun bir sorun giderme görevleri listesindeki ilk adımdır. DWM'nin Windows 8'de geçici olarak yeniden başlatılmasını önlemek mümkündür, bu da masaüstünün kararmasına, görev çubuğunun griye dönmesine ve başlangıç ​​ekranının/modern uygulamaların bozulmasına neden olur, ancak masaüstü uygulamaları tıpkı Windows 7 ve Vista'nın Basic'i gibi çalışmaya ve görünmeye devam eder. XP tarafından kullanılan tek arabellek oluşturucuya dayalı tema. Ayrıca Windows 8'in Windows PreInstallation Environment içinde görünen ortalanmış başlık çubuğunu da kullanırlar . Windows'u DWM olmadan başlatmak, kilit ekranı DWM gerektirdiğinden çalışmayacaktır, bu nedenle yalnızca anında yapılabilir ve herhangi bir pratik amacı yoktur. Windows'un 10 ile başlayarak, bu şekilde DWM devre dışı tüm birleştirme motoru nedeniyle görev çubuğu ve yeni bir başlangıç temel gösterge adaptörleri aracılığıyla öncüllerini, Windows 8 destekler menu.Unlike Universal App uygulamaları için, hatta geleneksel masaüstü uygulamaları bozulmasına neden olacaktır Windows'un Grafik kartı yerine arabirimi oluşturmak için yazılım oluşturmayı ve CPU'yu kullanan Gelişmiş Rasterleştirme Platformu (WARP) . Bu, DWM'nin uyumlu sürücüler olmadan çalışmasına izin verir, ancak normal bir grafik kartıyla aynı performans düzeyinde değil. Windows 8'deki DWM, stereoskopik 3D desteği de ekler .

yeniden yönlendirme

DWM uyumlu olmayan işleme teknikleri için çıktının DWM arabelleklerine yeniden yönlendirilmesi gerekir. Windows ile, işleme için GDI veya DirectX kullanılabilir. Bu ikisinin DWM ile çalışmasını sağlamak için her ikisi için de yeniden yönlendirme teknikleri sağlanmıştır.

Microsoft Windows'ta en çok kullanılan UI render tekniği olan GDI ile her uygulama penceresi, kendisi veya bir kısmı görüntülendiğinde haberdar edilir ve kendini render etmek uygulamanın işidir. DWM olmadan, görüntü oluşturma, UI'yi, görüntülendiği yerden ekrana görüntülenen video belleğindeki bir arabellekte rasterleştirir . DWM altında, GDI çağrıları bir yazılım oluşturucu olan Canonical Display Driver'ı (cdd.dll) kullanmak üzere yönlendirilir. Sistem belleğinde pencere boyutuna eşit bir arabellek ayrılır ve CDD.DLL, video belleği yerine bu arabelleğe çıkar. Pencere ağları için doku olarak kullanılan DirectX yüzeyini temsil etmek üzere video belleğinde başka bir arabellek tahsis edilmiştir. Sistem belleği arabelleği ayrı olarak DirectX yüzeyine dönüştürülür ve senkronize tutulur. GDI, DirectX piksel biçiminde doğrudan çıktı alamadığından, bu dolambaçlı yol gereklidir. Yüzey, besteci tarafından okunur ve video belleğinde masaüstüne birleştirilir. GDI çıktısının sistem belleğine yazılması donanımla hızlandırılmadığı gibi DirectX yüzeyine dönüştürme de yapılmaz. Bir GDI penceresi simge durumuna küçültüldüğünde, tam ekran DirectX uygulamasıyla aynı monitörde görünmez veya görünür olduğunda, GDI sınırlaması nedeniyle, GDI bitmap arabelleği, boyama veya güncelleme sırasında bir aygıt bağlamı istenirken uygulama tarafından artık alınmaz (bu bazen Bir pencereden diğerine kopyalanan bir GDI işlemi, beklenen pencere içeriği yerine siyah veya boş bölgeler çıkardığında görülebilir). Bu nedenle, DWM, uygulama simge durumuna küçültülmeden önce arabellekte oluşturulan son bit eşlemi kullanır.

Windows 7'den başlayarak, Canonical Display Driver artık WDDM 1.1/DXGI 1.1 uyumlu bir video sürücüsü mevcut olduğunda sistem bellek kopyasını işlememektedir.

Kullanan uygulamalar için DirectX 3B yüzeye yazmak için, DirectX uygulama Windows Vista kullanan VDDM'yi DWM ile yüzeyini paylaşmak için. DWM daha sonra yüzeyi doğrudan kullanır ve onu pencere ağlarına eşler. Windows sunum temeli (WPF) uygulamaları için (ki bunlar DirectX uygulamalarıdır), birleştirici, daha sonra nihai masaüstünde birleştirilen bu tür paylaşılan yüzeylere işler. Uygulamalar, aynı pencereyi oluşturmak için hem GDI hem de DirectX kullanılmadığı sürece, birden çok alt pencerede oluşturma tekniğini karıştırabilir. Bu durumda, DirectX ve GDI oluşturma arasındaki sıralama garanti edilemez ve bu nedenle sistem belleğindeki GDI bit eşleminin video belleği yüzeyine çevrildiği garanti edilemez. Bu, nihai kompozisyonun GDI ile işlenmiş öğeleri içermeyebileceği anlamına gelir. Bunu önlemek için, aynı pencerede GDI ve DirectX'i karıştıran bir uygulama çalıştığı sürece DWM geçici olarak kapatılır.

Donanım Gereksinimleri

Windows Vista'da DWM, uyumlu fiziksel veya sanal donanım gerektirir:

Windows 7'de, Masaüstü Pencere Yöneticisi Direct3D 10.1'i kullanacak şekilde yeniden çalışıldı, ancak donanım gereksinimleri Windows Vista'dakiyle aynı kaldı; Direct3D 9 donanımı, Direct3D 11 çalışma zamanında tanıtılan " 10 Düzey 9 " katmanı ile desteklenir . Windows 8, 7 ile aynı gereksinimlere sahiptir, ancak uyumlu video donanımı olmadığında yazılım oluşturmayı da kullanabilir.

DWM için gereken donanımı taklit eden donanım sanallaştırma yazılımı, VirtualBox 4.1 ve sonraki sürümleri, VMware Fusion 3.0 ve sonraki sürümleri ve VMware Workstation 7.0 sonraki sürümlerini içerir . Ek olarak, Windows Virtual PC , Uzak Masaüstü Protokolü kullanılarak kompozisyona izin verir .

Ayrıca bakınız

Referanslar

Dış bağlantılar