diff options
author | 2014-11-04 13:24:47 -0800 | |
---|---|---|
committer | 2014-11-04 13:24:47 -0800 | |
commit | 7b8646669f5b1e2daddf53764bcde62d743ff076 (patch) | |
tree | a3819f578d93172a261f7dd4d6745397c1c0cf70 /resources/slides_content2.lua | |
parent | 2bf8d09689715eaa84deebe11b62d987013923c3 (diff) |
update slides
BUG=skia:
Review URL: https://codereview.chromium.org/686853005
Diffstat (limited to 'resources/slides_content2.lua')
-rw-r--r-- | resources/slides_content2.lua | 72 |
1 files changed, 53 insertions, 19 deletions
diff --git a/resources/slides_content2.lua b/resources/slides_content2.lua index 19d7203812..3b4eb09445 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 - |