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 |
- |