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

Create DlCanvas interface and implement with DisplayListBuilder and SkCanvasAdapter #39762

Merged
merged 2 commits into from
Feb 24, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 6 additions & 4 deletions ci/licenses_golden/licenses_flutter
Original file line number Diff line number Diff line change
Expand Up @@ -713,8 +713,6 @@ ORIGIN: ../../../flutter/display_list/display_list_blend_mode.h + ../../../flutt
ORIGIN: ../../../flutter/display_list/display_list_builder.cc + ../../../flutter/LICENSE
ORIGIN: ../../../flutter/display_list/display_list_builder.h + ../../../flutter/LICENSE
ORIGIN: ../../../flutter/display_list/display_list_builder_benchmarks.cc + ../../../flutter/LICENSE
ORIGIN: ../../../flutter/display_list/display_list_builder_multiplexer.cc + ../../../flutter/LICENSE
ORIGIN: ../../../flutter/display_list/display_list_builder_multiplexer.h + ../../../flutter/LICENSE
ORIGIN: ../../../flutter/display_list/display_list_canvas_dispatcher.cc + ../../../flutter/LICENSE
ORIGIN: ../../../flutter/display_list/display_list_canvas_dispatcher.h + ../../../flutter/LICENSE
ORIGIN: ../../../flutter/display_list/display_list_canvas_recorder.cc + ../../../flutter/LICENSE
Expand Down Expand Up @@ -762,6 +760,9 @@ ORIGIN: ../../../flutter/display_list/display_list_utils.cc + ../../../flutter/L
ORIGIN: ../../../flutter/display_list/display_list_utils.h + ../../../flutter/LICENSE
ORIGIN: ../../../flutter/display_list/display_list_vertices.cc + ../../../flutter/LICENSE
ORIGIN: ../../../flutter/display_list/display_list_vertices.h + ../../../flutter/LICENSE
ORIGIN: ../../../flutter/display_list/dl_canvas.h + ../../../flutter/LICENSE
ORIGIN: ../../../flutter/display_list/skia/dl_sk_canvas.cc + ../../../flutter/LICENSE
ORIGIN: ../../../flutter/display_list/skia/dl_sk_canvas.h + ../../../flutter/LICENSE
ORIGIN: ../../../flutter/display_list/types.h + ../../../flutter/LICENSE
ORIGIN: ../../../flutter/flow/compositor_context.cc + ../../../flutter/LICENSE
ORIGIN: ../../../flutter/flow/compositor_context.h + ../../../flutter/LICENSE
Expand Down Expand Up @@ -3213,8 +3214,6 @@ FILE: ../../../flutter/display_list/display_list_blend_mode.h
FILE: ../../../flutter/display_list/display_list_builder.cc
FILE: ../../../flutter/display_list/display_list_builder.h
FILE: ../../../flutter/display_list/display_list_builder_benchmarks.cc
FILE: ../../../flutter/display_list/display_list_builder_multiplexer.cc
FILE: ../../../flutter/display_list/display_list_builder_multiplexer.h
FILE: ../../../flutter/display_list/display_list_canvas_dispatcher.cc
FILE: ../../../flutter/display_list/display_list_canvas_dispatcher.h
FILE: ../../../flutter/display_list/display_list_canvas_recorder.cc
Expand Down Expand Up @@ -3262,6 +3261,9 @@ FILE: ../../../flutter/display_list/display_list_utils.cc
FILE: ../../../flutter/display_list/display_list_utils.h
FILE: ../../../flutter/display_list/display_list_vertices.cc
FILE: ../../../flutter/display_list/display_list_vertices.h
FILE: ../../../flutter/display_list/dl_canvas.h
FILE: ../../../flutter/display_list/skia/dl_sk_canvas.cc
FILE: ../../../flutter/display_list/skia/dl_sk_canvas.h
FILE: ../../../flutter/display_list/types.h
FILE: ../../../flutter/flow/compositor_context.cc
FILE: ../../../flutter/flow/compositor_context.h
Expand Down
11 changes: 4 additions & 7 deletions common/graphics/texture.h
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,7 @@

#include <map>

