diff --git a/impeller/aiks/aiks_unittests.cc b/impeller/aiks/aiks_unittests.cc index 33ee6347b3976..cf3bf396d5bcb 100644 --- a/impeller/aiks/aiks_unittests.cc +++ b/impeller/aiks/aiks_unittests.cc @@ -161,6 +161,17 @@ void CanRenderTiledTexture(AiksTest* aiks_test, Entity::TileMode tile_mode) { ColorSource::MakeImage(texture, tile_mode, tile_mode, {}, {}); paint.color = Color(1, 1, 1, 1); canvas.DrawRect({0, 0, 600, 600}, paint); + + // Should not change the image. + constexpr auto stroke_width = 64; + paint.style = Paint::Style::kStroke; + paint.stroke_width = stroke_width; + if (tile_mode == Entity::TileMode::kDecal) { + canvas.DrawRect({stroke_width, stroke_width, 600, 600}, paint); + } else { + canvas.DrawRect({0, 0, 600, 600}, paint); + } + ASSERT_TRUE(aiks_test->OpenPlaygroundHere(canvas.EndRecordingAsPicture())); } } // namespace diff --git a/impeller/entity/contents/tiled_texture_contents.cc b/impeller/entity/contents/tiled_texture_contents.cc index 27326cbbb2af0..9322e31f766ff 100644 --- a/impeller/entity/contents/tiled_texture_contents.cc +++ b/impeller/entity/contents/tiled_texture_contents.cc @@ -126,10 +126,9 @@ bool TiledTextureContents::Render(const ContentContext& renderer, auto& host_buffer = pass.GetTransientsBuffer(); - auto bounds_origin = GetGeometry()->GetCoverage(Matrix())->origin; auto geometry_result = GetGeometry()->GetPositionUVBuffer( - Rect(bounds_origin, Size(texture_size)), GetInverseMatrix(), renderer, - entity, pass); + Rect({0, 0}, Size(texture_size)), GetInverseMatrix(), renderer, entity, + pass); bool uses_emulated_tile_mode = UsesEmulatedTileMode(renderer.GetDeviceCapabilities()); diff --git a/impeller/entity/geometry.cc b/impeller/entity/geometry.cc index cdedf311cc479..acbefbb4c5a3c 100644 --- a/impeller/entity/geometry.cc +++ b/impeller/entity/geometry.cc @@ -657,8 +657,7 @@ GeometryResult StrokePathGeometry::GetPositionUVBuffer( &effect_transform](SolidFillVertexShader::PerVertexData old_vtx) { TextureFillVertexShader::PerVertexData data; data.position = old_vtx.position; - auto coverage_coords = (old_vtx.position - texture_coverage.origin) / - texture_coverage.size; + auto coverage_coords = old_vtx.position / texture_coverage.size; data.texture_coords = effect_transform * coverage_coords; vertex_builder.AppendVertex(data); });