Under the Hood of the Desktop Window Manager

I’ve made a grand total of one post in about the last 21 months.  What have I been doing during this time?  Why, working on the new Desktop Window Manager for Windows Vista, of course!  The Desktop Window Manager (DWM) is one of the more visible features and changes to Windows coming out with the…

74

Simulating “Weak Delegates” in the CLR

Introduction What follows may seem like a fairly obscure topic relating to lifetime management in the CLR, but for those who have hit upon this scenario (and they may not even know they have), this is a very helpful pattern to know about. In some of the development of Avalon, we hit upon a pattern for…

37

Redirecting GDI, DirectX, and WPF applications

As mentioned in earlier posts, by far the most important aspect of the DWM is the fact that application windows are redirected to render offscreen, and then the DWM is responsible for compositing those windows to the screen.  So, how exactly does that happen?  That’s what this post is all about.  Redirection is a fairly…

32

The role of the Windows Display Driver Model in the DWM

The Problem Ever since the advent of dedicated graphics processors, even old-school graphics processors that only accelerated GDI blits, the way you would program against them would be similar to how you programmed against the main CPU/memory system before there was virtual memory or interruptible/preemptible processes.  That is, you’d have to be sure to directly…

30

High DPI Support in Windows Vista Aero

A good amount of ink has been spilled on this blog talking about all the cost, nuance, impact, and techniques we go through to get a composited desktop.  Less ink is spilled on the benefits of the composited desktop.  Those were most broadly covered in this initial post.  I’d like to expand on one such…

21

A Series on GPU-based Effects for WPF

GPU-based Effects are a hot new feature in WPF for .NET 3.5 SP1.  I’m going to be blogging a series of articles with progressively more detailed information in them, and am using this post as a place to store a table of contents of these posts.  Here’s what’s out there so far: GPU-accelerated custom Effects…

19

DWM’s use of DirectX, GPUs, and hardware acceleration

For the last few years, both desktop and laptop PCs have been outfitted with increasingly powerful graphics chipsets, including blazingly fast geometry and pixel processing, higher fill rates, and faster and faster bandwidth between system memory and video memory.  Further, GPU computational increases has been exceeding Moore’s Law for some time, outpacing CPU growth.  The…

19

Responding to Comments from "Under the Hood of the DWM"

Wow… lots of great interest and comments in my previous post on “Under the Hood of the Desktop Window Manager”.  Rather than attempting to comment inline, I figured I’d try to address in a separate post.  So here goes: Anonymous: I’d like to know why DWM can’t just use the alpha channel of the buffer…

17

APIs in the Desktop Window Manager

For the most part, the Vista Desktop Window Manager is an end-user feature.  However, because it so fundamentally changes the game of how the desktop gets composed, there was both the opportunity and the requirement to introduce a relatively small number of APIs that impact how the DWM operates, and allows the programmer to take…

15

Writing custom GPU-based Effects for WPF

The last few posts in this series on Effects have focused on the perspective of those using Effects.  These Effects have to come into being somehow, and that’s where we turn to now.  In this post we showed how to apply a ColorComplementEffect to go from this to this:   ColorComplementEffect, which very much looks…

15