Beruflich Dokumente
Kultur Dokumente
greg schechter
jeff bogdan
chris anderson
• Styles, bindings,
• Mouse, Keyboard, controls
Pen • Layout
• Commands Element System • Text layout (PTS)
• Glyphs
• Metrics
• Cache
Input System • Routing
• Class handlers
Font System
Event System • Video, Audio
• 2D, 3D,
Animation
• Text layout (line)
• Change • Remoting
notification
Visual System • Message based
• Storage
• Expressions • 2D, 3D
Transport
• Hardware,
Software
Property System
Composition System
Step 1: Write a
program
<ListBox>
<Button />
<Button />
</ListBox>
Step 2: Compile
011101001011101001011101001011101001
011101001011101001011101001011101001
011101001011101001011101001011101001
011101001011101001011101001011101001
011101001011101001011101001011101001
011101001011101001011101001011101001
011101001011101001011101001011101001
011101001011101001011101001011101001
011101001011101001011101001011101001
011101001011101001011101001011101001
011101001011101001011101001011101001
011101001011101001011101001011101001
011101001011101001011101001011101001
011101001011101001011101001011101001
011101001011101001011101001011101001
011101001011101001011101001011101001
011101001011101001011101001011101001
BAML
EXE
C#/VB/etc
Images, etc
Step 3: Run the
program
Step 4: Make pixels
blink
ListBox
StackPanel
Button Button
CompNode
ListBox
CompNode
ScrollViewer
Button
Transport
Button
DX Surfaces
CompNode
Bitmaps
CompNodeCompNode CompNode
Step 5: Talk to the
user
ListBox
CompNode
ScrollViewer
StackPanel
CompNodeCompNode CompNode
Button Button
• I would like to understand more about the XPS and Avalon connection and I
am hoping some architectural details on shared functionality will be
discussed.
How does XAML fit in the future as an exchangable data source for visual
representation of a drawing ? Serialization support etc.
• I'd like to know what the relationship is between Avalon and GDI+? It seems
as though Avalon follows very closely the GDI+ functionality, adding scene-
graph support. I know it's been talked about before that Avalon goes directly
to D3D... so, does Avalon and GDI+ sit side-by-side, not sharing any code?
Or does Avalon make use of GDI+ at some level.
blog questions continued…
• I'm looking forward to getting some insights into the the
message(pump?) and threading model.
1. Could you contrast the Avalon threading model with the Win32
one? And how do things change when adding COM (apartments)
into the mix?
2. Does interop with ActiveX or Windows Forms components
change Avalon messaging/threading behavior or impose limitations.
3. Why the change to the Dispatcher based design?
4. Should lengthy processing still be done on separate threads? and
if so, why? and how do I sync. callbacks to the correct thread
(contrast with win32 PostMessage/Windows Forms
Control.BeginInvoke).
blog questions continued…
• What I'd like to know is, is Avalon completely dependant on the
Win32 API? Or is Avalon only dependant on WinFX (which may
have parts dependant on Win32)?
I've heard a lot of misinformation out there; everything from
Longhorn being completely managed, to Longhorn having zero
dependencies on managed code. Which is it? Does Longhorn rely
on Avalon at all?
Also, is Avalon & Indigo (forgive me for forgetting their official bland
names) exposed to unmanaged code? If so, is there a managed
wrapper involved in calling into Avalon or Indigo APIs?