Skip to content
This repository was archived by the owner on Feb 25, 2025. It is now read-only.

Commit e17aded

Browse files
committed
Create DlCanvas interface and implement with DisplayListBuilder and SkCanvasAdapter
1 parent 1ce93ca commit e17aded

File tree

174 files changed

+3593
-3059
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

174 files changed

+3593
-3059
lines changed

ci/licenses_golden/licenses_flutter

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -713,8 +713,6 @@ ORIGIN: ../../../flutter/display_list/display_list_blend_mode.h + ../../../flutt
713713
ORIGIN: ../../../flutter/display_list/display_list_builder.cc + ../../../flutter/LICENSE
714714
ORIGIN: ../../../flutter/display_list/display_list_builder.h + ../../../flutter/LICENSE
715715
ORIGIN: ../../../flutter/display_list/display_list_builder_benchmarks.cc + ../../../flutter/LICENSE
716-
ORIGIN: ../../../flutter/display_list/display_list_builder_multiplexer.cc + ../../../flutter/LICENSE
717-
ORIGIN: ../../../flutter/display_list/display_list_builder_multiplexer.h + ../../../flutter/LICENSE
718716
ORIGIN: ../../../flutter/display_list/display_list_canvas_dispatcher.cc + ../../../flutter/LICENSE
719717
ORIGIN: ../../../flutter/display_list/display_list_canvas_dispatcher.h + ../../../flutter/LICENSE
720718
ORIGIN: ../../../flutter/display_list/display_list_canvas_recorder.cc + ../../../flutter/LICENSE
@@ -762,6 +760,9 @@ ORIGIN: ../../../flutter/display_list/display_list_utils.cc + ../../../flutter/L
762760
ORIGIN: ../../../flutter/display_list/display_list_utils.h + ../../../flutter/LICENSE
763761
ORIGIN: ../../../flutter/display_list/display_list_vertices.cc + ../../../flutter/LICENSE
764762
ORIGIN: ../../../flutter/display_list/display_list_vertices.h + ../../../flutter/LICENSE
763+
ORIGIN: ../../../flutter/display_list/dl_canvas.h + ../../../flutter/LICENSE
764+
ORIGIN: ../../../flutter/display_list/skia/dl_sk_canvas.cc + ../../../flutter/LICENSE
765+
ORIGIN: ../../../flutter/display_list/skia/dl_sk_canvas.h + ../../../flutter/LICENSE
765766
ORIGIN: ../../../flutter/display_list/types.h + ../../../flutter/LICENSE
766767
ORIGIN: ../../../flutter/flow/compositor_context.cc + ../../../flutter/LICENSE
767768
ORIGIN: ../../../flutter/flow/compositor_context.h + ../../../flutter/LICENSE
@@ -3213,8 +3214,6 @@ FILE: ../../../flutter/display_list/display_list_blend_mode.h
32133214
FILE: ../../../flutter/display_list/display_list_builder.cc
32143215
FILE: ../../../flutter/display_list/display_list_builder.h
32153216
FILE: ../../../flutter/display_list/display_list_builder_benchmarks.cc
3216-
FILE: ../../../flutter/display_list/display_list_builder_multiplexer.cc
3217-
FILE: ../../../flutter/display_list/display_list_builder_multiplexer.h
32183217
FILE: ../../../flutter/display_list/display_list_canvas_dispatcher.cc
32193218
FILE: ../../../flutter/display_list/display_list_canvas_dispatcher.h
32203219
FILE: ../../../flutter/display_list/display_list_canvas_recorder.cc
@@ -3262,6 +3261,9 @@ FILE: ../../../flutter/display_list/display_list_utils.cc
32623261
FILE: ../../../flutter/display_list/display_list_utils.h
32633262
FILE: ../../../flutter/display_list/display_list_vertices.cc
32643263
FILE: ../../../flutter/display_list/display_list_vertices.h
3264+
FILE: ../../../flutter/display_list/dl_canvas.h
3265+
FILE: ../../../flutter/display_list/skia/dl_sk_canvas.cc
3266+
FILE: ../../../flutter/display_list/skia/dl_sk_canvas.h
32653267
FILE: ../../../flutter/display_list/types.h
32663268
FILE: ../../../flutter/flow/compositor_context.cc
32673269
FILE: ../../../flutter/flow/compositor_context.h

