Greg Schechter: Windows Presentation Foundation(WPF) Architecture
- Posted: May 07, 2006 at 12:16 PM
- 74,132 Views
- 20 Comments
Loading User Information from Channel 9
Something went wrong getting user information from Channel 9
Loading User Information from MSDN
Something went wrong getting user information from MSDN
Loading Visual Studio Achievements
Something went wrong getting the Visual Studio Achievements
Right click “Save as…”
Comments have been closed since this content was published more than 30 days ago, but if you'd like to continue the conversation,
please create a new thread in our Forums,
or
Contact Us and let us know.
Follow the Discussion
Oops, something didn't work.
What does this mean?
Following an item on Channel 9 allows you to watch for new content and comments that you are interested in. You need to be signed in to Channel 9 to use this feature.What does this mean?
Following an item on Channel 9 allows you to watch for new content and comments that you are interested in and view them all on your notifications page.sign up for email notifications?
watching it right now...so far very interesting..but I was a bit confused in the beginning...had to do a live search to find out that Windodws Presentation Fundation is abbreviated WPF
First of all, there are 2 trees running by separate threads: the UI thread and the Rendering Thread. The later thread, the rendering one, does it lives withing the program process or it does it within the desktop compositing process? which leads me to the second question.
If the rendering thread runs within WDM then, How all of these works on XP where there is no WDM whatsoever?
Atte:
Raptor
Can it mark itself dirty so the next rendering pass requests a re-render, or does it just render whenever a change occurs?
The latter seems unrealistic, as that'd either mean rendering in your working thread, or having some way of calling into the render thread, both of which seem inefficient to me.
Theres a rendering thread per process, as well as in the WDM.
The WDM merely sees the windows as tree branches and requests a render from it (thats the point where it transfer into the process itself), which it then renders.
For non-avalon apps, theres a single tree entry - the GDI+ surface the window draws on.
For XP I suppose it just exposes a surface in the same way GDI+ does it, rather than a tree branch.
That was what I gathered anyway. Anybody care to conform this?
1) Interesting to find out console updates are bitmaps (Is that right?). So every time you ouput to the console, GDI generates a new bitmap and invalidates the client area?
2) Would it be possible to use the same type of thing for console updates? So only the "delta" changes are sent back over the wire to the client console? Could that also be used to more easily produce "old school" console "block" UI like DOS Norton Commander, List, etc.? That would be sweet to be able to open just a remote console to a server and be able to run any console program such as Edit (et al) and have it look right at the client (i.e. light-weight terminal server session).
3) Will this eventually replace the terminal server RDP protocol to just use the native WPF diff protocol over a remoting boundary?
TIA
Please, rename the title.
It took me a long time to realize that WPF stands for "Windows Presentation Foundation".
Think about those who are not acronym savvy.
Great video.
C
Hmm... A brand-spankin'-new user claiming to be annoying this fast. Makes me wish I'd seen the posts that got deleted / edited. D'oh!
"Windows Presentation Foundation (WPF) Architecture" is the title.N/A
A great video though a lot of what was said was familiar from the blogs already, for some more detail one can see the USPTO pub 20050140694, however I've yet to find what patents cover the video play^h^h^hrotection.
Well you don't have to handle invalidates so you would only need to render when your client area actually changes.
He goes over what gets passed to the render thread in the video, and mentions that when the UI thread and render thread are in the same process shared memory is the mechanism these threads use for communication.
I do think this type of app is kinda' cool, but you don't need to wait for WPF; use sockets and a telnet client.
WPF applications each have their own render thread, and they render into a DirectX Surface. This is true on XP and on Windows Vista.
On XP, the WPF apps display is just like any other DirectX applications display. Just right to the desktop.
The Desktop Window Manager (DWM) basically is its own WPF application, and thus has a surface it renders to. However, it gathers shared surfaces that GDI and DirectX applications themselves render to, and composites those as bitmaps to form the desktop. (BTW, it's GDI surfaces, not GDI+ surfaces.)
BTW, I talk a fair bit about this general window redirection mechanism for the DWM in this blog posting.
Greg
Great video! Let us see more on WPF and WCF!!
Remove this comment
Remove this thread
close