Redefining Mobile
 Graphics Stack
       Ariya Hidayat
whoami
ariya hidayat




      10+ years activity in FOSS


         was with Nokia, Qt
now with Qualcomm Innovation Center
goals


     Share ideas!
Provoke brainstroming!
share the love



gitorious.org/qt-labs/graphics-dojo




               gitorious.org/ofi-labs/x2
hot devices
iPhone 3GS


       iPhone OS 3.1
       320 × 480, 163 ppi
       OpenGL ES 2
Nexus One


      Android 2.1
      480 × 800, 252 ppi
      OpenGL ES 2
Nokia N900


       Maemo 5
       800 × 480, 267 ppi
       OpenGL ES 2
pixel control
line drawing




Bresenham line algorithm
anti-aliased line drawing




   Xiaolin Wu's line algorithm
polygon rasterization
path rasterization
transformation

Scaling   Rotation   Perspective
perspective transformation
optimizations
blazing fast recipes

●   alternative/faster code path
●   avoid text layout whenever possible
●   malloc-free common oper...
hardware support & abstraction


pixmap               GLtexture       VGImage

layer                 display list    VGPat...
use-cases guided profiling


app -graphicssystem trace
qttracereplay painting.trace



cairo-trace –profile app
cairo-perf...
multithreaded painting
multithreaded painting
efficient animation
goodies
color spaces
high-dynamic range
Dean S. Pemberton
Old St Paul’s
special effects
lighting & shadow
night mode
geometrical deformation
underwater effect




 remember Quake 1?
genie
(perceptive) faster response

           SVG up- and down-scaling




              optimize using tiles
progressive zoom
user clicks “Zoom 2x”




                        smooth scaled

   fast but “blocky”
shape morphing




digital clock




       analog clock
physics
kinetic scrolling

                                       Mouse move
                  Pressed

                          ...
easing curve


Linear      EaseInOut
                                   deacceleration




                        acceler...
parallax effect
2.5 dimension




 215 lines of code
2-d physics engine
photo slide
network ubiquity
distributed system (autoreplication?)


                           in some remote
                               machine
assistive technology
element tagging
                                clock




 weather




                                   launcher


autoz...
voice recognition (for driving?)
spread the love
gitorious.org/ofi-labs/x2
muito obrigado!
Upcoming SlideShare
Loading in …5
×

Redefining Mobile Graphics Stack

2,681 views

Published on

"Redefining Mobile Graphics Stack" is a talk delivered by Ariya Hidayat for Bossa Conference '10 in Manaus, Brazil

Published in: Technology, Art & Photos

Redefining Mobile Graphics Stack

  1. 1. Redefining Mobile Graphics Stack Ariya Hidayat
  2. 2. whoami
  3. 3. ariya hidayat 10+ years activity in FOSS was with Nokia, Qt now with Qualcomm Innovation Center
  4. 4. goals Share ideas! Provoke brainstroming!
  5. 5. share the love gitorious.org/qt-labs/graphics-dojo gitorious.org/ofi-labs/x2
  6. 6. hot devices
  7. 7. iPhone 3GS iPhone OS 3.1 320 × 480, 163 ppi OpenGL ES 2
  8. 8. Nexus One Android 2.1 480 × 800, 252 ppi OpenGL ES 2
  9. 9. Nokia N900 Maemo 5 800 × 480, 267 ppi OpenGL ES 2
  10. 10. pixel control
  11. 11. line drawing Bresenham line algorithm
  12. 12. anti-aliased line drawing Xiaolin Wu's line algorithm
  13. 13. polygon rasterization
  14. 14. path rasterization
  15. 15. transformation Scaling Rotation Perspective
  16. 16. perspective transformation
  17. 17. optimizations
  18. 18. blazing fast recipes ● alternative/faster code path ● avoid text layout whenever possible ● malloc-free common operations ● auto-adjustment of quality vs speed
  19. 19. hardware support & abstraction pixmap GLtexture VGImage layer display list VGPath FBO optimize further with smart caching
  20. 20. use-cases guided profiling app -graphicssystem trace qttracereplay painting.trace cairo-trace –profile app cairo-perf-trace painting.trace
  21. 21. multithreaded painting
  22. 22. multithreaded painting
  23. 23. efficient animation
  24. 24. goodies
  25. 25. color spaces
  26. 26. high-dynamic range
  27. 27. Dean S. Pemberton Old St Paul’s
  28. 28. special effects
  29. 29. lighting & shadow
  30. 30. night mode
  31. 31. geometrical deformation
  32. 32. underwater effect remember Quake 1?
  33. 33. genie
  34. 34. (perceptive) faster response SVG up- and down-scaling optimize using tiles
  35. 35. progressive zoom user clicks “Zoom 2x” smooth scaled fast but “blocky”
  36. 36. shape morphing digital clock analog clock
  37. 37. physics
  38. 38. kinetic scrolling Mouse move Pressed Manual Scroll Mouse release Steady Mouse release Mouse move Auto Scroll Mouse press Stop Timer tick
  39. 39. easing curve Linear EaseInOut deacceleration acceleration
  40. 40. parallax effect
  41. 41. 2.5 dimension 215 lines of code
  42. 42. 2-d physics engine
  43. 43. photo slide
  44. 44. network ubiquity
  45. 45. distributed system (autoreplication?) in some remote machine
  46. 46. assistive technology
  47. 47. element tagging clock weather launcher autozoom contact
  48. 48. voice recognition (for driving?)
  49. 49. spread the love
  50. 50. gitorious.org/ofi-labs/x2
  51. 51. muito obrigado!

×