common/graphics/texture.h

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,7 @@
77

88
#include <map>
99

10-
#include "flutter/display_list/display_list_builder.h"
11-
#include "flutter/display_list/display_list_paint.h"
10+
#include "flutter/display_list/dl_canvas.h"
1211
#include "flutter/fml/macros.h"
1312
#include "flutter/fml/synchronization/waitable_event.h"
1413
#include "third_party/skia/include/core/SkCanvas.h"
@@ -40,12 +39,10 @@ class ContextListener {
4039
class Texture : public ContextListener {
4140
public:
4241
struct PaintContext {
43-
SkCanvas* canvas = nullptr;
44-
DisplayListBuilder* builder = nullptr;
42+
DlCanvas* canvas = nullptr;
4543
GrDirectContext* gr_context = nullptr;
4644
impeller::AiksContext* aiks_context = nullptr;
47-
const SkPaint* sk_paint = nullptr;
48-
const DlPaint* dl_paint = nullptr;
45+
const DlPaint* paint = nullptr;
4946
};
5047

5148
explicit Texture(int64_t id); // Called from UI or raster thread.
@@ -55,7 +52,7 @@ class Texture : public ContextListener {
5552
virtual void Paint(PaintContext& context,
5653
const SkRect& bounds,
5754
bool freeze,
58-
const SkSamplingOptions& sampling) = 0;
55+
const DlImageSampling sampling) = 0;
5956

6057
// Called on raster thread.
6158
virtual void MarkNewFrameAvailable() = 0;

display_list/BUILD.gn

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,6 @@ source_set("display_list") {
1616
"display_list_blend_mode.h",
1717
"display_list_builder.cc",
1818
"display_list_builder.h",
19-
"display_list_builder_multiplexer.cc",
20-
"display_list_builder_multiplexer.h",
2119
"display_list_canvas_dispatcher.cc",
2220
"display_list_canvas_dispatcher.h",
2321
"display_list_canvas_recorder.cc",
@@ -63,6 +61,9 @@ source_set("display_list") {
6361
"display_list_utils.h",
6462
"display_list_vertices.cc",
6563
"display_list_vertices.h",
64+
"dl_canvas.h",
65+
"skia/dl_sk_canvas.cc",
66+
"skia/dl_sk_canvas.h",
6667
"types.h",
6768
]
6869

display_list/display_list.cc

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -299,9 +299,9 @@ void DisplayList::RenderTo(DisplayListBuilder* builder) const {
299299
return;
300300
}
301301
if (has_rtree()) {
302-
Dispatch(*builder, builder->getLocalClipBounds());
302+
Dispatch(builder->asDispatcher(), builder->GetLocalClipBounds());
303303
} else {
304-
Dispatch(*builder);
304+
Dispatch(builder->asDispatcher());
305305
}
306306
}
307307

display_list/display_list_benchmarks.cc

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -839,13 +839,13 @@ std::vector<SkPoint> GetTestPoints(size_t count, SkISize canvas_size) {
839839
return points;
840840
}
841841

842-
std::string PointModeToString(SkCanvas::PointMode mode) {
842+
std::string PointModeToString(DlCanvas::PointMode mode) {
843843
switch (mode) {
844-
case SkCanvas::kLines_PointMode:
844+
case DlCanvas::PointMode::kLines:
845845
return "Lines";
846-
case SkCanvas::kPolygon_PointMode:
846+
case DlCanvas::PointMode::kPolygon:
847847
return "Polygon";
848-
case SkCanvas::kPoints_PointMode:
848+
case DlCanvas::PointMode::kPoints:
849849
default:
850850
return "Points";
851851
}
@@ -860,26 +860,26 @@ std::string PointModeToString(SkCanvas::PointMode mode) {
860860
void BM_DrawPoints(benchmark::State& state,
861861
BackendType backend_type,
862862
unsigned attributes,
863-
SkCanvas::PointMode mode) {
863+
DlCanvas::PointMode mode) {
864864
auto surface_provider = DlSurfaceProvider::Create(backend_type);
865865
DisplayListBuilder builder;
866866
SkPaint paint;
867867
switch (mode) {
868-
case SkCanvas::kPoints_PointMode:
868+
case DlCanvas::PointMode::kPoints:
869869
builder.setAttributesFromPaint(
870870
GetPaintForRun(attributes),
871871
DisplayListOpFlags::kDrawPointsAsPointsFlags);
872872
AnnotateAttributes(attributes, state,
873873
DisplayListOpFlags::kDrawPointsAsPointsFlags);
874874
break;
875-
case SkCanvas::kLines_PointMode:
875+
case DlCanvas::PointMode::kLines:
876876
builder.setAttributesFromPaint(
877877
GetPaintForRun(attributes),
878878
DisplayListOpFlags::kDrawPointsAsLinesFlags);
879879
AnnotateAttributes(attributes, state,
880880
DisplayListOpFlags::kDrawPointsAsLinesFlags);
881881
break;
882-
case SkCanvas::kPolygon_PointMode:
882+
case DlCanvas::PointMode::kPolygon:
883883
builder.setAttributesFromPaint(
884884
GetPaintForRun(attributes),
885885
DisplayListOpFlags::kDrawPointsAsPolygonFlags);

display_list/display_list_benchmarks.h

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77

88
#include "flutter/display_list/display_list_sampling_options.h"
99
#include "flutter/display_list/display_list_vertices.h"
10+
#include "flutter/display_list/dl_canvas.h"
1011
#include "flutter/display_list/testing/dl_test_surface_provider.h"
1112

1213
#include "third_party/benchmark/include/benchmark/benchmark.h"
@@ -63,7 +64,7 @@ void BM_DrawPath(benchmark::State& state,
6364
void BM_DrawPoints(benchmark::State& state,
6465
BackendType backend_type,
6566
unsigned attributes,
66-
SkCanvas::PointMode mode);
67+
DlCanvas::PointMode mode);
6768
void BM_DrawVertices(benchmark::State& state,
6869
BackendType backend_type,
6970
unsigned attributes,
@@ -199,7 +200,7 @@ void BM_SaveLayer(benchmark::State& state,
199200
BENCHMARK_CAPTURE(BM_DrawPoints, Points/BACKEND, \
200201
BackendType::k##BACKEND##_Backend, \
201202
ATTRIBUTES, \
202-
SkCanvas::kPoints_PointMode) \
203+
DlCanvas::PointMode::kPoints) \
203204
->RangeMultiplier(2) \
204205
->Range(1024, 32768) \
205206
->UseRealTime() \
@@ -208,7 +209,7 @@ void BM_SaveLayer(benchmark::State& state,
208209
BENCHMARK_CAPTURE(BM_DrawPoints, Lines/BACKEND, \
209210
BackendType::k##BACKEND##_Backend, \
210211
ATTRIBUTES, \
211-
SkCanvas::kLines_PointMode) \
212+
DlCanvas::PointMode::kLines) \
212213
->RangeMultiplier(2) \
213214
->Range(1024, 32768) \
214215
->UseRealTime() \
@@ -217,7 +218,7 @@ void BM_SaveLayer(benchmark::State& state,
217218
BENCHMARK_CAPTURE(BM_DrawPoints, Polygon/BACKEND, \
218219
BackendType::k##BACKEND##_Backend, \
219220
ATTRIBUTES, \
220-
SkCanvas::kPolygon_PointMode) \
221+
DlCanvas::PointMode::kPolygon) \
221222
->RangeMultiplier(2) \
222223
->Range(1024, 32768) \
223224
->UseRealTime() \

0 commit comments

Comments
 (0)