SlideShare a Scribd company logo
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
Understanding Hardware Acceleration on Mobile BrowsersUnderstanding Hardware Acceleration on Mobile Browsers
Understanding Hardware Acceleration on Mobile Browsers
Ariya Hidayat
 
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
Justin Dorfman
 
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
Mark 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
 
426 lecture2: AR Technology
426 lecture2: AR Technology426 lecture2: AR Technology
426 lecture2: AR Technology
Mark Billinghurst
 
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
interactionpatterns.org
 
HTML5 - A Whirlwind tour
HTML5 - A Whirlwind tourHTML5 - A Whirlwind tour
HTML5 - A Whirlwind tour
Lohith Goudagere Nagaraj
 
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
Michał 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 composition
Windows 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 ? 2012
Moullet
 

Similar to Deep Dive into Microsoft Silverlight Graphics (20)

Understanding Hardware Acceleration on Mobile Browsers
Understanding Hardware Acceleration on Mobile BrowsersUnderstanding Hardware Acceleration on Mobile Browsers
Understanding Hardware Acceleration on Mobile Browsers
 
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
 
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
 
2D Games to HPC
2D Games to HPC2D Games to HPC
2D Games to HPC
 
3 d to_hpc
3 d to_hpc3 d to_hpc
3 d 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

FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
Ana-Maria Mihalceanu
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
DianaGray10
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
KatiaHIMEUR1
 
Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*
Frank van Harmelen
 
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
Product School
 
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
Product School
 
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
BookNet Canada
 
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
Product School
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Albert Hoitingh
 
Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
Safe Software
 
Generating a custom Ruby SDK for your web service or Rails API using Smithy
Generating a custom Ruby SDK for your web service or Rails API using SmithyGenerating a custom Ruby SDK for your web service or Rails API using Smithy
Generating a custom Ruby SDK for your web service or Rails API using Smithy
g2nightmarescribd
 
PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
ControlCase
 
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
Sri Ambati
 
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Tobias Schneck
 
Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
Thijs Feryn
 
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance
 
UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3
DianaGray10
 
Assuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyesAssuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyes
ThousandEyes
 
Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........
Alison B. Lowndes
 

Recently uploaded (20)

FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
 
Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*
 
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
 
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
 
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
 
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
 
Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
 
Generating a custom Ruby SDK for your web service or Rails API using Smithy
Generating a custom Ruby SDK for your web service or Rails API using SmithyGenerating a custom Ruby SDK for your web service or Rails API using Smithy
Generating a custom Ruby SDK for your web service or Rails API using Smithy
 
PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
 
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
 
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
 
Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
 
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
 
UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3
 
Assuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyesAssuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyes
 
Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........
 

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.