Chromium Code Reviews

Side by Side Diff: sky/examples/raw/shadow.dart

Issue 1190123003: Decouple Canvas from DisplayList and map Picture and PictureRecorder more directly to their Skia co… (Closed) Base URL: git@github.com:domokit/mojo.git@master
Patch Set: Rework the API a bit Created 5 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments.
Jump to:
View unified diff |
OLDNEW
1 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 import 'dart:sky'; 5 import 'dart:sky';
6 6
7 void beginFrame(double timeStamp) { 7 void beginFrame(double timeStamp) {
8 var size = 100.0; 8 var size = 100.0;
9 PictureRecorder canvas = new PictureRecorder(view.width, view.height); 9 PictureRecorder recorder = new PictureRecorder();
10 Canvas canvas = recorder.beginRecording(view.width, view.height);
10 canvas.translate(size + 10.0, size + 10.0); 11 canvas.translate(size + 10.0, size + 10.0);
11 12
12 Paint paint = new Paint(); 13 Paint paint = new Paint();
13 paint.color = const Color.fromARGB(255, 0, 255, 0); 14 paint.color = const Color.fromARGB(255, 0, 255, 0);
14 var builder = new LayerDrawLooperBuilder() 15 var builder = new LayerDrawLooperBuilder()
15 // Shadow layer. 16 // Shadow layer.
16 ..addLayerOnTop( 17 ..addLayerOnTop(
17 new DrawLooperLayerInfo() 18 new DrawLooperLayerInfo()
18 ..setPaintBits(PaintBits.all) 19 ..setPaintBits(PaintBits.all)
19 ..setOffset(const Point(5.0, 5.0)) 20 ..setOffset(const Point(5.0, 5.0))
20 ..setColorMode(TransferMode.src), 21 ..setColorMode(TransferMode.src),
21 (Paint layerPaint) { 22 (Paint layerPaint) {
22 layerPaint.color = const Color.fromARGB(128, 55, 55, 55); 23 layerPaint.color = const Color.fromARGB(128, 55, 55, 55);
23 layerPaint.setMaskFilter( 24 layerPaint.setMaskFilter(
24 new MaskFilter.blur(BlurStyle.normal, 5.0, highQuality: true)); 25 new MaskFilter.blur(BlurStyle.normal, 5.0, highQuality: true));
25 }) 26 })
26 // Main layer. 27 // Main layer.
27 ..addLayerOnTop(new DrawLooperLayerInfo(), (Paint) {}); 28 ..addLayerOnTop(new DrawLooperLayerInfo(), (Paint) {});
28 paint.setDrawLooper(builder.build()); 29 paint.setDrawLooper(builder.build());
29 30
30 canvas.drawPaint( 31 canvas.drawPaint(
31 new Paint()..color = const Color.fromARGB(255, 255, 255, 255)); 32 new Paint()..color = const Color.fromARGB(255, 255, 255, 255));
32 canvas.drawRect(new Rect.fromLTRB(-size, -size, size, size), paint); 33 canvas.drawRect(new Rect.fromLTRB(-size, -size, size, size), paint);
33 view.picture = canvas.endRecording(); 34 view.picture = recorder.endRecording();
34 } 35 }
35 36
36 void main() { 37 void main() {
37 view.setBeginFrameCallback(beginFrame); 38 view.setBeginFrameCallback(beginFrame);
38 view.scheduleFrame(); 39 view.scheduleFrame();
39 } 40 }
OLDNEW

Powered by Google App Engine