Afgelopen week heeft in Seattle WinHEC 2005 plaatsgevonden. Tijdens deze conferentie voor pc-bouwers en softwareontwikkelaars is onder andere gesproken over Windows Longhorn en de nieuwe technologieën die met deze nieuwe Windows-versie beschikbaar komen. Een van deze nieuwe technologieën is Windows Graphics Foundation (WGF). WGF is verdeeld in twee gedeeltes, enerzijds WGF 1.0 dat DirectX 9.0c als bron heeft, en anderzijds WGF 2.0 met als basis een nieuwe 3d-API. Een van de pilaren onder WGF is het Longhorn Driver Display Model (LDDM). Dit model zal in twee fases tot de gebruiker komen. De eerste fase heet 'basic' en ondersteunt huidige grafische hardware, de shader 2.0- en 3.0-hardware. De tweede LDDM-fase heeft 'advanced' en zal hardware ondersteunen die rond en na de lancering van Windows Longhorn op de markt komen. Ook zal deze hardware de features van Windows Graphics Foundation 2.0 volledig ondersteunen.
Nieuwe features van WGF
Virtualisatie houdt in dat meerdere applicaties het gebruik van de grafische hardware onder elkaar verdelen. Hoe deze verdeling plaatsvindt, wordt bepaald door de scheduler. Drivers die zijn gebaseerd op LDDM basic zullen de mogelijkheid krijgen om batches op basis van verzoeken van applicaties zelf te verdelen, maar wanneer een batch eenmaal gestart is, kan er niet meer op worden ingebroken. LDDM advanced-drivers gaan een stapje verder en maken het mogelijk om op een diepere laag batches in te plannen. Het voordeel hiervan is dat een betere balans gevonden kan worden tussen de resources van het systeem en de grafische kaart. In Windows Longhorn zal iedere applicatie een 3d-oppervlak zijn. Een applicatie kan echter groter zijn dan het geheugen op de grafische kaart. Dit is nadelig voor oudere AGP-systemen, omdat deze de bijbehorende hoeveelheden data niet snel genoeg kunnen verwerken. PCI Express heeft hierin dus absoluut een voordeel.
Een ander voordeel van virtualisatie is dat het mogelijk is om grafische data te gebruiken in meerdere processen. Dat kan echter veel geheugen kosten, meer dan op de grafische kaart aanwezig is, dus veel intern geheugen is hiervoor erg handig. Ondanks al deze nieuwe mogelijkheden, zal het mogelijk blijven om oudere grafische applicaties te gebruiken in Windows Longhorn. Om dat voor elkaar te krijgen, zullen functieaanroepen via Direct3D 9.0c opnieuw opgebouwd worden en vervolgens afgehandeld worden. Het uiteindelijke resultaat zal echter hetzelfde zijn als buiten Windows Longhorn. Deze oudere applicaties kunnen echter geen gebruikmaken van de nieuwe WGF 1.0-functies, zoals virtualisatie. Windows Longhorn zal verder ondersteuning bieden aan de OpenGL 1.4-specificatie door deze toe voegen aan WGF 1.0. Via Installable Client Drivers zal het echter mogelijk zijn om ook andere OpenGL-versies, zoals 2.0, te draaien.
Desktop Window Manager
De Desktop Window Manager (DWM) in Windows Longhorn maakt gebruik van Avalon en WGF 1.0. De DWM biedt allerlei grafische functionaliteit aan applicaties, zoals de mogelijkheid om transparante vensters boven elkaar te leggen en vensters door middel van 'tilten' op het scherm te krijgen. Daarnaast zorgt de DWM ervoor dat, in tegenstelling tot wat gebruikelijk is in de huidige Windows-versies, vensters altijd - ook tijdens manipulatie - goed zichtbaar blijven. Dit kan bereikt worden door een venster altijd in een eigen back buffer te houden die vervolgens door de DWM weer samengevoegd wordt met eventuele andere back buffers en dan als compleet plaatje op het scherm getoond worden. Deze functie kan uitgeschakeld worden, wanneer bijvoorbeeld video's bekeken worden. Bij applicaties die een volledig scherm nodig hebben, wordt de DWM uitgeschakeld voor dat scherm. Op eventuele andere schermen blijft de DWM wel actief en schermen zijn dus niet afhankelijk van elkaar.

Avalon
Zoals uit het voorgaande al begrepen kan worden, maakt Windows Longhorn niet alleen gebruik van een front buffer, zoals GDI doet, maar ook van een back buffer, waardoor het veel eenvoudiger is om krachtige 3d-manipulaties te doen op schermdata. Om deze effecten ook daadwerkelijk toe te passen, is Avalon in het leven geroepen. Allerlei grafische effecten zullen op het eerste gezicht vooral resourceslurpende eye candy lijken, maar dat is niet Microsofts bedoeling. Hierbij wordt weinig tot geen gebruikgemaakt van de cpu voor berekeningen, maar wordt juist de gpu ingezet. Het doel van Avalon is het creëren van een goed bruikbare desktopomgeving, waarin allerlei grafische hoogstandjes er niet alleen leuk uitzien, maar ook daadwerkelijk nut hebben. Dit betekent bijvoorbeeld dat de titelbalk van een venster gedeeltelijk transparant kan zijn, maar ook dat applicaties goed lees- en dus bruikbaar zijn op schermen met een hoge DPI.
Om de desktop voor iedereen bruikbaar te maken, ook op minder krachtige systemen, zal de user interface in Windows Longhorn bestaan uit vier lagen: Classic, To Go, Aero Express en Aero Glass. De 'Classic'-look is vergelijkbaar met Windows 2000 en Windows XP. De 'To Go'-look ziet eruit als de 'volledige' Longhorn-user interface maar stelt aanzienlijk minder hoge grafische eisen, daarvoor moeten echter wel enkele effecten, zoals shadereffecten, ingeleverd worden. Aero Express ondersteunt compositing, maar biedt dan weer geen ondersteuning voor enkele shadereffecten en bepaalde transparantie-effecten. Aero Glass zal alle features ondersteunen. Alle lagen kunnen gebruikt worden binnen zowel de basic als de advanced versie van het Longhorn Display Driver Model. DirectX 9.0c-hardware wordt door Microsoft aanbevolen. Om Aero te draaien is minstens 64MB RAM op de grafische kaart benodigd. Voor Aero Glass is minstens 256MB benodigd.

WGF 2.0
De opvolger van Direct3D 9 zal WGF 2.0 zijn. Deze technologie zal aanwezig zijn in Windows Longhorn, maar het is nog niet zeker of de dan beschikbare hardware deze technologie zal ondersteunen. Een van de grote voordelen van WGF 2.0 is 'hardware consistency'. De bedoeling hiervan is dat, welke gpu ook gebruikt wordt, de output er altijd vrijwel hetzelfde uit zal zien en er geen verschillen meer te zien zullen zijn door een iets andere implementatie van een bepaalde technologie. Daarnaast maakt WGF 2.0 het mogelijk om data door een gpu te laten afhandelen zonder dat de cpu daarbij komt kijken. Dit scheelt een aanzienlijke driveroverhead. Een derde interessante feature in WGF 2.0 is de prestatieverbetering die behaald wordt door 'state changes', wijzigingen in de look van een scène, beter te stroomlijnen. De laatste nieuwe feature betreft de verbetering op het gebied van de 'geometry shader', de functie om geometrische vormen te maken.