redefining mobile graphics stack
TRANSCRIPT
Redefining MobileRedefining MobileGraphics StackGraphics 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
FBO
VGPath
optimize further with smart caching
use-cases guided profiling
cairo-trace –profile app
cairo-perf-trace painting.trace
app -graphicssystem trace
qttracereplay 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”
fast but “blocky”
smooth scaled
shape morphing
analog clock
digital clock
physics
kinetic scrolling
Steady
Pressed
Manual Scroll
Auto Scroll
Stop
Mouse release
Mouse move
Mouse release
Mouse press
Mousemove
Timer tick
easing curve
EaseInOutLinear
acceleration
deacceleration
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
contact
launcher
autozoom
voice recognition (for driving?)
spread the love
gitorious.org/ofi-labs/x2
muito obrigado!