SlideShare ist ein Scribd-Unternehmen logo
1 von 73
Downloaden Sie, um offline zu lesen
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.

Weitere ähnliche Inhalte

Ähnlich wie 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
 

Ähnlich wie 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
 

Mehr von 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
 

Mehr von 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
 

Kürzlich hochgeladen

Emixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentEmixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentPim van der Noll
 
Data governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationData governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationKnoldus Inc.
 
Scale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterScale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterMydbops
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxLoriGlavin3
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxLoriGlavin3
 
Abdul Kader Baba- Managing Cybersecurity Risks and Compliance Requirements i...
Abdul Kader Baba- Managing Cybersecurity Risks  and Compliance Requirements i...Abdul Kader Baba- Managing Cybersecurity Risks  and Compliance Requirements i...
Abdul Kader Baba- Managing Cybersecurity Risks and Compliance Requirements i...itnewsafrica
 
Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfGenerative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfIngrid Airi González
 
Glenn Lazarus- Why Your Observability Strategy Needs Security Observability
Glenn Lazarus- Why Your Observability Strategy Needs Security ObservabilityGlenn Lazarus- Why Your Observability Strategy Needs Security Observability
Glenn Lazarus- Why Your Observability Strategy Needs Security Observabilityitnewsafrica
 
A Framework for Development in the AI Age
A Framework for Development in the AI AgeA Framework for Development in the AI Age
A Framework for Development in the AI AgeCprime
 
2024 April Patch Tuesday
2024 April Patch Tuesday2024 April Patch Tuesday
2024 April Patch TuesdayIvanti
 
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesHow to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesThousandEyes
 
React Native vs Ionic - The Best Mobile App Framework
React Native vs Ionic - The Best Mobile App FrameworkReact Native vs Ionic - The Best Mobile App Framework
React Native vs Ionic - The Best Mobile App FrameworkPixlogix Infotech
 
Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)Kaya Weers
 
QCon London: Mastering long-running processes in modern architectures
QCon London: Mastering long-running processes in modern architecturesQCon London: Mastering long-running processes in modern architectures
QCon London: Mastering long-running processes in modern architecturesBernd Ruecker
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxLoriGlavin3
 
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Alkin Tezuysal
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfLoriGlavin3
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxLoriGlavin3
 
Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Farhan Tariq
 
Generative AI - Gitex v1Generative AI - Gitex v1.pptx
Generative AI - Gitex v1Generative AI - Gitex v1.pptxGenerative AI - Gitex v1Generative AI - Gitex v1.pptx
Generative AI - Gitex v1Generative AI - Gitex v1.pptxfnnc6jmgwh
 

Kürzlich hochgeladen (20)

Emixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentEmixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
 
Data governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationData governance with Unity Catalog Presentation
Data governance with Unity Catalog Presentation
 
Scale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterScale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL Router
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
 
Abdul Kader Baba- Managing Cybersecurity Risks and Compliance Requirements i...
Abdul Kader Baba- Managing Cybersecurity Risks  and Compliance Requirements i...Abdul Kader Baba- Managing Cybersecurity Risks  and Compliance Requirements i...
Abdul Kader Baba- Managing Cybersecurity Risks and Compliance Requirements i...
 
Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfGenerative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdf
 
Glenn Lazarus- Why Your Observability Strategy Needs Security Observability
Glenn Lazarus- Why Your Observability Strategy Needs Security ObservabilityGlenn Lazarus- Why Your Observability Strategy Needs Security Observability
Glenn Lazarus- Why Your Observability Strategy Needs Security Observability
 
A Framework for Development in the AI Age
A Framework for Development in the AI AgeA Framework for Development in the AI Age
A Framework for Development in the AI Age
 
2024 April Patch Tuesday
2024 April Patch Tuesday2024 April Patch Tuesday
2024 April Patch Tuesday
 
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesHow to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
 
React Native vs Ionic - The Best Mobile App Framework
React Native vs Ionic - The Best Mobile App FrameworkReact Native vs Ionic - The Best Mobile App Framework
React Native vs Ionic - The Best Mobile App Framework
 
Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)
 
QCon London: Mastering long-running processes in modern architectures
QCon London: Mastering long-running processes in modern architecturesQCon London: Mastering long-running processes in modern architectures
QCon London: Mastering long-running processes in modern architectures
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
 
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
 
Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...
 
Generative AI - Gitex v1Generative AI - Gitex v1.pptx
Generative AI - Gitex v1Generative AI - Gitex v1.pptxGenerative AI - Gitex v1Generative AI - Gitex v1.pptx
Generative AI - Gitex v1Generative AI - Gitex v1.pptx
 

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.