SlideShare a Scribd company logo
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 operations
●   auto-adjustment of quality vs speed
hardware support & abstraction


pixmap               GLtexture       VGImage

layer                 display list    VGPath
                         FBO



    optimize further with smart caching
use-cases guided profiling


app -graphicssystem trace
qttracereplay painting.trace



cairo-trace –profile app
cairo-perf-trace painting.trace
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

                                       Manual Scroll
         Mouse release
Steady                             Mouse release

              Mouse
              move                      Auto Scroll
                         Mouse press
              Stop
                                            Timer tick
easing curve


Linear      EaseInOut
                                   deacceleration




                        acceleration
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


autozoom


                      contact
voice recognition (for driving?)
spread the love
gitorious.org/ofi-labs/x2
muito obrigado!

More Related Content

Redefining Mobile Graphics Stack