#include "flutter/display_list/display_list_builder.h"
#include "flutter/display_list/display_list_paint.h"
#include "flutter/display_list/dl_canvas.h"
#include "flutter/fml/macros.h"
#include "flutter/fml/synchronization/waitable_event.h"
#include "third_party/skia/include/core/SkCanvas.h"
Expand Down Expand Up @@ -40,12 +39,10 @@ class ContextListener {
class Texture : public ContextListener {
public:
struct PaintContext {
SkCanvas* canvas = nullptr;
DisplayListBuilder* builder = nullptr;
DlCanvas* canvas = nullptr;
GrDirectContext* gr_context = nullptr;
impeller::AiksContext* aiks_context = nullptr;
const SkPaint* sk_paint = nullptr;
const DlPaint* dl_paint = nullptr;
const DlPaint* paint = nullptr;
};

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

// Called on raster thread.
virtual void MarkNewFrameAvailable() = 0;
Expand Down
5 changes: 3 additions & 2 deletions display_list/BUILD.gn
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,6 @@ source_set("display_list") {
"display_list_blend_mode.h",
"display_list_builder.cc",
"display_list_builder.h",
"display_list_builder_multiplexer.cc",
"display_list_builder_multiplexer.h",
"display_list_canvas_dispatcher.cc",
"display_list_canvas_dispatcher.h",
"display_list_canvas_recorder.cc",
Expand Down Expand Up @@ -63,6 +61,9 @@ source_set("display_list") {
"display_list_utils.h",
"display_list_vertices.cc",
"display_list_vertices.h",
"dl_canvas.h",
"skia/dl_sk_canvas.cc",
"skia/dl_sk_canvas.h",
"types.h",
]

Expand Down
4 changes: 2 additions & 2 deletions display_list/display_list.cc
Original file line number Diff line number Diff line change
Expand Up @@ -299,9 +299,9 @@ void DisplayList::RenderTo(DisplayListBuilder* builder) const {
return;
}
if (has_rtree()) {
Dispatch(*builder, builder->getLocalClipBounds());
Dispatch(builder->asDispatcher(), builder->GetLocalClipBounds());
} else {
Dispatch(*builder);
Dispatch(builder->asDispatcher());
}
}

Expand Down
16 changes: 8 additions & 8 deletions display_list/display_list_benchmarks.cc
Original file line number Diff line number Diff line change
Expand Up @@ -839,13 +839,13 @@ std::vector<SkPoint> GetTestPoints(size_t count, SkISize canvas_size) {
return points;
}

std::string PointModeToString(SkCanvas::PointMode mode) {
std::string PointModeToString(DlCanvas::PointMode mode) {
switch (mode) {
case SkCanvas::kLines_PointMode:
case DlCanvas::PointMode::kLines:
return "Lines";
case SkCanvas::kPolygon_PointMode:
case DlCanvas::PointMode::kPolygon:
return "Polygon";
case SkCanvas::kPoints_PointMode:
case DlCanvas::PointMode::kPoints:
default:
return "Points";
}
Expand All @@ -860,26 +860,26 @@ std::string PointModeToString(SkCanvas::PointMode mode) {
void BM_DrawPoints(benchmark::State& state,
BackendType backend_type,
unsigned attributes,
SkCanvas::PointMode mode) {
DlCanvas::PointMode mode) {
auto surface_provider = DlSurfaceProvider::Create(backend_type);
DisplayListBuilder builder;
SkPaint paint;
switch (mode) {
case SkCanvas::kPoints_PointMode:
case DlCanvas::PointMode::kPoints:
builder.setAttributesFromPaint(
GetPaintForRun(attributes),
DisplayListOpFlags::kDrawPointsAsPointsFlags);
AnnotateAttributes(attributes, state,
DisplayListOpFlags::kDrawPointsAsPointsFlags);
break;
case SkCanvas::kLines_PointMode:
case DlCanvas::PointMode::kLines:
builder.setAttributesFromPaint(
GetPaintForRun(attributes),
DisplayListOpFlags::kDrawPointsAsLinesFlags);
AnnotateAttributes(attributes, state,
DisplayListOpFlags::kDrawPointsAsLinesFlags);
break;
case SkCanvas::kPolygon_PointMode:
case DlCanvas::PointMode::kPolygon:
builder.setAttributesFromPaint(
GetPaintForRun(attributes),
DisplayListOpFlags::kDrawPointsAsPolygonFlags);
Expand Down
9 changes: 5 additions & 4 deletions display_list/display_list_benchmarks.h
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@

#include "flutter/display_list/display_list_sampling_options.h"
#include "flutter/display_list/display_list_vertices.h"
#include "flutter/display_list/dl_canvas.h"
#include "flutter/display_list/testing/dl_test_surface_provider.h"

#include "third_party/benchmark/include/benchmark/benchmark.h"
Expand Down Expand Up @@ -63,7 +64,7 @@ void BM_DrawPath(benchmark::State& state,
void BM_DrawPoints(benchmark::State& state,
BackendType backend_type,
unsigned attributes,
SkCanvas::PointMode mode);
DlCanvas::PointMode mode);
void BM_DrawVertices(benchmark::State& state,
BackendType backend_type,
unsigned attributes,
Expand Down Expand Up @@ -199,7 +200,7 @@ void BM_SaveLayer(benchmark::State& state,
BENCHMARK_CAPTURE(BM_DrawPoints, Points/BACKEND, \
BackendType::k##BACKEND##_Backend, \
ATTRIBUTES, \
SkCanvas::kPoints_PointMode) \
DlCanvas::PointMode::kPoints) \
->RangeMultiplier(2) \
->Range(1024, 32768) \
->UseRealTime() \
Expand All @@ -208,7 +209,7 @@ void BM_SaveLayer(benchmark::State& state,
BENCHMARK_CAPTURE(BM_DrawPoints, Lines/BACKEND, \
BackendType::k##BACKEND##_Backend, \
ATTRIBUTES, \
SkCanvas::kLines_PointMode) \
DlCanvas::PointMode::kLines) \
->RangeMultiplier(2) \
->Range(1024, 32768) \
->UseRealTime() \
Expand All @@ -217,7 +218,7 @@ void BM_SaveLayer(benchmark::State& state,
BENCHMARK_CAPTURE(BM_DrawPoints, Polygon/BACKEND, \
BackendType::k##BACKEND##_Backend, \
ATTRIBUTES, \
SkCanvas::kPolygon_PointMode) \
DlCanvas::PointMode::kPolygon) \
->RangeMultiplier(2) \
->Range(1024, 32768) \
->UseRealTime() \
Expand Down
Loading