 |
Flutter Impeller
|
|
#include <dl_dispatcher.h>
|
| | DlDispatcher () |
| |
| | DlDispatcher (Rect cull_rect) |
| |
| | DlDispatcher (IRect cull_rect) |
| |
| | ~DlDispatcher () |
| |
| Picture | EndRecordingAsPicture () |
| |
| void | setAntiAlias (bool aa) override |
| |
| void | setDither (bool dither) override |
| |
| void | setDrawStyle (flutter::DlDrawStyle style) override |
| |
| void | setColor (flutter::DlColor color) override |
| |
| void | setStrokeWidth (SkScalar width) override |
| |
| void | setStrokeMiter (SkScalar limit) override |
| |
| void | setStrokeCap (flutter::DlStrokeCap cap) override |
| |
| void | setStrokeJoin (flutter::DlStrokeJoin join) override |
| |
| void | setColorSource (const flutter::DlColorSource *source) override |
| |
| void | setColorFilter (const flutter::DlColorFilter *filter) override |
| |
| void | setInvertColors (bool invert) override |
| |
| void | setBlendMode (flutter::DlBlendMode mode) override |
| |
| void | setPathEffect (const flutter::DlPathEffect *effect) override |
| |
| void | setMaskFilter (const flutter::DlMaskFilter *filter) override |
| |
| void | setImageFilter (const flutter::DlImageFilter *filter) override |
| |
| void | save () override |
| |
| void | saveLayer (const SkRect *bounds, const flutter::SaveLayerOptions options, const flutter::DlImageFilter *backdrop) override |
| |
| void | restore () override |
| |
| void | translate (SkScalar tx, SkScalar ty) override |
| |
| void | scale (SkScalar sx, SkScalar sy) override |
| |
| void | rotate (SkScalar degrees) override |
| |
| void | skew (SkScalar sx, SkScalar sy) override |
| |
| void | transform2DAffine (SkScalar mxx, SkScalar mxy, SkScalar mxt, SkScalar myx, SkScalar myy, SkScalar myt) override |
| |
| void | transformFullPerspective (SkScalar mxx, SkScalar mxy, SkScalar mxz, SkScalar mxt, SkScalar myx, SkScalar myy, SkScalar myz, SkScalar myt, SkScalar mzx, SkScalar mzy, SkScalar mzz, SkScalar mzt, SkScalar mwx, SkScalar mwy, SkScalar mwz, SkScalar mwt) override |
| |
| void | transformReset () override |
| |
| void | clipRect (const SkRect &rect, ClipOp clip_op, bool is_aa) override |
| |
| void | clipRRect (const SkRRect &rrect, ClipOp clip_op, bool is_aa) override |
| |
| void | clipPath (const SkPath &path, ClipOp clip_op, bool is_aa) override |
| |
| void | drawColor (flutter::DlColor color, flutter::DlBlendMode mode) override |
| |
| void | drawPaint () override |
| |
| void | drawLine (const SkPoint &p0, const SkPoint &p1) override |
| |
| void | drawRect (const SkRect &rect) override |
| |
| void | drawOval (const SkRect &bounds) override |
| |
| void | drawCircle (const SkPoint ¢er, SkScalar radius) override |
| |
| void | drawRRect (const SkRRect &rrect) override |
| |
| void | drawDRRect (const SkRRect &outer, const SkRRect &inner) override |
| |
| void | drawPath (const SkPath &path) override |
| |
| void | drawArc (const SkRect &oval_bounds, SkScalar start_degrees, SkScalar sweep_degrees, bool use_center) override |
| |
| void | drawPoints (PointMode mode, uint32_t count, const SkPoint points[]) override |
| |
| void | drawVertices (const flutter::DlVertices *vertices, flutter::DlBlendMode dl_mode) override |
| |
| void | drawImage (const sk_sp< flutter::DlImage > image, const SkPoint point, flutter::DlImageSampling sampling, bool render_with_attributes) override |
| |
| void | drawImageRect (const sk_sp< flutter::DlImage > image, const SkRect &src, const SkRect &dst, flutter::DlImageSampling sampling, bool render_with_attributes, SrcRectConstraint constraint) override |
| |
| void | drawImageNine (const sk_sp< flutter::DlImage > image, const SkIRect ¢er, const SkRect &dst, flutter::DlFilterMode filter, bool render_with_attributes) override |
| |
| void | drawAtlas (const sk_sp< flutter::DlImage > atlas, const SkRSXform xform[], const SkRect tex[], const flutter::DlColor colors[], int count, flutter::DlBlendMode mode, flutter::DlImageSampling sampling, const SkRect *cull_rect, bool render_with_attributes) override |
| |
| void | drawDisplayList (const sk_sp< flutter::DisplayList > display_list, SkScalar opacity) override |
| |
| void | drawTextBlob (const sk_sp< SkTextBlob > blob, SkScalar x, SkScalar y) override |
| |
| void | drawTextFrame (const std::shared_ptr< impeller::TextFrame > &text_frame, SkScalar x, SkScalar y) override |
| |
| void | drawShadow (const SkPath &path, const flutter::DlColor color, const SkScalar elevation, bool transparent_occluder, SkScalar dpr) override |
| |
Definition at line 14 of file dl_dispatcher.h.
◆ DlDispatcher() [1/3]
| impeller::DlDispatcher::DlDispatcher |
( |
| ) |
|
|
default |
◆ DlDispatcher() [2/3]
| impeller::DlDispatcher::DlDispatcher |
( |
Rect |
cull_rect | ) |
|
|
explicit |
◆ DlDispatcher() [3/3]
| impeller::DlDispatcher::DlDispatcher |
( |
IRect |
cull_rect | ) |
|
|
explicit |
◆ ~DlDispatcher()
| impeller::DlDispatcher::~DlDispatcher |
( |
| ) |
|
|
default |
◆ clipPath()
| void impeller::DlDispatcher::clipPath |
( |
const SkPath & |
path, |
|
|
ClipOp |
clip_op, |
|
|
bool |
is_aa |
|
) |
| |
|
override |
◆ clipRect()
| void impeller::DlDispatcher::clipRect |
( |
const SkRect & |
rect, |
|
|
ClipOp |
clip_op, |
|
|
bool |
is_aa |
|
) |
| |
|
override |
◆ clipRRect()
| void impeller::DlDispatcher::clipRRect |
( |
const SkRRect & |
rrect, |
|
|
ClipOp |
clip_op, |
|
|
bool |
is_aa |
|
) |
| |
|
override |
◆ drawArc()
| void impeller::DlDispatcher::drawArc |
( |
const SkRect & |
oval_bounds, |
|
|
SkScalar |
start_degrees, |
|
|
SkScalar |
sweep_degrees, |
|
|
bool |
use_center |
|
) |
| |
|
override |
◆ drawAtlas()
| void impeller::DlDispatcher::drawAtlas |
( |
const sk_sp< flutter::DlImage > |
atlas, |
|
|
const SkRSXform |
xform[], |
|
|
const SkRect |
tex[], |
|
|
const flutter::DlColor |
colors[], |
|
|
int |
count, |
|
|
flutter::DlBlendMode |
mode, |
|
|
flutter::DlImageSampling |
sampling, |
|
|
const SkRect * |
cull_rect, |
|
|
bool |
render_with_attributes |
|
) |
| |
|
override |
◆ drawCircle()
| void impeller::DlDispatcher::drawCircle |
( |
const SkPoint & |
center, |
|
|
SkScalar |
radius |
|
) |
| |
|
override |
◆ drawColor()
| void impeller::DlDispatcher::drawColor |
( |
flutter::DlColor |
color, |
|
|
flutter::DlBlendMode |
mode |
|
) |
| |
|
override |
◆ drawDisplayList()
| void impeller::DlDispatcher::drawDisplayList |
( |
const sk_sp< flutter::DisplayList > |
display_list, |
|
|
SkScalar |
opacity |
|
) |
| |
|
override |
Definition at line 987 of file dl_dispatcher.cc.
991 Paint saved_paint = paint_;
992 Matrix saved_initial_matrix = initial_matrix_;
1011 if (opacity < SK_Scalar1) {
1013 save_paint.color = Color(0, 0, 0, opacity);
1019 if (display_list->has_rtree() && !initial_matrix_.
HasPerspective()) {
1026 if (cull_bounds.has_value()) {
1027 Rect cull_rect = cull_bounds.value();
1028 display_list->Dispatch(
1029 *
this, SkRect::MakeLTRB(cull_rect.GetLeft(), cull_rect.GetTop(),
1030 cull_rect.GetRight(), cull_rect.GetBottom()));
1032 display_list->Dispatch(*
this);
1035 display_list->Dispatch(*
this);
1041 initial_matrix_ = saved_initial_matrix;
1042 paint_ = saved_paint;
References impeller::Paint::color, impeller::TRect< T >::GetBottom(), impeller::Canvas::GetCurrentLocalCullingBounds(), impeller::Canvas::GetCurrentTransformation(), impeller::TRect< T >::GetLeft(), impeller::TRect< T >::GetRight(), impeller::Canvas::GetSaveCount(), impeller::TRect< T >::GetTop(), impeller::Matrix::HasPerspective(), impeller::Canvas::RestoreToCount(), impeller::Canvas::Save(), and impeller::Canvas::SaveLayer().
Referenced by impeller::testing::TEST_P().
◆ drawDRRect()
| void impeller::DlDispatcher::drawDRRect |
( |
const SkRRect & |
outer, |
|
|
const SkRRect & |
inner |
|
) |
| |
|
override |
◆ drawImage()
| void impeller::DlDispatcher::drawImage |
( |
const sk_sp< flutter::DlImage > |
image, |
|
|
const SkPoint |
point, |
|
|
flutter::DlImageSampling |
sampling, |
|
|
bool |
render_with_attributes |
|
) |
| |
|
override |
Definition at line 910 of file dl_dispatcher.cc.
918 auto texture = image->impeller_texture();
923 const auto size = texture->GetSize();
924 const auto src = SkRect::MakeWH(size.width, size.height);
926 SkRect::MakeXYWH(point.fX, point.fY, size.width, size.height);
932 render_with_attributes,
933 SrcRectConstraint::kStrict
References drawImageRect().
◆ drawImageNine()
| void impeller::DlDispatcher::drawImageNine |
( |
const sk_sp< flutter::DlImage > |
image, |
|
|
const SkIRect & |
center, |
|
|
const SkRect & |
dst, |
|
|
flutter::DlFilterMode |
filter, |
|
|
bool |
render_with_attributes |
|
) |
| |
|
override |
◆ drawImageRect()
| void impeller::DlDispatcher::drawImageRect |
( |
const sk_sp< flutter::DlImage > |
image, |
|
|
const SkRect & |
src, |
|
|
const SkRect & |
dst, |
|
|
flutter::DlImageSampling |
sampling, |
|
|
bool |
render_with_attributes, |
|
|
SrcRectConstraint |
constraint = SrcRectConstraint::kFast |
|
) |
| |
|
override |
◆ drawLine()
| void impeller::DlDispatcher::drawLine |
( |
const SkPoint & |
p0, |
|
|
const SkPoint & |
p1 |
|
) |
| |
|
override |
◆ drawOval()
| void impeller::DlDispatcher::drawOval |
( |
const SkRect & |
bounds | ) |
|
|
override |
◆ drawPaint()
| void impeller::DlDispatcher::drawPaint |
( |
| ) |
|
|
override |
◆ drawPath()
| void impeller::DlDispatcher::drawPath |
( |
const SkPath & |
path | ) |
|
|
override |
◆ drawPoints()
| void impeller::DlDispatcher::drawPoints |
( |
PointMode |
mode, |
|
|
uint32_t |
count, |
|
|
const SkPoint |
points[] |
|
) |
| |
|
override |
Definition at line 864 of file dl_dispatcher.cc.
867 Paint paint = paint_;
870 case flutter::DlCanvas::PointMode::kPoints: {
874 auto radius = paint.stroke_width;
881 case flutter::DlCanvas::PointMode::kLines:
882 for (uint32_t i = 1; i < count; i += 2) {
885 auto path = PathBuilder{}.AddLine(p0, p1).TakePath();
889 case flutter::DlCanvas::PointMode::kPolygon:
892 for (uint32_t i = 1; i < count; i++) {
894 auto path = PathBuilder{}.AddLine(p0, p1).TakePath();
References impeller::PathBuilder::AddLine(), impeller::Canvas::DrawPath(), impeller::Canvas::DrawPoints(), impeller::kRound, impeller::kSquare, impeller::Paint::kStroke, impeller::Paint::stroke_cap, impeller::Paint::stroke_width, impeller::Paint::style, impeller::PathBuilder::TakePath(), impeller::skia_conversions::ToPoint(), and impeller::skia_conversions::ToPoints().
◆ drawRect()
| void impeller::DlDispatcher::drawRect |
( |
const SkRect & |
rect | ) |
|
|
override |
◆ drawRRect()
| void impeller::DlDispatcher::drawRRect |
( |
const SkRRect & |
rrect | ) |
|
|
override |
◆ drawShadow()
| void impeller::DlDispatcher::drawShadow |
( |
const SkPath & |
path, |
|
|
const flutter::DlColor |
color, |
|
|
const SkScalar |
elevation, |
|
|
bool |
transparent_occluder, |
|
|
SkScalar |
dpr |
|
) |
| |
|
override |
Definition at line 1064 of file dl_dispatcher.cc.
1070 spot_color.alpha *= 0.25;
1075 std::max(std::max(spot_color.red, spot_color.green), spot_color.blue);
1077 std::min(std::min(spot_color.red, spot_color.green), spot_color.blue);
1078 Scalar luminance = (min + max) * 0.5;
1081 (2.6f + (-2.66667f + 1.06667f * spot_color.alpha) * spot_color.alpha) *
1084 (3.544762f + (-4.891428f + 2.3466f * luminance) * luminance) *
1086 color_alpha = std::clamp(alpha_adjust * color_alpha, 0.0f, 1.0f);
1089 std::clamp(spot_color.alpha * (1 - 0.4f * luminance), 0.0f, 1.0f);
1091 Scalar color_scale = color_alpha * (1 - greyscale_alpha);
1092 Scalar tonal_alpha = color_scale + greyscale_alpha;
1093 Scalar unpremul_scale = tonal_alpha != 0 ? color_scale / tonal_alpha : 0;
1094 spot_color = Color(unpremul_scale * spot_color.red,
1095 unpremul_scale * spot_color.green,
1096 unpremul_scale * spot_color.blue, tonal_alpha);
1099 Vector3 light_position(0, -1, 1);
1100 Scalar occluder_z = dpr * elevation;
1102 constexpr
Scalar kLightRadius = 800 / 600;
1106 paint.color = spot_color;
1107 paint.mask_blur_descriptor = Paint::MaskBlurDescriptor{
1109 .sigma = Radius{kLightRadius * occluder_z /
1120 if (path.isRect(&rect)) {
1122 }
else if (path.isRRect(&rrect) && rrect.isSimple()) {
1124 rrect.getSimpleRadii().fX, paint);
1125 }
else if (path.isOval(&oval) && oval.width() == oval.height()) {
1127 oval.width() * 0.5, paint);
References impeller::Color::alpha, impeller::Color::blue, impeller::Paint::color, impeller::Canvas::DrawCircle(), impeller::Canvas::DrawPath(), impeller::Canvas::DrawRect(), impeller::Canvas::DrawRRect(), impeller::Canvas::GetCurrentTransformation(), impeller::Matrix::GetScale(), impeller::Color::green, impeller::Paint::kFill, impeller::FilterContents::kNormal, impeller::Matrix::MakeTranslation(), impeller::Paint::mask_blur_descriptor, impeller::Canvas::PreConcat(), impeller::Color::red, impeller::Canvas::Restore(), impeller::Canvas::Save(), impeller::Paint::MaskBlurDescriptor::style, impeller::Paint::style, impeller::skia_conversions::ToColor(), impeller::skia_conversions::ToPath(), impeller::skia_conversions::ToPoint(), impeller::skia_conversions::ToRect(), and impeller::Vector3::y.
Referenced by impeller::testing::TEST_P().
◆ drawTextBlob()
| void impeller::DlDispatcher::drawTextBlob |
( |
const sk_sp< SkTextBlob > |
blob, |
|
|
SkScalar |
x, |
|
|
SkScalar |
y |
|
) |
| |
|
override |
◆ drawTextFrame()
| void impeller::DlDispatcher::drawTextFrame |
( |
const std::shared_ptr< impeller::TextFrame > & |
text_frame, |
|
|
SkScalar |
x, |
|
|
SkScalar |
y |
|
) |
| |
|
override |
◆ drawVertices()
| void impeller::DlDispatcher::drawVertices |
( |
const flutter::DlVertices * |
vertices, |
|
|
flutter::DlBlendMode |
dl_mode |
|
) |
| |
|
override |
◆ EndRecordingAsPicture()
| Picture impeller::DlDispatcher::EndRecordingAsPicture |
( |
| ) |
|
◆ restore()
| void impeller::DlDispatcher::restore |
( |
| ) |
|
|
override |
◆ rotate()
| void impeller::DlDispatcher::rotate |
( |
SkScalar |
degrees | ) |
|
|
override |
◆ save()
| void impeller::DlDispatcher::save |
( |
| ) |
|
|
override |
◆ saveLayer()
| void impeller::DlDispatcher::saveLayer |
( |
const SkRect * |
bounds, |
|
|
const flutter::SaveLayerOptions |
options, |
|
|
const flutter::DlImageFilter * |
backdrop |
|
) |
| |
|
override |
◆ scale()
| void impeller::DlDispatcher::scale |
( |
SkScalar |
sx, |
|
|
SkScalar |
sy |
|
) |
| |
|
override |
◆ setAntiAlias()
| void impeller::DlDispatcher::setAntiAlias |
( |
bool |
aa | ) |
|
|
override |
◆ setBlendMode()
| void impeller::DlDispatcher::setBlendMode |
( |
flutter::DlBlendMode |
mode | ) |
|
|
override |
◆ setColor()
| void impeller::DlDispatcher::setColor |
( |
flutter::DlColor |
color | ) |
|
|
override |
◆ setColorFilter()
| void impeller::DlDispatcher::setColorFilter |
( |
const flutter::DlColorFilter * |
filter | ) |
|
|
override |
◆ setColorSource()
| void impeller::DlDispatcher::setColorSource |
( |
const flutter::DlColorSource * |
source | ) |
|
|
override |
Definition at line 299 of file dl_dispatcher.cc.
307 if (!type.has_value()) {
308 FML_LOG(ERROR) <<
"Requested ColorSourceType::kUnknown";
313 switch (type.value()) {
315 const flutter::DlColorColorSource* color = source->asColor();
323 const flutter::DlLinearGradientColorSource* linear =
324 source->asLinearGradient();
328 std::vector<Color> colors;
329 std::vector<float> stops;
332 auto tile_mode =
ToTileMode(linear->tile_mode());
333 auto matrix =
ToMatrix(linear->matrix());
336 start_point, end_point, std::move(colors), std::move(stops),
341 const flutter::DlConicalGradientColorSource* conical_gradient =
342 source->asConicalGradient();
343 FML_DCHECK(conical_gradient);
345 SkScalar radius = conical_gradient->end_radius();
348 SkScalar focus_radius = conical_gradient->start_radius();
349 std::vector<Color> colors;
350 std::vector<float> stops;
353 auto tile_mode =
ToTileMode(conical_gradient->tile_mode());
354 auto matrix =
ToMatrix(conical_gradient->matrix());
357 center, radius, std::move(colors), std::move(stops), focus_center,
358 focus_radius, tile_mode, matrix);
362 const flutter::DlRadialGradientColorSource* radialGradient =
363 source->asRadialGradient();
364 FML_DCHECK(radialGradient);
366 auto radius = radialGradient->radius();
367 std::vector<Color> colors;
368 std::vector<float> stops;
371 auto tile_mode =
ToTileMode(radialGradient->tile_mode());
372 auto matrix =
ToMatrix(radialGradient->matrix());
375 std::move(stops), tile_mode, matrix);
379 const flutter::DlSweepGradientColorSource* sweepGradient =
380 source->asSweepGradient();
381 FML_DCHECK(sweepGradient);
384 auto start_angle = Degrees(sweepGradient->start());
385 auto end_angle = Degrees(sweepGradient->end());
386 std::vector<Color> colors;
387 std::vector<float> stops;
390 auto tile_mode =
ToTileMode(sweepGradient->tile_mode());
391 auto matrix =
ToMatrix(sweepGradient->matrix());
393 center, start_angle, end_angle, std::move(colors), std::move(stops),
398 const flutter::DlImageColorSource* image_color_source = source->asImage();
399 FML_DCHECK(image_color_source &&
400 image_color_source->image()->impeller_texture());
401 auto texture = image_color_source->image()->impeller_texture();
402 auto x_tile_mode =
ToTileMode(image_color_source->horizontal_tile_mode());
403 auto y_tile_mode =
ToTileMode(image_color_source->vertical_tile_mode());
405 auto matrix =
ToMatrix(image_color_source->matrix());
407 y_tile_mode, desc, matrix);
411 const flutter::DlRuntimeEffectColorSource* runtime_effect_color_source =
412 source->asRuntimeEffect();
414 runtime_effect_color_source->runtime_effect()->runtime_stage();
415 auto uniform_data = runtime_effect_color_source->uniform_data();
416 auto samplers = runtime_effect_color_source->samplers();
418 std::vector<RuntimeEffectContents::TextureInput> texture_inputs;
420 for (
auto& sampler : samplers) {
421 if (sampler ==
nullptr) {
424 auto* image = sampler->asImage();
425 if (!sampler->asImage()) {
429 FML_DCHECK(image->image()->impeller_texture());
430 texture_inputs.push_back({
432 .texture = image->image()->impeller_texture(),
437 runtime_stage, uniform_data, texture_inputs);
441 #ifdef IMPELLER_ENABLE_3D
442 const flutter::DlSceneColorSource* scene_color_source = source->asScene();
443 std::shared_ptr<scene::Node> scene_node =
444 scene_color_source->scene_node();
445 Matrix camera_transform = scene_color_source->camera_matrix();
448 ColorSource::MakeScene(scene_node, camera_transform);
449 #else // IMPELLER_ENABLE_3D
450 FML_LOG(ERROR) <<
"ColorSourceType::kScene can only be used if Impeller "
452 #endif // IMPELLER_ENABLE_3D
References impeller::Paint::color_source, impeller::skia_conversions::ConvertStops(), impeller::ColorSource::kColor, impeller::ColorSource::kConicalGradient, impeller::ColorSource::kImage, impeller::ColorSource::kLinearGradient, impeller::ColorSource::kRadialGradient, impeller::ColorSource::kRuntimeEffect, impeller::ColorSource::kScene, impeller::ColorSource::kSweepGradient, impeller::ColorSource::MakeColor(), impeller::ColorSource::MakeConicalGradient(), impeller::ColorSource::MakeImage(), impeller::ColorSource::MakeLinearGradient(), impeller::ColorSource::MakeRadialGradient(), impeller::ColorSource::MakeRuntimeEffect(), impeller::ColorSource::MakeSweepGradient(), setColor(), impeller::ToColorSourceType(), impeller::ToMatrix(), impeller::skia_conversions::ToPoint(), impeller::ToSamplerDescriptor(), impeller::ToTileMode(), and UNIMPLEMENTED.
◆ setDither()
| void impeller::DlDispatcher::setDither |
( |
bool |
dither | ) |
|
|
override |
◆ setDrawStyle()
| void impeller::DlDispatcher::setDrawStyle |
( |
flutter::DlDrawStyle |
style | ) |
|
|
override |
◆ setImageFilter()
| void impeller::DlDispatcher::setImageFilter |
( |
const flutter::DlImageFilter * |
filter | ) |
|
|
override |
◆ setInvertColors()
| void impeller::DlDispatcher::setInvertColors |
( |
bool |
invert | ) |
|
|
override |
◆ setMaskFilter()
| void impeller::DlDispatcher::setMaskFilter |
( |
const flutter::DlMaskFilter * |
filter | ) |
|
|
override |
◆ setPathEffect()
| void impeller::DlDispatcher::setPathEffect |
( |
const flutter::DlPathEffect * |
effect | ) |
|
|
override |
◆ setStrokeCap()
| void impeller::DlDispatcher::setStrokeCap |
( |
flutter::DlStrokeCap |
cap | ) |
|
|
override |
◆ setStrokeJoin()
| void impeller::DlDispatcher::setStrokeJoin |
( |
flutter::DlStrokeJoin |
join | ) |
|
|
override |
◆ setStrokeMiter()
| void impeller::DlDispatcher::setStrokeMiter |
( |
SkScalar |
limit | ) |
|
|
override |
◆ setStrokeWidth()
| void impeller::DlDispatcher::setStrokeWidth |
( |
SkScalar |
width | ) |
|
|
override |
◆ skew()
| void impeller::DlDispatcher::skew |
( |
SkScalar |
sx, |
|
|
SkScalar |
sy |
|
) |
| |
|
override |
◆ transform2DAffine()
| void impeller::DlDispatcher::transform2DAffine |
( |
SkScalar |
mxx, |
|
|
SkScalar |
mxy, |
|
|
SkScalar |
mxt, |
|
|
SkScalar |
myx, |
|
|
SkScalar |
myy, |
|
|
SkScalar |
myt |
|
) |
| |
|
override |
◆ transformFullPerspective()
| void impeller::DlDispatcher::transformFullPerspective |
( |
SkScalar |
mxx, |
|
|
SkScalar |
mxy, |
|
|
SkScalar |
mxz, |
|
|
SkScalar |
mxt, |
|
|
SkScalar |
myx, |
|
|
SkScalar |
myy, |
|
|
SkScalar |
myz, |
|
|
SkScalar |
myt, |
|
|
SkScalar |
mzx, |
|
|
SkScalar |
mzy, |
|
|
SkScalar |
mzz, |
|
|
SkScalar |
mzt, |
|
|
SkScalar |
mwx, |
|
|
SkScalar |
mwy, |
|
|
SkScalar |
mwz, |
|
|
SkScalar |
mwt |
|
) |
| |
|
override |
◆ transformReset()
| void impeller::DlDispatcher::transformReset |
( |
| ) |
|
|
override |
◆ translate()
| void impeller::DlDispatcher::translate |
( |
SkScalar |
tx, |
|
|
SkScalar |
ty |
|
) |
| |
|
override |
The documentation for this class was generated from the following files:
constexpr bool HasPerspective() const
Picture EndRecordingAsPicture()
static Entity::ClipOperation ToClipOperation(flutter::DlCanvas::ClipOp clip_op)
void drawImageRect(const sk_sp< flutter::DlImage > image, const SkRect &src, const SkRect &dst, flutter::DlImageSampling sampling, bool render_with_attributes, SrcRectConstraint constraint) override
std::vector< Point > ToPoints(const SkPoint points[], int count)
void RestoreToCount(size_t count)
void ConvertStops(const flutter::DlGradientColorSourceBase *gradient, std::vector< Color > &colors, std::vector< float > &stops)
Convert display list colors + stops into impeller colors and stops, taking care to ensure that the st...
static ColorSource MakeLinearGradient(Point start_point, Point end_point, std::vector< Color > colors, std::vector< Scalar > stops, Entity::TileMode tile_mode, Matrix effect_transform)
void Skew(Scalar sx, Scalar sy)
static std::shared_ptr< ImageFilter > ToImageFilter(const flutter::DlImageFilter *filter)
void DrawTextFrame(const std::shared_ptr< TextFrame > &text_frame, Point position, const Paint &paint)
@ kRound
Points are drawn as squares.
void DrawVertices(const std::shared_ptr< VerticesGeometry > &vertices, BlendMode blend_mode, const Paint &paint)
void transformFullPerspective(SkScalar mxx, SkScalar mxy, SkScalar mxz, SkScalar mxt, SkScalar myx, SkScalar myy, SkScalar myz, SkScalar myt, SkScalar mzx, SkScalar mzy, SkScalar mzz, SkScalar mzt, SkScalar mwx, SkScalar mwy, SkScalar mwz, SkScalar mwt) override
std::vector< Rect > ToRects(const SkRect tex[], int count)
std::shared_ptr< impeller::VerticesGeometry > MakeVertices(const flutter::DlVertices *vertices)
Color ToColor(const flutter::DlColor &color)
static ColorSource MakeSweepGradient(Point center, Degrees start_angle, Degrees end_angle, std::vector< Color > colors, std::vector< Scalar > stops, Entity::TileMode tile_mode, Matrix effect_transform)
static ColorSource MakeColor()
static ColorSource MakeImage(std::shared_ptr< Texture > texture, Entity::TileMode x_tile_mode, Entity::TileMode y_tile_mode, SamplerDescriptor sampler_descriptor, Matrix effect_transform)
@ kNormal
Blurred inside and outside.
void SaveLayer(const Paint &paint, std::optional< Rect > bounds=std::nullopt, const std::shared_ptr< ImageFilter > &backdrop_filter=nullptr)
static constexpr Matrix MakeTranslation(const Vector3 &t)
static Entity::TileMode ToTileMode(flutter::DlTileMode tile_mode)
static Matrix ToMatrix(const SkMatrix &m)
static std::vector< Color > ToColors(const flutter::DlColor colors[], int count)
Rect ToRect(const SkRect &rect)
std::shared_ptr< ColorFilter > color_filter
void DrawImageRect(const std::shared_ptr< Image > &image, Rect source, Rect dest, const Paint &paint, SamplerDescriptor sampler={})
@ kSquare
Points are drawn as circles.
void Scale(const Vector2 &scale)
constexpr Vector3 GetScale() const
static ColorSource MakeConicalGradient(Point center, Scalar radius, std::vector< Color > colors, std::vector< Scalar > stops, Point focus_center, Scalar focus_radius, Entity::TileMode tile_mode, Matrix effect_transform)
void DrawCircle(Point center, Scalar radius, const Paint &paint)
static std::optional< ColorSource::Type > ToColorSourceType(flutter::DlColorSourceType type)
static Paint::Style ToStyle(flutter::DlDrawStyle style)
void DrawRRect(Rect rect, Scalar corner_radius, const Paint &paint)
void DrawAtlas(const std::shared_ptr< Image > &atlas, std::vector< Matrix > transforms, std::vector< Rect > texture_coordinates, std::vector< Color > colors, BlendMode blend_mode, SamplerDescriptor sampler, std::optional< Rect > cull_rect, const Paint &paint)
void DrawPath(const Path &path, const Paint &paint)
void DrawPaint(const Paint &paint)
static FilterContents::BlurStyle ToBlurStyle(flutter::DlBlurStyle blur_style)
size_t GetSaveCount() const
void PreConcat(const Matrix &xformation)
Point ToPoint(const SkPoint &point)
static ColorSource MakeRadialGradient(Point center, Scalar radius, std::vector< Color > colors, std::vector< Scalar > stops, Entity::TileMode tile_mode, Matrix effect_transform)
void Transform(const Matrix &xformation)
static ColorSource MakeRuntimeEffect(std::shared_ptr< RuntimeStage > runtime_stage, std::shared_ptr< std::vector< uint8_t >> uniform_data, std::vector< RuntimeEffectContents::TextureInput > texture_inputs)
void ClipRRect(const Rect &rect, Scalar corner_radius, Entity::ClipOperation clip_op=Entity::ClipOperation::kIntersect)
void Rotate(Radians radians)
const Matrix & GetCurrentTransformation() const
std::vector< Matrix > ToRSXForms(const SkRSXform xform[], int count)
void setColor(flutter::DlColor color) override
const std::optional< Rect > GetCurrentLocalCullingBounds() const
void DrawRect(Rect rect, const Paint &paint)
static BlendMode ToBlendMode(flutter::DlBlendMode mode)
void DrawPoints(std::vector< Point >, Scalar radius, const Paint &paint, PointStyle point_style)
void ClipRect(const Rect &rect, Entity::ClipOperation clip_op=Entity::ClipOperation::kIntersect)
static impeller::SamplerDescriptor ToSamplerDescriptor(const flutter::DlImageSampling options)
constexpr static TRect MakeLTRB(Type left, Type top, Type right, Type bottom)
static std::shared_ptr< ColorFilter > ToColorFilter(const flutter::DlColorFilter *filter)
std::optional< MaskBlurDescriptor > mask_blur_descriptor
Path ToPath(const SkPath &path, Point shift)
std::shared_ptr< ImageFilter > image_filter
void Translate(const Vector3 &offset)
void ClipPath(const Path &path, Entity::ClipOperation clip_op=Entity::ClipOperation::kIntersect)