| Index: resources/slides_content2.lua
|
| diff --git a/resources/slides_content2.lua b/resources/slides_content2.lua
|
| index 19d7203812c4090cbcbfd9301232a6eb8f48fe38..3b4eb094453ff4932450a7aa0198d4089ad3a413 100644
|
| --- a/resources/slides_content2.lua
|
| +++ b/resources/slides_content2.lua
|
| @@ -1,10 +1,14 @@
|
| Skia Update
|
|
|
| +Skia : Access
|
| +- code.google.com/p/skia
|
| +- sites.google.com/site/skiadocs
|
| +
|
| Skia : Overview
|
| -- portable 2D graphics engine
|
| -- src : geometry, images, text
|
| -- attr: shaders, filters, antialiasing, blending
|
| -- dst : raster, gpu, pdf, picture
|
| +- portable graphics engine
|
| +- 2D transformations + perspective
|
| +- primitives: text, geometry, images
|
| +- effects: shaders, filters, antialiasing, blending
|
|
|
| Skia : Porting
|
| - C++ and some SIMD assembly
|
| @@ -12,12 +16,21 @@ Skia : Porting
|
| - Threads : wrappers for native apis
|
| - Memory : wrappers for [new, malloc, discardable]
|
|
|
| +Skia : Backends
|
| +- Surface
|
| +-- raster : ARGB, RGB16, A8 in software
|
| +-- gpu : transcribe to OpenGL
|
| +- Document
|
| +-- transcribe to PDF or XPS
|
| +- Record and Playback
|
| +-- Picture
|
| +-- Pipe
|
| +
|
| Skia : Clients
|
| - Blink : under the GraphicsContext hood
|
| - Chrome : ui/gfx and compositor
|
| -- Android framework
|
| +- Android : framework
|
| - third parties : e.g. Mozilla
|
| -- sites.google.com/site/skiadocs
|
|
|
| Skia In Blink
|
|
|
| @@ -28,7 +41,7 @@ Skia In Blink : Fonts
|
| - Push LCD decision-making out of Blink
|
|
|
| Skia In Blink : Record-Time-Rasterization
|
| -- Direct rendering during “Paint” pass
|
| +- What? : direct rendering during “Paint” pass
|
| -- Image scaling, filters
|
| -- SVG patterns, masks
|
| - Problematic in modern Blink
|
| @@ -38,18 +51,19 @@ Skia In Blink : Record-Time-Rasterization
|
|
|
| Skia In Blink : RTR response
|
| - SkImageFilter w/ CPU and GPU implementations
|
| -- FilterLevel : none, low, medium (mipmaps), high
|
| +- Bitmap scaling : bilerp, mipmaps, fancy
|
| - SkPicture for caching SVG
|
| - SkPicture + saveLayer() for masks
|
| -- PathOps for resolving complex paths
|
| - SkPictureShader for device-independent patterns
|
|
|
| Skia In Blink : Recording
|
| -- GraphicsContext usuaually backed by SkPicture
|
| +- GraphicsContext (now) backed by SkPicture
|
| -- draw commands are recorded for later playback
|
| -- all parameters must be copied or (safely) ref'd
|
| -- may record more than is currently visible
|
| - Resulting picture may be replayed multiple times
|
| +-- from different thread(s)
|
|
|
| Skia In Blink : Recording response
|
| - New implementation
|
| @@ -66,24 +80,44 @@ Skia In Blink : Playback
|
| -- can be done outside of Blink thread
|
| - GPU optimizations
|
| -- layer "hoisting"
|
| --- distance field fonts
|
| +-- distance fields : fonts and concave paths
|
| +
|
| +Skia In Blink : multi-picture-draw
|
| +- mpd(canvas[], picture[], matrix[], paint[])
|
| +- Requires independent canvas objects
|
| +-- all other parameters can be shared
|
| +-- draw order is unspecified
|
| +- Examples
|
| +-- 1 picture drawing to multiple tiles (canvases)
|
| +-- multiple pictures each drawing to its own layer
|
| +
|
| +Skia In Blink : MPD optimizations*
|
| +- GPU
|
| +-- "layer hoisting" to reduce rendertarget switching
|
| +-- layer atlasing (also applies to imagefilters)
|
| +-- pre-uploading of textures
|
| +-- atlas yuv (from jpeg) to convert on gpu
|
| +- CPU
|
| +-- parallel execution using thread pool
|
| +-- pre-decoding of images based on visibility
|
|
|
| Skia : Roadmap
|
|
|
| -Skia In Blink : Roadmap
|
| -- GPU performance
|
| +Skia : Roadmap - performance
|
| +- GPU
|
| -- extended OpenGL features (e.g. geometry shaders)
|
| -- reordering for increased batching
|
| -- support for new low-level OpenGL APIs
|
| -- Cross process support
|
| --- immediate mode ala SkGPipe
|
| --- serialize pictures
|
| +- CPU
|
| +-- SIMD applied to floats
|
| +-- smarter culling in pictures
|
|
|
| -Skia API Roadmap
|
| +Skia : Roadmap - API
|
| +- Cross process support
|
| - Direct support for sRGB
|
| -- Stable C API / ABI
|
| --- bindings for JS, Go, Python, Lua
|
| - Robust file format
|
| +- Support PDF viewing
|
| +- Stable C ABI
|
| +-- bindings for JS, Go, Python, Lua
|
|
|
| Demo
|
| -
|
|
|