Skip to content

Commit

Permalink
SkMatrix44 --> SkMatrix is now explicit
Browse files Browse the repository at this point in the history
Note: SkCanvas now stores a 4x4 internally in its matrix stack...

Change-Id: I13ea2702b764d46a11821344dabcef58b58909ba
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2008085
Reviewed-by: Ian Vollick <vollick@chromium.org>
Reviewed-by: danakj <danakj@chromium.org>
Reviewed-by: Scott Violet <sky@chromium.org>
Reviewed-by: weiliangc <weiliangc@chromium.org>
Reviewed-by: vmpstr <vmpstr@chromium.org>
Reviewed-by: Florin Malita <fmalita@chromium.org>
Commit-Queue: Mike Reed <reed@google.com>
Cr-Commit-Position: refs/heads/master@{#734009}
  • Loading branch information
reed-at-google authored and Commit Bot committed Jan 22, 2020
1 parent 0f9ebc6 commit 102aa47
Show file tree
Hide file tree
Showing 19 changed files with 34 additions and 36 deletions.
2 changes: 1 addition & 1 deletion ash/display/overscan_calibrator.cc
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@ void DrawTriangle(int x_offset,
gfx::Transform move_transform;
move_transform.Translate(x_offset, y_offset);
rotate_transform.ConcatTransform(move_transform);
base_path.transform(rotate_transform.matrix(), &path);
base_path.transform(SkMatrix(rotate_transform.matrix()), &path);

canvas->DrawPath(path, content_flags);
canvas->DrawPath(path, border_flags);
Expand Down
8 changes: 4 additions & 4 deletions cc/layers/render_surface_impl.cc
Original file line number Diff line number Diff line change
Expand Up @@ -85,8 +85,8 @@ gfx::RectF RenderSurfaceImpl::DrawableContentRect() const {
gfx::Rect surface_content_rect = content_rect();
const FilterOperations& filters = Filters();
if (!filters.IsEmpty()) {
surface_content_rect =
filters.MapRect(surface_content_rect, SurfaceScale().matrix());
surface_content_rect = filters.MapRect(surface_content_rect,
SkMatrix(SurfaceScale().matrix()));
}
gfx::RectF drawable_content_rect = MathUtil::MapClippedRect(
draw_transform(), gfx::RectF(surface_content_rect));
Expand Down Expand Up @@ -210,8 +210,8 @@ gfx::Rect RenderSurfaceImpl::CalculateExpandedClipForFilters(
const gfx::Transform& target_to_surface) {
gfx::Rect clip_in_surface_space =
MathUtil::ProjectEnclosingClippedRect(target_to_surface, clip_rect());
gfx::Rect expanded_clip_in_surface_space =
Filters().MapRect(clip_in_surface_space, SurfaceScale().matrix());
gfx::Rect expanded_clip_in_surface_space = Filters().MapRect(
clip_in_surface_space, SkMatrix(SurfaceScale().matrix()));
gfx::Rect expanded_clip_in_target_space = MathUtil::MapEnclosingClippedRect(
draw_transform(), expanded_clip_in_surface_space);
return expanded_clip_in_target_space;
Expand Down
2 changes: 1 addition & 1 deletion cc/paint/display_item_list_unittest.cc
Original file line number Diff line number Diff line change
Expand Up @@ -333,7 +333,7 @@ TEST_F(DisplayItemListTest, TransformPairedRange) {
SkRect::MakeLTRB(0.f + first_offset.x(), 0.f + first_offset.y(),
60.f + first_offset.x(), 60.f + first_offset.y()),
red_paint);
expected_canvas.setMatrix(transform.matrix());
expected_canvas.setMatrix(SkMatrix(transform.matrix()));
expected_canvas.drawRect(
SkRect::MakeLTRB(50.f + second_offset.x(), 50.f + second_offset.y(),
75.f + second_offset.x(), 75.f + second_offset.y()),
Expand Down
7 changes: 4 additions & 3 deletions cc/trees/clip_expander.cc
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,8 @@ gfx::Rect ClipExpander::MapRect(const gfx::Rect& rect,
gfx::Transform filter_draw_transform;
filter_draw_transform.Scale(effect_node->surface_contents_scale.x(),
effect_node->surface_contents_scale.y());
return effect_node->filters.MapRect(rect, filter_draw_transform.matrix());
return effect_node->filters.MapRect(rect,
SkMatrix(filter_draw_transform.matrix()));
}

gfx::Rect ClipExpander::MapRectReverse(
Expand All @@ -36,8 +37,8 @@ gfx::Rect ClipExpander::MapRectReverse(
gfx::Transform filter_draw_transform;
filter_draw_transform.Scale(effect_node->surface_contents_scale.x(),
effect_node->surface_contents_scale.y());
return effect_node->filters.MapRectReverse(rect,
filter_draw_transform.matrix());
return effect_node->filters.MapRectReverse(
rect, SkMatrix(filter_draw_transform.matrix()));
}

} // namespace cc
2 changes: 1 addition & 1 deletion cc/trees/damage_tracker.cc
Original file line number Diff line number Diff line change
Expand Up @@ -198,7 +198,7 @@ void DamageTracker::ComputeSurfaceDamage(
bool is_rect_valid = damage_for_this_update_.GetAsRect(&damage_rect);
if (is_rect_valid && !damage_rect.IsEmpty()) {
damage_rect = render_surface->Filters().MapRect(
damage_rect, render_surface->SurfaceScale().matrix());
damage_rect, SkMatrix(render_surface->SurfaceScale().matrix()));
damage_for_this_update_ = DamageAccumulator();
damage_for_this_update_.Union(damage_rect);
}
Expand Down
4 changes: 2 additions & 2 deletions cc/trees/property_tree_builder_unittest.cc
Original file line number Diff line number Diff line change
Expand Up @@ -353,7 +353,7 @@ TEST_F(PropertyTreeBuilderTest, VisibleRectWithClippingAndFilters) {
gfx::Transform vertical_flip;
vertical_flip.Scale(1, -1);
sk_sp<PaintFilter> flip_filter = sk_make_sp<MatrixPaintFilter>(
vertical_flip.matrix(), kLow_SkFilterQuality, nullptr);
SkMatrix(vertical_flip.matrix()), kLow_SkFilterQuality, nullptr);
FilterOperations reflection_filter;
reflection_filter.Append(
FilterOperation::CreateReferenceFilter(sk_make_sp<XfermodePaintFilter>(
Expand Down Expand Up @@ -413,7 +413,7 @@ TEST_F(PropertyTreeBuilderTest, VisibleRectWithScalingClippingAndFilters) {
gfx::Transform vertical_flip;
vertical_flip.Scale(1, -1);
sk_sp<PaintFilter> flip_filter = sk_make_sp<MatrixPaintFilter>(
vertical_flip.matrix(), kLow_SkFilterQuality, nullptr);
SkMatrix(vertical_flip.matrix()), kLow_SkFilterQuality, nullptr);
FilterOperations reflection_filter;
reflection_filter.Append(
FilterOperation::CreateReferenceFilter(sk_make_sp<XfermodePaintFilter>(
Expand Down
3 changes: 2 additions & 1 deletion components/viz/service/display/gl_renderer.cc
Original file line number Diff line number Diff line change
Expand Up @@ -1012,7 +1012,8 @@ sk_sp<SkImage> GLRenderer::ApplyBackdropFilters(
surface->getCanvas()->save();
gfx::RRectF clip_rect(backdrop_filter_bounds.value());
clip_rect.Scale(params->backdrop_filter_quality);
surface->getCanvas()->setMatrix(backdrop_filter_bounds_transform.matrix());
surface->getCanvas()->setMatrix(
SkMatrix(backdrop_filter_bounds_transform.matrix()));
surface->getCanvas()->clipRRect(SkRRect(clip_rect), SkClipOp::kIntersect,
true /* antialias */);
surface->getCanvas()->resetMatrix();
Expand Down
2 changes: 1 addition & 1 deletion components/viz/service/display/overlay_unittest.cc
Original file line number Diff line number Diff line change
Expand Up @@ -468,7 +468,7 @@ SkMatrix GetNonIdentityColorMatrix() {
SkMatrix44 matrix = GetIdentityColorMatrix();
matrix.set(1, 1, 0.5f);
matrix.set(2, 2, 0.5f);
return matrix;
return SkMatrix(matrix);
}

template <typename OverlayProcessorType>
Expand Down
6 changes: 3 additions & 3 deletions components/viz/service/display/software_renderer.cc
Original file line number Diff line number Diff line change
Expand Up @@ -172,7 +172,7 @@ void SoftwareRenderer::SetClipRRect(const gfx::RRectF& rrect) {
gfx::Transform screen_transform =
current_frame()->window_matrix * current_frame()->projection_matrix;
SkRRect result;
if (SkRRect(rrect).transform(screen_transform.matrix(), &result)) {
if (SkRRect(rrect).transform(SkMatrix(screen_transform.matrix()), &result)) {
// Skia applies the current matrix to clip rects so we reset it temporarily.
SkMatrix current_matrix = current_canvas_->getTotalMatrix();
current_canvas_->resetMatrix();
Expand Down Expand Up @@ -813,7 +813,7 @@ sk_sp<SkShader> SoftwareRenderer::GetBackdropFilterShader(
return nullptr;

SkMatrix filter_backdrop_transform =
contents_device_transform_inverse.matrix();
SkMatrix(contents_device_transform_inverse.matrix());
filter_backdrop_transform.preTranslate(backdrop_rect.x(), backdrop_rect.y());

SkBitmap backdrop_bitmap = GetBackdropBitmap(backdrop_rect);
Expand Down Expand Up @@ -864,7 +864,7 @@ sk_sp<SkShader> SoftwareRenderer::GetBackdropFilterShader(

// Clip the filtered image to the (rounded) bounding box of the element.
if (backdrop_filter_bounds) {
canvas.setMatrix(backdrop_filter_bounds_transform.matrix());
canvas.setMatrix(SkMatrix(backdrop_filter_bounds_transform.matrix()));
canvas.clipRRect(SkRRect(*backdrop_filter_bounds), SkClipOp::kIntersect,
true /* antialias */);
canvas.resetMatrix();
Expand Down
2 changes: 1 addition & 1 deletion content/renderer/input/synchronous_compositor_proxy.cc
Original file line number Diff line number Diff line change
Expand Up @@ -217,7 +217,7 @@ void SynchronousCompositorProxy::DoDemandDrawSw(
}
SkCanvas canvas(bitmap);
canvas.clipRect(gfx::RectToSkRect(params.clip));
canvas.concat(params.transform.matrix());
canvas.concat(SkMatrix(params.transform.matrix()));

layer_tree_frame_sink_->DemandDrawSw(&canvas);
}
Expand Down
4 changes: 0 additions & 4 deletions skia/config/SkUserConfig.h
Original file line number Diff line number Diff line change
Expand Up @@ -211,10 +211,6 @@ SK_API void SkDebugf_FileLine(const char* file,
#define SK_DISABLE_REDUCE_OPLIST_SPLITTING
#endif

#ifndef SK_SUPPORT_LEGACY_IMPLICIT_CONVERSION_MATRIX44
#define SK_SUPPORT_LEGACY_IMPLICIT_CONVERSION_MATRIX44
#endif

#ifndef SK_IGNORE_LINEONLY_AA_CONVEX_PATH_OPTS
#define SK_IGNORE_LINEONLY_AA_CONVEX_PATH_OPTS
#endif
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -957,8 +957,8 @@ scoped_refptr<cc::DisplayItemList> SynthesizedClip::PaintContentsToDisplayList(
const auto& translation = translation_2d_or_matrix_.Translation2D();
cc_list->push<cc::TranslateOp>(translation.Width(), translation.Height());
} else {
cc_list->push<cc::ConcatOp>(TransformationMatrix::ToSkMatrix44(
translation_2d_or_matrix_.Matrix()));
cc_list->push<cc::ConcatOp>(SkMatrix(TransformationMatrix::ToSkMatrix44(
translation_2d_or_matrix_.Matrix())));
}
if (path_) {
cc_list->push<cc::ClipPathOp>(path_->GetSkPath(), SkClipOp::kIntersect,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -709,7 +709,7 @@ void GraphicsLayer::SetContentsToImage(
auto affine =
image_orientation.TransformFromDefault(FloatSize(image_size_));
auto transform = affine.ToTransformationMatrix();
matrix = TransformationMatrix::ToSkMatrix44(transform);
matrix = SkMatrix(TransformationMatrix::ToSkMatrix44(transform));
} else if (paint_image) {
matrix = SkMatrix::I();
image_size_ = IntSize(paint_image.width(), paint_image.height());
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -100,7 +100,7 @@ class PLATFORM_EXPORT GeometryMapper {
return SkMatrix::MakeTrans(Translation2D().Width(),
Translation2D().Height());
}
return TransformationMatrix::ToSkMatrix44(Matrix());
return SkMatrix(TransformationMatrix::ToSkMatrix44(Matrix()));
}

bool operator==(const Translation2DOrMatrix& other) {
Expand Down
2 changes: 1 addition & 1 deletion ui/base/x/x11_window.cc
Original file line number Diff line number Diff line change
Expand Up @@ -1577,7 +1577,7 @@ void XWindow::SetXWindowShape(std::unique_ptr<NativeShapeRects> native_shape,
SkPath path_in_dip;
if (native_region.getBoundaryPath(&path_in_dip)) {
SkPath path_in_pixels;
path_in_dip.transform(transform.matrix(), &path_in_pixels);
path_in_dip.transform(SkMatrix(transform.matrix()), &path_in_pixels);
xregion = gfx::CreateRegionFromSkPath(path_in_pixels);
} else {
xregion = XCreateRegion();
Expand Down
2 changes: 1 addition & 1 deletion ui/gfx/canvas.cc
Original file line number Diff line number Diff line change
Expand Up @@ -502,7 +502,7 @@ bool Canvas::InitPaintFlagsForTiling(const ImageSkia& image,
}

void Canvas::Transform(const gfx::Transform& transform) {
canvas_->concat(transform.matrix());
canvas_->concat(SkMatrix(transform.matrix()));
}

SkBitmap Canvas::GetBitmap() const {
Expand Down
8 changes: 3 additions & 5 deletions ui/gfx/transform.cc
Original file line number Diff line number Diff line change
Expand Up @@ -466,8 +466,7 @@ void Transform::TransformRect(RectF* rect) const {
return;

SkRect src = RectFToSkRect(*rect);
const SkMatrix& matrix = matrix_;
matrix.mapRect(&src);
SkMatrix(matrix_).mapRect(&src);
*rect = SkRectToRectF(src);
}

Expand All @@ -479,16 +478,15 @@ bool Transform::TransformRectReverse(RectF* rect) const {
if (!matrix_.invert(&inverse))
return false;

const SkMatrix& matrix = inverse;
SkRect src = RectFToSkRect(*rect);
matrix.mapRect(&src);
SkMatrix(inverse).mapRect(&src);
*rect = SkRectToRectF(src);
return true;
}

bool Transform::TransformRRectF(RRectF* rrect) const {
SkRRect result;
if (!SkRRect(*rrect).transform(matrix_, &result))
if (!SkRRect(*rrect).transform(SkMatrix(matrix_), &result))
return false;
*rrect = gfx::RRectF(result);
return true;
Expand Down
3 changes: 2 additions & 1 deletion ui/views/view.cc
Original file line number Diff line number Diff line change
Expand Up @@ -975,7 +975,8 @@ void View::Paint(const PaintInfo& parent_paint_info) {
SkFloatToScalar(paint_info.paint_recording_scale_x()),
SkFloatToScalar(paint_info.paint_recording_scale_y()));

clip_path_in_parent.transform(to_parent_recording_space.matrix());
clip_path_in_parent.transform(
SkMatrix(to_parent_recording_space.matrix()));
clip_recorder.ClipPathWithAntiAliasing(clip_path_in_parent);
}
}
Expand Down
5 changes: 3 additions & 2 deletions ui/views/view_unittest.cc
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@
#include "base/bind.h"
#include "base/command_line.h"
#include "base/i18n/rtl.h"

#include "base/macros.h"
#include "base/rand_util.h"
#include "base/run_loop.h"
Expand Down Expand Up @@ -2983,7 +2984,7 @@ TEST_F(ViewTest, ConversionsWithTransform) {
transform.Translate(1.0, 1.0);

// convert to a 3x3 matrix.
const SkMatrix& matrix = transform.matrix();
const SkMatrix& matrix = SkMatrix(transform.matrix());

EXPECT_EQ(210, matrix.getTranslateX());
EXPECT_EQ(-55, matrix.getTranslateY());
Expand All @@ -3004,7 +3005,7 @@ TEST_F(ViewTest, ConversionsWithTransform) {
transform.ConcatTransform(t3);

// convert to a 3x3 matrix
const SkMatrix& matrix = transform.matrix();
const SkMatrix& matrix = SkMatrix(transform.matrix());

EXPECT_EQ(210, matrix.getTranslateX());
EXPECT_EQ(-55, matrix.getTranslateY());
Expand Down

0 comments on commit 102aa47

Please sign in to comment.