Grafika o wysokiej wierności z funkcją DirectX
Deweloperzy aplikacji systemu Windows od dawna korzystają z programu Microsoft DirectX w celu zapewnienia wysokiej jakości, przyspieszonej sprzętowo grafiki 3D. Kiedy technologia zadebiutowała w 1995 roku, deweloperzy mogą zapewnić wysokiej jakości grafikę 3D dla gier i aplikacji inżynieryjnych dla graczy i profesjonalistów chcących zapłacić dodatkowe za płytę graficzną 3D. Teraz nawet najbardziej niedrogie komputery obejmują sprzęt graficzny 3D.
Aby skorzystać z tych funkcji graficznych, system Windows Vista wprowadził infrastrukturę windows Display Driver Model (WDDM) dla directX, która umożliwiała wielu aplikacjom i usługom udostępnianie zasobów jednostki przetwarzania grafiki (GPU). Program Desktop Window Manager (DWM) używa tej technologii do animowania przełączania zadań w 3D, dostarczania dynamicznych miniatur okien aplikacji oraz zapewniania efektów szkła Windows Aero dla aplikacji klasycznych.
System Windows 7 udostępnia jeszcze więcej możliwości graficznych deweloperom aplikacji. Dzięki nowemu zestawowi interfejsów DirectXAPI deweloperzy platformy Microsoft Win32 mogą korzystać z najnowszych innowacji w procesorach GPU, aby dodać szybkie, skalowalne, wysokiej jakości, grafiki 2D i 3D, tekst i obrazy do swoich aplikacji. Na najnowszych wyświetlaczach LCD interfejsy DirectXAPI mogą wyświetlać zawartość pulpitu i okna przy użyciu głębokości koloru większej niż 8 bitów na składnik koloru.
Dzięki funkcji DirectX deweloperzy Win32 mogą również używać równoległości procesora GPU do obliczeń ogólnego przeznaczenia, takich jak przetwarzanie obrazów, i mogą renderować do sprzętu DirectX 10, sprzętu DirectX 9, procesora CPU lub zdalnego komputera z systemem Windows. Te technologie zostały zaprojektowane do współdziałania z interfejsem GDI (Windows Graphics Device Interface) i GDI+systemu Windows, dzięki czemu deweloperzy mogą łatwo zachować swoje istniejące inwestycje w kod Win32. (Zobacz What's New in the March 2009 DirectX SDK.)
Te ulepszone funkcje graficzne są udostępniane przez następujące interfejsy API oparte na COM:
- Direct2D do rysowania grafiki 2D.
- DirectWrite do rozmieszczania i renderowania tekstu.
- składnik windows imaging do przetwarzania i wyświetlania obrazów.
- Direct3D 10 do rysowania grafiki 3D.
- Direct3D 11 do rysowania grafiki 3D i zapewnia dostęp do technologii gpu nowej generacji, takich jak tessellation, ograniczona obsługa przesyłania strumieniowego tekstur i przetwarzania ogólnego przeznaczenia.
- infrastruktury grafiki DirectX (DXGI) do zarządzania lokalnymi i zdalnymi urządzeniami wyświetlania oraz zasobami procesora GPU oraz zapewnia współdziałanie między directX i GDI.
Direct2D
Oparta na usłudze Microsoft Direct3D 10, Direct2D oferuje deweloperom win32 bezpośredni tryb, niezależne od rozdzielczości, interfejsy API 2D, które korzystają z mocy sprzętu graficznego nowej generacji, ale współdziałają dobrze z dzisiejszymi aplikacjami GDI/GDI+ i aplikacjami Direct3D 10. Funkcja Direct2D zapewnia wysokiej jakości renderowanie 2D z wydajnością lepszą od GDI i GDI+. Zapewnia deweloperom Win32 dokładnszą kontrolę nad zasobami i zarządzaniem nimi. (Zobacz Direct2D.)
DirectWrite
Wiele współczesnych aplikacji musi obsługiwać wysokiej jakości renderowanie tekstu, czcionki konspektu niezależne od rozdzielczości oraz obsługę pełnego tekstu i układu Unicode. DirectWrite, nowy składnik DirectX, udostępnia następujące funkcje i nie tylko:
- Niezależny od urządzenia system układu tekstu, który poprawia czytelność tekstu w dokumentach i w interfejsie użytkownika.
- Wysokiej jakości, pod piksel, ClearType renderowanie tekstu, które mogą używać GDI, Direct2Dlub technologii renderowania specyficznej dla aplikacji.
- Tekst przyspieszany sprzętowo w przypadku używania z Direct2D.
- Obsługa tekstu w wielu formatach.
- Obsługa zaawansowanych funkcji typografii czcionek OpenType.
- Obsługa układu i renderowania tekstu we wszystkich obsługiwanych językach.
- Układ i renderowanie zgodne z interfejsem GDI.
System czcionek DirectWrite umożliwia użycie czcionek "dowolną czcionkę w dowolnym miejscu", gdzie użytkownicy nie muszą wykonywać oddzielnego kroku instalacji tylko w celu używania czcionki, oraz ulepszoną hierarchię strukturalną grupowania czcionek, aby ułatwić ręczne lub programowe odnajdywanie czcionek. Interfejsy API obsługują pomiar, rysowanie i testowanie trafień tekstu w wielu formatach. Funkcja DirectWrite obsługuje tekst we wszystkich obsługiwanych językach dla aplikacji globalnych i zlokalizowanych, opierając się na kluczowej infrastrukturze językowej znajdującej się w systemie Windows 7. Funkcja DirectWrite udostępnia również interfejsy API renderowania glyph niskiego poziomu dla deweloperów, którzy chcą wykonać własny układ i przetwarzanie z użyciem formatu Unicode do glyph. (Zobacz DirectWrite.)
Składnik Windows Imaging
W systemie Windows Vista składnik Windows Imaging wprowadził rozszerzalną strukturę do pracy z obrazami i metadanymi obrazów. Formaty obrazów obsługiwane przez składnik Windows Imaging obejmują JPEG, PNGi TIFForaz obsługiwane formaty metadanych obejmują XMP i EXIF. W systemie Windows 7 składnik Windows Imaging rozszerza zgodność ze standardami, zapewniając obsługę progresywnego dekodowania obrazów, rozszerzone funkcje PNG PNG, metadane GIF i metadane obejmujące apPn segmenty. (Zobacz What's New for WIC in Windows 7.)
Direct3D 11
Usługa Microsoft Direct3D 11 rozszerza funkcjonalność potoku Direct3D 10 i udostępnia gry systemu Windows 7 i wysokiej klasy aplikacje 3D z wydajnym, niezawodnym, skalowalnym dostępem do nadchodzącej generacji procesorów GPU i procesorów wielordzeniowych. Oprócz funkcji dostępnych w trybie Direct3D 10 wprowadzono kilka nowych funkcji direct3D 11.
Geometria i powierzchnie o wysokiej kolejności można teraz tessellated obsługiwać skalowalną, dynamiczną zawartość w reprezentacjach powierzchni patch i subdivision.
Aby zapewnić dobre wykorzystanie mocy przetwarzania równoległego z wielu rdzeni procesora CPU, wielowątkowość zwiększa liczbę potencjalnych wywołań renderowania na ramkę, dystrybuując aplikację, środowisko uruchomieniowe i wywołania sterowników w wielu rdzeniach. Ponadto tworzenie zasobów i zarządzanie nimi zostały zoptymalizowane pod kątem użycia wielowątkowego, co umożliwia bardziej wydajne dynamiczne zarządzanie teksturami na potrzeby przesyłania strumieniowego.
Dla funkcji Direct3D 11 utworzono nowe cieniowania obliczeniowe ogólnego przeznaczenia. W przeciwieństwie do istniejących cieniowania, są to rozszerzenia do programowalnego potoku, które umożliwiają aplikacji wykonywanie większej pracy na procesorze GPU, niezależnie od procesora CPU. DrawAuto, która została wprowadzona w trybie Direct3D 10, została rozszerzona w celu interakcji z cieniowaniem obliczeniowym.
Wprowadzono kilka ulepszeń języka cieniowania wysokiego poziomu (HLSL), takich jak ograniczona forma łączenia dynamicznego w cieniowaniach w celu zwiększenia złożoności specjalizacji i konstrukcji programowania zorientowanych obiektowo, takich jak klasy i interfejsy. (Zobacz What's New in the March 2009 DirectX SDK.)
Ulepszenia funkcji Direct3D 10
Direct3D 10 zawiera przeprojektowany potok grafiki z programowalnymi etapami cieniowania i niezmiennymi obiektami stanu na potrzeby inicjowania etapów funkcji stałych. Obiekty stanu upraszczają potok i zwiększają wydajność, minimalizując liczbę wymaganych zmian stanu. Programowalność etapów cieniowania oferuje teraz rozszerzenia języka cieniowania wysokiego poziomu do obsługi nieograniczonych instrukcji cieniowania, uogólnionych zasobów cieniowania oraz liczb całkowitych i bitowych.
Potok wprowadza również etap cieniowania geometrii, który odciąża pracę całkowicie z procesora CPU do procesora GPU. Ten nowy etap umożliwia tworzenie geometrii, przesyłanie strumieniowe danych do pamięci i renderowanie geometrii bez interakcji z procesorem.
Kilka innych ulepszeń zaprojektowano specjalnie pod kątem szybszej wydajności. Wstępnie wskazane renderowanie wykonuje okluzji w celu zmniejszenia ilości geometrii, która jest renderowana. Uzyskiwanie dostępu do interfejsów API może znacznie zmniejszyć ilość geometrii, która musi zostać przeniesiona do procesora GPU, rysując wiele wystąpień podobnych obiektów. Tablice tekstur umożliwiają procesorowi GPU zamianę tekstur bez interwencji procesora CPU.
Wprowadzono kilka dodatków do direct3D 10 i Direct3D 11, aby rozszerzyć gamę konfiguracji, które mogą być przeznaczone dla tych interfejsów API. Zaawansowana platforma rasteryzacji systemu Windows (WARP) implementuje szybkie, wielordzeniowe renderowanie procesora CPU dla direct3D 10, umożliwiając pełne renderowanie grafiki w systemach bez sprzętu graficznego. Dodanie nowych "poziomów funkcji", specjalnie nazywanych Direct3D 10 Poziom 9, zezwalaj direct3D 10 i Direct3D 11API na obsługę sprzętu klasy Microsoft Direct3D 9, rozszerzając liczbę konfiguracji aplikacji Direct3D 10 lub Direct3D 11 może być przeznaczony dla prawie każdego systemu komputerowego na rynku. (Zobacz grafiki Direct3D 10).
Współdziałanie funkcji DirectX/GDI
W systemie Windows Vista zachowanie aplikacji, która używa zarówno directX, jak i GDI do renderowania na udostępnionej powierzchni, różni się w zależności od tego, czy usługa DWM jest włączona, czy wyłączona. Ponadto, gdy usługa DWM jest włączona, aplikacje używające zarówno directX, jak i GDI zachowują się inaczej w systemie Windows Vista niż w systemie Windows XP. Spowodowało to wyłączenie usługi DWM przez wielu niezależnych dostawców oprogramowania podczas uruchamiania aplikacji w systemie Windows Vista w celu zapewnienia spójnego zachowania. Dzięki ulepszeniom funkcji DirectX w systemie Windows 7 aplikacja może teraz swobodnie mieszać elementy DirectX i GDI bez wyłączania usługi DWM. System Windows 7 oferuje również lepszą wydajność w scenariuszach wymagających współdziałania między directX i GDI dzięki wykorzystaniu bardziej wydajnych interfejsów API Direct3D 10. (Zobacz Direct2D i GDI Interoperation Overview.)