Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(174)

Side by Side Diff: resources/slides_content2.lua

Issue 698563004: update slide content (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: Created 6 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « resources/slides.lua ('k') | resources/slides_utils.lua » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 Skia Update 1 Skia Update
2 2
3 Skia : Overview 3 Skia : Overview
4 - portable 2D graphics engine 4 - portable 2D graphics engine
5 - src: geometry, images, text 5 - src : geometry, images, text
6 - dst : raster, gpu, pdf, displaylist, *user-defined 6 - attr: shaders, filters, antialiasing, blending
7 - attr: shaders, filters, antialiasing, blending, *user-defined 7 - dst : raster, gpu, pdf, picture
8
9 Skia : Porting
10 - C++ and some SIMD assembly
11 - Fonts : CoreText, FreeType, GDI, DirectWrite
12 - Threads : wrappers for native apis
13 - Memory : wrappers for [new, malloc, discardable]
8 14
9 Skia : Clients 15 Skia : Clients
10 - Blink : direct and via GraphicsContext 16 - Blink : under the GraphicsContext hood
11 - Chrome : ui/gfx and compositor 17 - Chrome : ui/gfx and compositor
12 - Android framework 18 - Android framework
13 - third parties : e.g. Mozilla 19 - third parties : e.g. Mozilla
14 - code.google.com/p/skia 20 - sites.google.com/site/skiadocs
15 21
16 Skia : Porting 22 Skia In Blink
17 - C++ and some SIMD assembly
18 - Fonts : CoreText, FreeType, GDI, DirectWrite, *user-define
19 - Threads : wrappers for native apis
20 - Memory : wrappers for [new, malloc, discardable]
21
22 Skia : API
23 - SkCanvas
24 -- save, saveLayer, restore
25 -- translate, scale, rotate, concat
26 -- clipRect, clipPath
27 - SkPaint
28 -- color, stroking, antialiasing, filtering
29 -- typeface, textSize, text-flags
30 -- effects: shader, color-filter, image-filter, mask-filter, xfermode
31
32 <blockstyle = code>
33 void onDraw(SkCanvas* canvas) {
34 SkPaint paint;
35 paint.setFoo(...);
36 canvas->drawRect(..., paint);
37 paint.setBar(...);
38 canvas->drawOval(..., paint);
39 }
40
41 <blockstyle = code>
42 void onDraw(SkCanvas* canvas) {
43 canvas->drawRect(..., fPaint0);
44 canvas->drawOval(..., fPaint1);
45 }
46
47 Skia In Blink : GraphicsContext
48 - Similar
49 -- rects, paths, images, text
50 -- matrices, clips
51 - Different
52 -- save/restore affect matrix+clip PLUS all paint settings
53 -- both fill and stroke settings are specified
54 -- hence: fillRect(), strokeRect(), drawRect()
55
56 <blockstyle = code>
57 void onDraw(GraphicsContext* gc) {
58 gc->save();
59 gc->setFoo(...);
60 gc->fillRect(...);
61 gc->setBar(...);
62 gc->fillOval(...);
63 gc->restore();
64 }
65
66 Skia In Blink : more than GraphicsContext
67 - Simple wrappers
68 -- FloatRect -- SkRect
69 -- Path -- SkPath
70 - Font.h + 21 others
71 -- SkTypeface + flags
72 - Image.h + 25 others
73 -- SkBitmap, SkImage
74 23
75 Skia In Blink : Fonts 24 Skia In Blink : Fonts
76 - Assist with code-sharing between platforms 25 - SkTypeface and SkFontMgr : platform agnostic
77 - Runtime switch between GDI and DirectWrite 26 - Runtime switch between GDI and DirectWrite
78 - Add SkFontMgr for selection 27 - SkTextBlob to encapsulate runs of text
79 - Push LCD decision-making out of Blink 28 - Push LCD decision-making out of Blink
80 29
81 Skia In Blink : Record-Time-Rasterization 30 Skia In Blink : Record-Time-Rasterization
82 - Direct rendering during “Paint” pass 31 - Direct rendering during “Paint” pass
83 -- Image scaling, filters 32 -- Image scaling, filters
84 -- SVG patterns, masks 33 -- SVG patterns, masks
85 - Problematic in modern Blink 34 - Problematic in modern Blink
86 -- CTM not always known/knowable 35 -- CTM not always known/knowable
87 -- Rendering backend not always known (gpu or cpu) 36 -- Rendering backend not always known (gpu or cpu)
88 -- Rasterization takes (too much) time 37 -- Rasterization takes (too much) time
89 38
90 Skia In Blink : RTR response 39 Skia In Blink : RTR response
91 - SkImageFilter w/ CPU and GPU implementations 40 - SkImageFilter w/ CPU and GPU implementations
92 - SkPaint::FilterLevel : none, low, medium (mipmaps), high 41 - FilterLevel : none, low, medium (mipmaps), high
93 - SkPicture for caching SVG 42 - SkPicture for caching SVG
94 - SkPicture + saveLayer() for masks 43 - SkPicture + saveLayer() for masks
95 -- PathOps for resolving complex paths 44 -- PathOps for resolving complex paths
96 - SkPictureShader for device-independent patterns 45 - SkPictureShader for device-independent patterns
46
47 Skia In Blink : Recording
48 - GraphicsContext usuaually backed by SkPicture
49 -- draw commands are recorded for later playback
50 -- all parameters must be copied or (safely) ref'd
51 -- may record more than is currently visible
52 - Resulting picture may be replayed multiple times
53
54 Skia In Blink : Recording response
55 - New implementation
56 - Optimized for recording speed
57 -- shallow copies whenever possible
58 -- rearchitect all Skia effects to be immutable
59 - Reentrant-safe for playback in multiple threads
60 -- also affected effect subclasses
61
62 Skia In Blink : Playback
63 - Separate pass for optimizations (optional)
64 -- peep-holes rewrites
65 -- compute bounding-box hierarchy for faster tiling
66 -- can be done outside of Blink thread
67 - GPU optimizations
68 -- layer "hoisting"
69 -- distance field fonts
70
71 Skia : Roadmap
72
73 Skia In Blink : Roadmap
74 - GPU performance
75 -- extended OpenGL features (e.g. geometry shaders)
76 -- reordering for increased batching
77 -- support for new low-level OpenGL APIs
78 - Cross process support
79 -- immediate mode ala SkGPipe
80 -- serialize pictures
81
82 Skia API Roadmap
83 - Direct support for sRGB
84 - Stable C API / ABI
85 -- bindings for JS, Go, Python, Lua
86 - Robust file format
87
88 Demo
89
OLDNEW
« no previous file with comments | « resources/slides.lua ('k') | resources/slides_utils.lua » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698