renamed TextFrameDispatcher to FirstPassDispatcher (flutter/engine#56098)

fixes https://github.com/flutter/flutter/issues/157526

[C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
This commit is contained in:
gaaclarke 2024-10-25 10:18:19 -07:00 committed by GitHub
parent a5cc4c6dcb
commit 789bf0db15
2 changed files with 30 additions and 29 deletions

View File

@ -983,23 +983,23 @@ void CanvasDlDispatcher::SetBackdropData(
//// Text Frame Dispatcher
TextFrameDispatcher::TextFrameDispatcher(const ContentContext& renderer,
FirstPassDispatcher::FirstPassDispatcher(const ContentContext& renderer,
const Matrix& initial_matrix,
const Rect cull_rect)
: renderer_(renderer), matrix_(initial_matrix) {
cull_rect_state_.push_back(cull_rect);
}
TextFrameDispatcher::~TextFrameDispatcher() {
FirstPassDispatcher::~FirstPassDispatcher() {
FML_DCHECK(cull_rect_state_.size() == 1);
}
void TextFrameDispatcher::save() {
void FirstPassDispatcher::save() {
stack_.emplace_back(matrix_);
cull_rect_state_.push_back(cull_rect_state_.back());
}
void TextFrameDispatcher::saveLayer(const DlRect& bounds,
void FirstPassDispatcher::saveLayer(const DlRect& bounds,
const flutter::SaveLayerOptions options,
const flutter::DlImageFilter* backdrop,
std::optional<int64_t> backdrop_id) {
@ -1040,31 +1040,31 @@ void TextFrameDispatcher::saveLayer(const DlRect& bounds,
}
}
void TextFrameDispatcher::restore() {
void FirstPassDispatcher::restore() {
matrix_ = stack_.back();
stack_.pop_back();
cull_rect_state_.pop_back();
}
void TextFrameDispatcher::translate(DlScalar tx, DlScalar ty) {
void FirstPassDispatcher::translate(DlScalar tx, DlScalar ty) {
matrix_ = matrix_.Translate({tx, ty});
}
void TextFrameDispatcher::scale(DlScalar sx, DlScalar sy) {
void FirstPassDispatcher::scale(DlScalar sx, DlScalar sy) {
matrix_ = matrix_.Scale({sx, sy, 1.0f});
}
void TextFrameDispatcher::rotate(DlScalar degrees) {
void FirstPassDispatcher::rotate(DlScalar degrees) {
matrix_ = matrix_ * Matrix::MakeRotationZ(Degrees(degrees));
}
void TextFrameDispatcher::skew(DlScalar sx, DlScalar sy) {
void FirstPassDispatcher::skew(DlScalar sx, DlScalar sy) {
matrix_ = matrix_ * Matrix::MakeSkew(sx, sy);
}
// clang-format off
// 2x3 2D affine subset of a 4x4 transform in row major order
void TextFrameDispatcher::transform2DAffine(DlScalar mxx, DlScalar mxy, DlScalar mxt,
void FirstPassDispatcher::transform2DAffine(DlScalar mxx, DlScalar mxy, DlScalar mxt,
DlScalar myx, DlScalar myy, DlScalar myt) {
matrix_ = matrix_ * Matrix::MakeColumn(
mxx, myx, 0.0f, 0.0f,
@ -1075,7 +1075,7 @@ void TextFrameDispatcher::skew(DlScalar sx, DlScalar sy) {
}
// full 4x4 transform in row major order
void TextFrameDispatcher::transformFullPerspective(
void FirstPassDispatcher::transformFullPerspective(
DlScalar mxx, DlScalar mxy, DlScalar mxz, DlScalar mxt,
DlScalar myx, DlScalar myy, DlScalar myz, DlScalar myt,
DlScalar mzx, DlScalar mzy, DlScalar mzz, DlScalar mzt,
@ -1089,11 +1089,11 @@ void TextFrameDispatcher::skew(DlScalar sx, DlScalar sy) {
}
// clang-format on
void TextFrameDispatcher::transformReset() {
void FirstPassDispatcher::transformReset() {
matrix_ = Matrix();
}
void TextFrameDispatcher::drawTextFrame(
void FirstPassDispatcher::drawTextFrame(
const std::shared_ptr<impeller::TextFrame>& text_frame,
DlScalar x,
DlScalar y) {
@ -1122,7 +1122,7 @@ void TextFrameDispatcher::drawTextFrame(
);
}
const Rect TextFrameDispatcher::GetCurrentLocalCullingBounds() const {
const Rect FirstPassDispatcher::GetCurrentLocalCullingBounds() const {
auto cull_rect = cull_rect_state_.back();
if (!cull_rect.IsEmpty() && !cull_rect.IsMaximum()) {
Matrix inverse = matrix_.Invert();
@ -1131,7 +1131,7 @@ const Rect TextFrameDispatcher::GetCurrentLocalCullingBounds() const {
return cull_rect;
}
void TextFrameDispatcher::drawDisplayList(
void FirstPassDispatcher::drawDisplayList(
const sk_sp<flutter::DisplayList> display_list,
DlScalar opacity) {
[[maybe_unused]] size_t stack_depth = stack_.size();
@ -1165,27 +1165,27 @@ void TextFrameDispatcher::drawDisplayList(
}
// |flutter::DlOpReceiver|
void TextFrameDispatcher::setDrawStyle(flutter::DlDrawStyle style) {
void FirstPassDispatcher::setDrawStyle(flutter::DlDrawStyle style) {
paint_.style = ToStyle(style);
}
// |flutter::DlOpReceiver|
void TextFrameDispatcher::setColor(flutter::DlColor color) {
void FirstPassDispatcher::setColor(flutter::DlColor color) {
paint_.color = skia_conversions::ToColor(color);
}
// |flutter::DlOpReceiver|
void TextFrameDispatcher::setStrokeWidth(DlScalar width) {
void FirstPassDispatcher::setStrokeWidth(DlScalar width) {
paint_.stroke_width = width;
}
// |flutter::DlOpReceiver|
void TextFrameDispatcher::setStrokeMiter(DlScalar limit) {
void FirstPassDispatcher::setStrokeMiter(DlScalar limit) {
paint_.stroke_miter = limit;
}
// |flutter::DlOpReceiver|
void TextFrameDispatcher::setStrokeCap(flutter::DlStrokeCap cap) {
void FirstPassDispatcher::setStrokeCap(flutter::DlStrokeCap cap) {
switch (cap) {
case flutter::DlStrokeCap::kButt:
paint_.stroke_cap = Cap::kButt;
@ -1200,7 +1200,7 @@ void TextFrameDispatcher::setStrokeCap(flutter::DlStrokeCap cap) {
}
// |flutter::DlOpReceiver|
void TextFrameDispatcher::setStrokeJoin(flutter::DlStrokeJoin join) {
void FirstPassDispatcher::setStrokeJoin(flutter::DlStrokeJoin join) {
switch (join) {
case flutter::DlStrokeJoin::kMiter:
paint_.stroke_join = Join::kMiter;
@ -1215,7 +1215,7 @@ void TextFrameDispatcher::setStrokeJoin(flutter::DlStrokeJoin join) {
}
// |flutter::DlOpReceiver|
void TextFrameDispatcher::setImageFilter(const flutter::DlImageFilter* filter) {
void FirstPassDispatcher::setImageFilter(const flutter::DlImageFilter* filter) {
if (filter == nullptr) {
has_image_filter_ = false;
} else {
@ -1224,7 +1224,7 @@ void TextFrameDispatcher::setImageFilter(const flutter::DlImageFilter* filter) {
}
std::pair<std::unordered_map<int64_t, BackdropData>, size_t>
TextFrameDispatcher::TakeBackdropData() {
FirstPassDispatcher::TakeBackdropData() {
std::unordered_map<int64_t, BackdropData> temp;
std::swap(temp, backdrop_data_);
return std::make_pair(temp, backdrop_count_);
@ -1267,7 +1267,7 @@ std::shared_ptr<Texture> DisplayListToTexture(
}
SkIRect sk_cull_rect = SkIRect::MakeWH(size.width, size.height);
impeller::TextFrameDispatcher collector(
impeller::FirstPassDispatcher collector(
context.GetContentContext(), impeller::Matrix(), Rect::MakeSize(size));
display_list->Dispatch(collector, sk_cull_rect);
impeller::CanvasDlDispatcher impeller_dispatcher(
@ -1298,7 +1298,7 @@ bool RenderToOnscreen(ContentContext& context,
bool reset_host_buffer) {
Rect ip_cull_rect = Rect::MakeLTRB(cull_rect.left(), cull_rect.top(),
cull_rect.right(), cull_rect.bottom());
TextFrameDispatcher collector(context, impeller::Matrix(), ip_cull_rect);
FirstPassDispatcher collector(context, impeller::Matrix(), ip_cull_rect);
display_list->Dispatch(collector, cull_rect);
impeller::CanvasDlDispatcher impeller_dispatcher(

View File

@ -295,16 +295,17 @@ class CanvasDlDispatcher : public DlDispatcherBase {
Canvas& GetCanvas() override;
};
/// Performs a first pass over the display list to collect all text frames.
class TextFrameDispatcher : public flutter::IgnoreAttributeDispatchHelper,
/// Performs a first pass over the display list to collect infomation.
/// Collects things like text frames and backdrop filters.
class FirstPassDispatcher : public flutter::IgnoreAttributeDispatchHelper,
public flutter::IgnoreClipDispatchHelper,
public flutter::IgnoreDrawDispatchHelper {
public:
TextFrameDispatcher(const ContentContext& renderer,
FirstPassDispatcher(const ContentContext& renderer,
const Matrix& initial_matrix,
const Rect cull_rect);
~TextFrameDispatcher();
~FirstPassDispatcher();
void save() override;