redefining mobile graphics stack

51
Redefining Mobile Redefining Mobile Graphics Stack Graphics Stack Ariya Hidayat

Upload: ofilabs

Post on 20-Aug-2015

2.186 views

Category:

Technology


1 download

TRANSCRIPT

Page 1: Redefining Mobile Graphics Stack

Redefining MobileRedefining MobileGraphics StackGraphics Stack

Ariya Hidayat

Page 2: Redefining Mobile Graphics Stack

whoami

Page 3: Redefining Mobile Graphics Stack

ariya hidayat

10+ years activity in FOSS

was with Nokia, Qt

now with Qualcomm Innovation Center

Page 4: Redefining Mobile Graphics Stack

goals

Share ideas!

Provoke brainstroming!

Page 5: Redefining Mobile Graphics Stack

share the love

gitorious.org/qt-labs/graphics-dojo

gitorious.org/ofi-labs/x2

Page 6: Redefining Mobile Graphics Stack

hot devices

Page 7: Redefining Mobile Graphics Stack

iPhone 3GS

iPhone OS 3.1

320 × 480, 163 ppi

OpenGL ES 2

Page 8: Redefining Mobile Graphics Stack

Nexus One

Android 2.1

480 × 800, 252 ppi

OpenGL ES 2

Page 9: Redefining Mobile Graphics Stack

Nokia N900

Maemo 5

800 × 480, 267 ppi

OpenGL ES 2

Page 10: Redefining Mobile Graphics Stack

pixel control

Page 11: Redefining Mobile Graphics Stack

line drawing

Bresenham line algorithm

Page 12: Redefining Mobile Graphics Stack

anti-aliased line drawing

Xiaolin Wu's line algorithm

Page 13: Redefining Mobile Graphics Stack

polygon rasterization

Page 14: Redefining Mobile Graphics Stack

path rasterization

Page 15: Redefining Mobile Graphics Stack

transformation

Scaling Rotation Perspective

Page 16: Redefining Mobile Graphics Stack

perspective transformation

Page 17: Redefining Mobile Graphics Stack

optimizations

Page 18: Redefining Mobile Graphics Stack

blazing fast recipes

● alternative/faster code path● avoid text layout whenever possible● malloc-free common operations● auto-adjustment of quality vs speed

Page 19: Redefining Mobile Graphics Stack

hardware support & abstraction

pixmap GLtexture VGImage

layer display list

FBO

VGPath

optimize further with smart caching

Page 20: Redefining Mobile Graphics Stack

use-cases guided profiling

cairo-trace –profile app

cairo-perf-trace painting.trace

app -graphicssystem trace

qttracereplay painting.trace

Page 21: Redefining Mobile Graphics Stack

multithreaded painting

Page 22: Redefining Mobile Graphics Stack

multithreaded painting

Page 23: Redefining Mobile Graphics Stack

efficient animation

Page 24: Redefining Mobile Graphics Stack

goodies

Page 25: Redefining Mobile Graphics Stack

color spaces

Page 26: Redefining Mobile Graphics Stack

high-dynamic range

Page 27: Redefining Mobile Graphics Stack

Dean S. Pemberton

Old St Paul’s

Page 28: Redefining Mobile Graphics Stack

special effects

Page 29: Redefining Mobile Graphics Stack

lighting & shadow

Page 30: Redefining Mobile Graphics Stack

night mode

Page 31: Redefining Mobile Graphics Stack

geometrical deformation

Page 32: Redefining Mobile Graphics Stack

underwater effect

remember Quake 1?

Page 33: Redefining Mobile Graphics Stack

genie

Page 34: Redefining Mobile Graphics Stack

(perceptive) faster response

SVG up- and down-scaling

optimize using tiles

Page 35: Redefining Mobile Graphics Stack

progressive zoom

user clicks “Zoom 2x”

fast but “blocky”

smooth scaled

Page 36: Redefining Mobile Graphics Stack

shape morphing

analog clock

digital clock

Page 37: Redefining Mobile Graphics Stack

physics

Page 38: Redefining Mobile Graphics Stack

kinetic scrolling

Steady

Pressed

Manual Scroll

Auto Scroll

Stop

Mouse release

Mouse move

Mouse release

Mouse press

Mousemove

Timer tick

Page 39: Redefining Mobile Graphics Stack

easing curve

EaseInOutLinear

acceleration

deacceleration

Page 40: Redefining Mobile Graphics Stack

parallax effect

Page 41: Redefining Mobile Graphics Stack

2.5 dimension

215 lines of code

Page 42: Redefining Mobile Graphics Stack

2-d physics engine

Page 43: Redefining Mobile Graphics Stack

photo slide

Page 44: Redefining Mobile Graphics Stack

network ubiquity

Page 45: Redefining Mobile Graphics Stack

distributed system (autoreplication?)

in some remote machine

Page 46: Redefining Mobile Graphics Stack

assistive technology

Page 47: Redefining Mobile Graphics Stack

element tagging

clock

weather

contact

launcher

autozoom

Page 48: Redefining Mobile Graphics Stack

voice recognition (for driving?)

Page 49: Redefining Mobile Graphics Stack

spread the love

Page 50: Redefining Mobile Graphics Stack

gitorious.org/ofi-labs/x2

Page 51: Redefining Mobile Graphics Stack

muito obrigado!