SlideShare a Scribd company logo
1 of 73
Draw Loop              Event
                      Handlers
       Hey
     browser!
                                          Tick
     Show my
      Frame




  Rasterize                                   Any
   in back                                  property
    buffer                                 changes?



              Queue up
              rendering          Layout
               changes
Draw Loop              Event
                      Handlers
       Hey
     browser!
                                          Tick
     Show my
      Frame




  Rasterize                                   Any
   in back                                  property
    buffer                                 changes?



              Queue up
              rendering          Layout
               changes
DoubleAnimation
 Storyboard.TargetName myprojection
 Storyboard.TargetProperty RotationY
 From 0 To 90
 Duration 0:0:1
time




Frame Based
Model
Draw Loop              Event
                      Handlers
       Hey
     browser!
                                          Tick
     Show my
      Frame




  Rasterize                                   Any
   in back                                  property
    buffer                                 changes?



              Queue up
              rendering          Layout
               changes
Draw Loop              Event
                      Handlers
       Hey
     browser!
                                          Tick
     Show my
      Frame




  Rasterize                                   Any
   in back                                  property
    buffer                                 changes?



              Queue up
              rendering          Layout
               changes
ListBox



      ScrollViewer



             Grid



ScrollBars      StackPanel



                ListBoxItem



                      stuff
internal
           U
internal



               offset

                        Clip
Draw Loop              Event
                      Handlers
       Hey
     browser!
                                          Tick
     Show my
      Frame




  Rasterize                                   Any
   in back                                  property
    buffer                                 changes?



              Queue up
              rendering          Layout
               changes
Draw Loop              Event
                      Handlers
       Hey
     browser!
                                          Tick
     Show my
      Frame




  Rasterize                                   Any
   in back                                  property
    buffer                                 changes?



              Queue up
              rendering          Layout
               changes
Draw Loop              Event
                      Handlers
       Hey
     browser!
                                          Tick
     Show my
      Frame




  Rasterize                                   Any
   in back                                  property
    buffer                                 changes?



              Queue up
              rendering          Layout
               changes
Vs.
1. ParentNode
2. Layout Offset
3. RenderTransform

5. Clip

7. Opacity
8. OpacityMask

10.Children
Intermediate        Apply Effect
surface




               Apply 2nd effect.
               Top image is input
http://bit.ly/DXsdk




                    http://bit.ly/buildtask




http://blogs.msdn.com/greg_schechter
// Inputs (Brushes, including ImplicitInput)
sampler2D implicitInputSampler : register(S0);
// Inputs (Brushes, including ImplicitInput)
sampler2D implicitInputSampler : register(S0);

// Pixel Shader
float4 main(float2 uv : TEXCOORD) : COLOR
{
   float4 color = tex2D(implicitInputSampler, uv);
Brushes
      A brush maps a screen position to a color.
      SolidColorBrush




<SolidColorBrush Color=quot;Greenquot;/>
Brushes
       A brush maps a screen position to a color.
       LinearGradientBrush


                                                   StartPoint
<LinearGradientBrush>
  <LinearGradientBrush.GradientStops>
    <GradientStop Color=quot;#FF0000quot; />
    <GradientStop Color=quot;#00FF00quot; Offset=quot;.5quot; />
    <GradientStop Color=quot;#0000FFquot; Offset=quot;1quot; />
  </LinearGradientBrush.GradientStops>
</LinearGradientBrush>
                                                                EndPoint
Brushes
      A brush maps a screen position to a color.
      RadialGradientBrush



<RadialGradientBrush GradientOrigin=quot;0.25 0.25quot;>
  <RadialGradientBrush.GradientStops>
                                                   StartPoint
    <GradientStop Color=quot;Whitequot; Offset=quot;0quot;/>
    <GradientStop Color=quot;Bluequot; Offset=quot;1quot;/>
  </RadialGradientBrush.GradientStops>
</RadialGradientBrush>
                                                                EndPoint
Brushes
 Maps a screen position to a color.

 Integrate the different graphics stacks
   Image & Text
// Inputs (Brushes, including ImplicitInput)
sampler2D implicitInputSampler : register(S0);

// Pixel Shader
float4 main(float2 uv : TEXCOORD) : COLOR
{
   float4 color = tex2D(implicitInputSampler, uv);
// Inputs (Brushes, including ImplicitInput)
sampler2D implicitInputSampler : register(S0);

// Pixel Shader
float4 main(float2 uv : TEXCOORD) : COLOR
{
   float4 color = tex2D(implicitInputSampler, uv);
   color.rgb = 1 - color.rgb;
   return color;
}
Blur & DropShadow



Custom Effect



Effects can pull content from any brush
1.   ParentNode
2.   Layout Offset
3.   RenderTransform
4.   Projection



7. Opacity
8. OpacityMask
9. Hardware Cache
10.Children
Perf
Blur & DropShadow



Custom Effect



Effects can pull content from any brush
           not
WriteableBitmap:
A way to replicate content
WriteableBitmap:
A cache of our rendering pipeline
WriteableBitmap Pixel Access:
To save output of our rendering
WriteableBitmap Pixel Access:
A way to draw whatever you like
http://blogs.msdn.com/mharsh/
What's New in Microsoft Silverlight 3 MIX09-T14F
1.   ParentNode
2.   Layout Offset
3.   RenderTransform
4.   Projection
5. Clip
6. Effect
7. Opacity
8. OpacityMask
9. Hardware Cache
10.Children
1.   ParentNode
2.   Layout Offset
3.   RenderTransform
4.   Projection
5. Clip
6. Effect
7. Opacity
8. OpacityMask
9. Hardware Cache
10.Children
3 Properties can be HW accelerated
  Transforms
  Rectangular Clipping
  Blending
EnableGPUAcceleration=true
       CacheMode=BitmapCache
 EnableCacheVisualization
EnableCacheVisualization
360p Silverlight H264    CPU w/       CPU w/       % Diff
Video, Stretched to FS   SW Stretch   HW Stretch
XP laptop ’04            70% CPU      32% CPU      -55%
1.3ghz single core
Vista desktop ’04        88% CPU      44% CPU      -50%
2.4g single core
Vista laptop ’07         60% CPU      24% CPU      -60%
2.3g core2duo

540p Silverlight H264    SW Stretch   HW Stretch   % Diff
Video, Stretched to FS
XP laptop ’04            69% CPU      59% CPU      -15%
1.3ghz single core
Vista laptop ’07         71% CPU      37% CPU      -47%
2.3g core2duo
CacheMode:
WriteableBitmap:
A way to replicate content
         transform content
http://bit.ly/effectsLib
   http://bit.ly/DXsdk

             http://bit.ly/buildtask




 http://blogs.msdn.com/greg_schechter
 http://blogs.msdn.com/mharsh
http://blogs.msdn.com/jstegman/
    http://blogs.msdn.com/seema
http://blogs.msdn.com/seema
Transparency              Event
                         Handlers
          Browser:
                                             Tick
           Blend
             me



     Hey
                                                 Browser:
   browser!
                                                  what is
   Show my
                                                behind me?
    Frame



                                                 Any
     Rasterize
                                               property
      in back
                                               changes
       buffer
                                                  ?

                 Queue up
                                    Layout
                 rendering
                  changes
banding
© 2009 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries.
The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market
     conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation.
                                 MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

More Related Content

Similar to Deep Dive into Microsoft Silverlight Graphics

Understanding hardware acceleration on mobile browsers presentation
Understanding hardware acceleration on mobile browsers presentationUnderstanding hardware acceleration on mobile browsers presentation
Understanding hardware acceleration on mobile browsers presentationJustin Dorfman
 
Understanding Hardware Acceleration on Mobile Browsers
Understanding Hardware Acceleration on Mobile BrowsersUnderstanding Hardware Acceleration on Mobile Browsers
Understanding Hardware Acceleration on Mobile BrowsersAriya Hidayat
 
SIGGRAPH Asia 2012: GPU-accelerated Path Rendering
SIGGRAPH Asia 2012: GPU-accelerated Path RenderingSIGGRAPH Asia 2012: GPU-accelerated Path Rendering
SIGGRAPH Asia 2012: GPU-accelerated Path RenderingMark Kilgard
 
Understanding Hardware Acceleration on Mobile Browsers
Understanding Hardware Acceleration on Mobile BrowsersUnderstanding Hardware Acceleration on Mobile Browsers
Understanding Hardware Acceleration on Mobile BrowsersAriya Hidayat
 
Css3 transitions and animations + graceful degradation with jQuery
Css3 transitions and animations + graceful degradation with jQueryCss3 transitions and animations + graceful degradation with jQuery
Css3 transitions and animations + graceful degradation with jQueryAndrea Verlicchi
 
Web polyglot programming
Web polyglot programmingWeb polyglot programming
Web polyglot programmingDmitry Buzdin
 
Rotoscope inthebrowserppt billy
Rotoscope inthebrowserppt billyRotoscope inthebrowserppt billy
Rotoscope inthebrowserppt billynimbleltd
 
RIA Patterns - Best Practices for Common Patterns of Rich Interaction
RIA Patterns - Best Practices for Common Patterns of Rich InteractionRIA Patterns - Best Practices for Common Patterns of Rich Interaction
RIA Patterns - Best Practices for Common Patterns of Rich Interactioninteractionpatterns.org
 
Dynamic Wounds on Animated Characters in UE4
Dynamic Wounds on Animated Characters in UE4Dynamic Wounds on Animated Characters in UE4
Dynamic Wounds on Animated Characters in UE4Michał Kłoś
 
Rich Typography Options For The Web - or - Why sIFR is Dead in 2009
Rich Typography Options For The Web - or - Why sIFR is Dead in 2009Rich Typography Options For The Web - or - Why sIFR is Dead in 2009
Rich Typography Options For The Web - or - Why sIFR is Dead in 2009Paul Irish
 
Looking glassrenderinglt en
Looking glassrenderinglt enLooking glassrenderinglt en
Looking glassrenderinglt en優介 黒河
 
2D Games to HPC
2D Games to HPC2D Games to HPC
2D Games to HPCDVClub
 
GDSC KIIT Huddle Session 4 - "Graphics Pipelining"
GDSC KIIT Huddle Session 4 - "Graphics Pipelining"GDSC KIIT Huddle Session 4 - "Graphics Pipelining"
GDSC KIIT Huddle Session 4 - "Graphics Pipelining"Harshil Gupta
 
Build 2017 - B8100 - What's new and coming for Windows UI: XAML and composition
Build 2017 - B8100 - What's new and coming for Windows UI: XAML and compositionBuild 2017 - B8100 - What's new and coming for Windows UI: XAML and composition
Build 2017 - B8100 - What's new and coming for Windows UI: XAML and compositionWindows Developer
 
Web mapping with vector data. Is it the future ? 2012
Web mapping with vector data. Is it the future ? 2012Web mapping with vector data. Is it the future ? 2012
Web mapping with vector data. Is it the future ? 2012Moullet
 

Similar to Deep Dive into Microsoft Silverlight Graphics (20)

Understanding hardware acceleration on mobile browsers presentation
Understanding hardware acceleration on mobile browsers presentationUnderstanding hardware acceleration on mobile browsers presentation
Understanding hardware acceleration on mobile browsers presentation
 
Understanding Hardware Acceleration on Mobile Browsers
Understanding Hardware Acceleration on Mobile BrowsersUnderstanding Hardware Acceleration on Mobile Browsers
Understanding Hardware Acceleration on Mobile Browsers
 
SIGGRAPH Asia 2012: GPU-accelerated Path Rendering
SIGGRAPH Asia 2012: GPU-accelerated Path RenderingSIGGRAPH Asia 2012: GPU-accelerated Path Rendering
SIGGRAPH Asia 2012: GPU-accelerated Path Rendering
 
Understanding Hardware Acceleration on Mobile Browsers
Understanding Hardware Acceleration on Mobile BrowsersUnderstanding Hardware Acceleration on Mobile Browsers
Understanding Hardware Acceleration on Mobile Browsers
 
Css3 transitions and animations + graceful degradation with jQuery
Css3 transitions and animations + graceful degradation with jQueryCss3 transitions and animations + graceful degradation with jQuery
Css3 transitions and animations + graceful degradation with jQuery
 
Web polyglot programming
Web polyglot programmingWeb polyglot programming
Web polyglot programming
 
Rotoscope inthebrowserppt billy
Rotoscope inthebrowserppt billyRotoscope inthebrowserppt billy
Rotoscope inthebrowserppt billy
 
426 lecture2: AR Technology
426 lecture2: AR Technology426 lecture2: AR Technology
426 lecture2: AR Technology
 
RIA Patterns - Best Practices for Common Patterns of Rich Interaction
RIA Patterns - Best Practices for Common Patterns of Rich InteractionRIA Patterns - Best Practices for Common Patterns of Rich Interaction
RIA Patterns - Best Practices for Common Patterns of Rich Interaction
 
3 d to _hpc
3 d to _hpc3 d to _hpc
3 d to _hpc
 
HTML5 - A Whirlwind tour
HTML5 - A Whirlwind tourHTML5 - A Whirlwind tour
HTML5 - A Whirlwind tour
 
Dynamic Wounds on Animated Characters in UE4
Dynamic Wounds on Animated Characters in UE4Dynamic Wounds on Animated Characters in UE4
Dynamic Wounds on Animated Characters in UE4
 
Rich Typography Options For The Web - or - Why sIFR is Dead in 2009
Rich Typography Options For The Web - or - Why sIFR is Dead in 2009Rich Typography Options For The Web - or - Why sIFR is Dead in 2009
Rich Typography Options For The Web - or - Why sIFR is Dead in 2009
 
Looking glassrenderinglt en
Looking glassrenderinglt enLooking glassrenderinglt en
Looking glassrenderinglt en
 
3 d to_hpc
3 d to_hpc3 d to_hpc
3 d to_hpc
 
2D Games to HPC
2D Games to HPC2D Games to HPC
2D Games to HPC
 
GDSC KIIT Huddle Session 4 - "Graphics Pipelining"
GDSC KIIT Huddle Session 4 - "Graphics Pipelining"GDSC KIIT Huddle Session 4 - "Graphics Pipelining"
GDSC KIIT Huddle Session 4 - "Graphics Pipelining"
 
Build 2017 - B8100 - What's new and coming for Windows UI: XAML and composition
Build 2017 - B8100 - What's new and coming for Windows UI: XAML and compositionBuild 2017 - B8100 - What's new and coming for Windows UI: XAML and composition
Build 2017 - B8100 - What's new and coming for Windows UI: XAML and composition
 
Mlocjs buzdin
Mlocjs buzdinMlocjs buzdin
Mlocjs buzdin
 
Web mapping with vector data. Is it the future ? 2012
Web mapping with vector data. Is it the future ? 2012Web mapping with vector data. Is it the future ? 2012
Web mapping with vector data. Is it the future ? 2012
 

More from goodfriday

Narine Presentations 20051021 134052
Narine Presentations 20051021 134052Narine Presentations 20051021 134052
Narine Presentations 20051021 134052goodfriday
 
09 03 22 easter
09 03 22 easter09 03 22 easter
09 03 22 eastergoodfriday
 
Holy Week Easter 2009
Holy Week Easter 2009Holy Week Easter 2009
Holy Week Easter 2009goodfriday
 
Holt Park Easter 09 Swim
Holt Park Easter 09 SwimHolt Park Easter 09 Swim
Holt Park Easter 09 Swimgoodfriday
 
Swarthmore Lentbrochure20092
Swarthmore Lentbrochure20092Swarthmore Lentbrochure20092
Swarthmore Lentbrochure20092goodfriday
 
Eastercard2009
Eastercard2009Eastercard2009
Eastercard2009goodfriday
 
Easterservices2009
Easterservices2009Easterservices2009
Easterservices2009goodfriday
 
Bulletin Current
Bulletin CurrentBulletin Current
Bulletin Currentgoodfriday
 
March 2009 Newsletter
March 2009 NewsletterMarch 2009 Newsletter
March 2009 Newslettergoodfriday
 
Lent Easter 2009
Lent Easter 2009Lent Easter 2009
Lent Easter 2009goodfriday
 
Easterpowersports09
Easterpowersports09Easterpowersports09
Easterpowersports09goodfriday
 
Easter Trading 09
Easter Trading 09Easter Trading 09
Easter Trading 09goodfriday
 
Easter Brochure 2009
Easter Brochure 2009Easter Brochure 2009
Easter Brochure 2009goodfriday
 
March April 2009 Calendar
March April 2009 CalendarMarch April 2009 Calendar
March April 2009 Calendargoodfriday
 

More from goodfriday (20)

Narine Presentations 20051021 134052
Narine Presentations 20051021 134052Narine Presentations 20051021 134052
Narine Presentations 20051021 134052
 
Triunemar05
Triunemar05Triunemar05
Triunemar05
 
09 03 22 easter
09 03 22 easter09 03 22 easter
09 03 22 easter
 
Holy Week Easter 2009
Holy Week Easter 2009Holy Week Easter 2009
Holy Week Easter 2009
 
Holt Park Easter 09 Swim
Holt Park Easter 09 SwimHolt Park Easter 09 Swim
Holt Park Easter 09 Swim
 
Easter Letter
Easter LetterEaster Letter
Easter Letter
 
April2009
April2009April2009
April2009
 
Swarthmore Lentbrochure20092
Swarthmore Lentbrochure20092Swarthmore Lentbrochure20092
Swarthmore Lentbrochure20092
 
Eastercard2009
Eastercard2009Eastercard2009
Eastercard2009
 
Easterservices2009
Easterservices2009Easterservices2009
Easterservices2009
 
Bulletin Current
Bulletin CurrentBulletin Current
Bulletin Current
 
Easter2009
Easter2009Easter2009
Easter2009
 
Bulletin
BulletinBulletin
Bulletin
 
March 2009 Newsletter
March 2009 NewsletterMarch 2009 Newsletter
March 2009 Newsletter
 
Mar 29 2009
Mar 29 2009Mar 29 2009
Mar 29 2009
 
Lent Easter 2009
Lent Easter 2009Lent Easter 2009
Lent Easter 2009
 
Easterpowersports09
Easterpowersports09Easterpowersports09
Easterpowersports09
 
Easter Trading 09
Easter Trading 09Easter Trading 09
Easter Trading 09
 
Easter Brochure 2009
Easter Brochure 2009Easter Brochure 2009
Easter Brochure 2009
 
March April 2009 Calendar
March April 2009 CalendarMarch April 2009 Calendar
March April 2009 Calendar
 

Recently uploaded

04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUK Journal
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?Igalia
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 

Recently uploaded (20)

04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 

Deep Dive into Microsoft Silverlight Graphics

  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10. Draw Loop Event Handlers Hey browser! Tick Show my Frame Rasterize Any in back property buffer changes? Queue up rendering Layout changes
  • 11. Draw Loop Event Handlers Hey browser! Tick Show my Frame Rasterize Any in back property buffer changes? Queue up rendering Layout changes
  • 12. DoubleAnimation Storyboard.TargetName myprojection Storyboard.TargetProperty RotationY From 0 To 90 Duration 0:0:1
  • 14. Draw Loop Event Handlers Hey browser! Tick Show my Frame Rasterize Any in back property buffer changes? Queue up rendering Layout changes
  • 15. Draw Loop Event Handlers Hey browser! Tick Show my Frame Rasterize Any in back property buffer changes? Queue up rendering Layout changes
  • 16. ListBox ScrollViewer Grid ScrollBars StackPanel ListBoxItem stuff
  • 17. internal U internal offset Clip
  • 18. Draw Loop Event Handlers Hey browser! Tick Show my Frame Rasterize Any in back property buffer changes? Queue up rendering Layout changes
  • 19. Draw Loop Event Handlers Hey browser! Tick Show my Frame Rasterize Any in back property buffer changes? Queue up rendering Layout changes
  • 20. Draw Loop Event Handlers Hey browser! Tick Show my Frame Rasterize Any in back property buffer changes? Queue up rendering Layout changes
  • 21.
  • 22. Vs.
  • 23.
  • 24. 1. ParentNode 2. Layout Offset 3. RenderTransform 5. Clip 7. Opacity 8. OpacityMask 10.Children
  • 25.
  • 26. Intermediate Apply Effect surface Apply 2nd effect. Top image is input
  • 27.
  • 28.
  • 29. http://bit.ly/DXsdk http://bit.ly/buildtask http://blogs.msdn.com/greg_schechter
  • 30.
  • 31.
  • 32. // Inputs (Brushes, including ImplicitInput) sampler2D implicitInputSampler : register(S0);
  • 33. // Inputs (Brushes, including ImplicitInput) sampler2D implicitInputSampler : register(S0); // Pixel Shader float4 main(float2 uv : TEXCOORD) : COLOR { float4 color = tex2D(implicitInputSampler, uv);
  • 34. Brushes A brush maps a screen position to a color. SolidColorBrush <SolidColorBrush Color=quot;Greenquot;/>
  • 35. Brushes A brush maps a screen position to a color. LinearGradientBrush StartPoint <LinearGradientBrush> <LinearGradientBrush.GradientStops> <GradientStop Color=quot;#FF0000quot; /> <GradientStop Color=quot;#00FF00quot; Offset=quot;.5quot; /> <GradientStop Color=quot;#0000FFquot; Offset=quot;1quot; /> </LinearGradientBrush.GradientStops> </LinearGradientBrush> EndPoint
  • 36. Brushes A brush maps a screen position to a color. RadialGradientBrush <RadialGradientBrush GradientOrigin=quot;0.25 0.25quot;> <RadialGradientBrush.GradientStops> StartPoint <GradientStop Color=quot;Whitequot; Offset=quot;0quot;/> <GradientStop Color=quot;Bluequot; Offset=quot;1quot;/> </RadialGradientBrush.GradientStops> </RadialGradientBrush> EndPoint
  • 37. Brushes Maps a screen position to a color. Integrate the different graphics stacks Image & Text
  • 38. // Inputs (Brushes, including ImplicitInput) sampler2D implicitInputSampler : register(S0); // Pixel Shader float4 main(float2 uv : TEXCOORD) : COLOR { float4 color = tex2D(implicitInputSampler, uv);
  • 39. // Inputs (Brushes, including ImplicitInput) sampler2D implicitInputSampler : register(S0); // Pixel Shader float4 main(float2 uv : TEXCOORD) : COLOR { float4 color = tex2D(implicitInputSampler, uv); color.rgb = 1 - color.rgb; return color; }
  • 40.
  • 41. Blur & DropShadow Custom Effect Effects can pull content from any brush
  • 42. 1. ParentNode 2. Layout Offset 3. RenderTransform 4. Projection 7. Opacity 8. OpacityMask 9. Hardware Cache 10.Children
  • 43. Perf Blur & DropShadow Custom Effect Effects can pull content from any brush not
  • 44.
  • 45.
  • 46. WriteableBitmap: A way to replicate content
  • 47. WriteableBitmap: A cache of our rendering pipeline
  • 48. WriteableBitmap Pixel Access: To save output of our rendering
  • 49. WriteableBitmap Pixel Access: A way to draw whatever you like
  • 50.
  • 52. What's New in Microsoft Silverlight 3 MIX09-T14F
  • 53.
  • 54. 1. ParentNode 2. Layout Offset 3. RenderTransform 4. Projection 5. Clip 6. Effect 7. Opacity 8. OpacityMask 9. Hardware Cache 10.Children
  • 55.
  • 56.
  • 57. 1. ParentNode 2. Layout Offset 3. RenderTransform 4. Projection 5. Clip 6. Effect 7. Opacity 8. OpacityMask 9. Hardware Cache 10.Children
  • 58. 3 Properties can be HW accelerated Transforms Rectangular Clipping Blending
  • 59.
  • 60. EnableGPUAcceleration=true CacheMode=BitmapCache EnableCacheVisualization
  • 62.
  • 63. 360p Silverlight H264 CPU w/ CPU w/ % Diff Video, Stretched to FS SW Stretch HW Stretch XP laptop ’04 70% CPU 32% CPU -55% 1.3ghz single core Vista desktop ’04 88% CPU 44% CPU -50% 2.4g single core Vista laptop ’07 60% CPU 24% CPU -60% 2.3g core2duo 540p Silverlight H264 SW Stretch HW Stretch % Diff Video, Stretched to FS XP laptop ’04 69% CPU 59% CPU -15% 1.3ghz single core Vista laptop ’07 71% CPU 37% CPU -47% 2.3g core2duo
  • 64. CacheMode: WriteableBitmap: A way to replicate content transform content
  • 65. http://bit.ly/effectsLib http://bit.ly/DXsdk http://bit.ly/buildtask http://blogs.msdn.com/greg_schechter http://blogs.msdn.com/mharsh http://blogs.msdn.com/jstegman/ http://blogs.msdn.com/seema
  • 66.
  • 67.
  • 69.
  • 70. Transparency Event Handlers Browser: Tick Blend me Hey Browser: browser! what is Show my behind me? Frame Any Rasterize property in back changes buffer ? Queue up Layout rendering changes
  • 72.
  • 73. © 2009 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.