Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(589)

Unified Diff: tests/SkLinearBitmapPipelineTest.cpp

Issue 1775963002: Bilerp + mirror + perspective (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: Address comments. Created 4 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « src/core/SkLinearBitmapPipeline_tile.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: tests/SkLinearBitmapPipelineTest.cpp
diff --git a/tests/SkLinearBitmapPipelineTest.cpp b/tests/SkLinearBitmapPipelineTest.cpp
index e715b62d89567892043759897124c2538deedfc2..be52e299ea867412cc5a692266a28ac804d95bf8 100644
--- a/tests/SkLinearBitmapPipelineTest.cpp
+++ b/tests/SkLinearBitmapPipelineTest.cpp
@@ -18,6 +18,10 @@
#include "SkLinearBitmapPipeline_tile.h"
+DEF_TEST(LBPBilerpEdge, reporter) {
+
+}
+
static SkString dump(SkScalar cut, Span prefix, Span remainder) {
SkPoint prefixStart; SkScalar prefixLen; int prefixCount;
std::tie(prefixStart, prefixLen, prefixCount) = prefix;
@@ -100,8 +104,13 @@ DEF_TEST(LBPSpanOps, reporter) {
}
}
-template <typename Tiler>
-static bool compare_tiler_case(Tiler& tiler, Span span, skiatest::Reporter* reporter) {
+DEF_TEST(LBPBilerpSpanOps, reporter) {
+
+}
+
+template <typename XTiler, typename YTiler>
+static bool compare_tiler_case(
+ XTiler& xTiler, YTiler& yTiler, Span span, skiatest::Reporter* reporter) {
Span originalSpan = span;
std::vector<SkPoint> listPoints;
std::vector<SkPoint> spanPoints;
@@ -143,17 +152,24 @@ static bool compare_tiler_case(Tiler& tiler, Span span, skiatest::Reporter* repo
while (count >= 4) {
Sk4f txs = xs;
Sk4f tys = ys;
- tiler.processPoints(&txs, &tys);
+ xTiler.tileXPoints(&txs);
+ yTiler.tileYPoints(&tys);
listSink.pointList4(txs, tys);
xs = xs + 4.0f * dx;
count -= 4;
}
if (count > 0) {
- tiler.processPoints(&xs, &ys);
+ xTiler.tileXPoints(&xs);
+ yTiler.tileYPoints(&ys);
listSink.pointListFew(count, xs, ys);
}
- bool handledSpan = tiler.maybeProcessSpan(span, &spanSink);
+ std::tie(start, length, count) = originalSpan;
+ SkScalar x = X(start);
+ SkScalar y = yTiler.tileY(Y(start));
+ Span yAdjustedSpan{{x, y}, length, count};
+
+ bool handledSpan = xTiler.maybeProcessSpan(yAdjustedSpan, &spanSink);
if (handledSpan) {
auto firstNotTheSame = std::mismatch(
listPoints.begin(), listPoints.end(), spanPoints.begin());
@@ -184,9 +200,10 @@ static bool compare_tiler_case(Tiler& tiler, Span span, skiatest::Reporter* repo
return true;
}
-template <typename Tiler>
+template <typename XTiler, typename YTiler>
static bool compare_tiler_spans(int width, int height, skiatest::Reporter* reporter) {
- Tiler tiler{SkSize::Make((SkScalar)width, (SkScalar)height)};
+ XTiler xTiler{width};
+ YTiler yTiler{height};
INFOF(reporter, "w: %d, h: %d \n", width, height);
std::array<int, 8> interestingX {{-5, -1, 0, 1, width - 1, width, width + 1, width + 5}};
std::array<int, 8> interestingY {{-5, -1, 0, 1, height - 1, height, height + 1, height + 5}};
@@ -198,7 +215,7 @@ static bool compare_tiler_spans(int width, int height, skiatest::Reporter* repor
for (auto y : interestingY) {
Span span{
SkPoint::Make((SkScalar)startX, (SkScalar)y), (count-1.0f) * scale, count};
- if (!compare_tiler_case(tiler, span, reporter)) {
+ if (!compare_tiler_case(xTiler, yTiler, span, reporter)) {
return false;
}
}
@@ -208,23 +225,23 @@ static bool compare_tiler_spans(int width, int height, skiatest::Reporter* repor
return true;
}
-template <typename Tiler>
+template <typename XTiler, typename YTiler>
static void test_tiler(skiatest::Reporter* reporter) {
std::array<int, 6> interestingSize {{1, 2, 3, 4, 5, 10}};
for (auto width : interestingSize) {
for (auto height : interestingSize) {
- if (!compare_tiler_spans<Tiler>(width, height, reporter)) { return; }
+ if (!compare_tiler_spans<XTiler, YTiler>(width, height, reporter)) { return; }
}
}
}
-
+/*
DEF_TEST(LBPStrategyClampTile, reporter) {
#if 0
ClampStrategy tiler{SkSize::Make(1, 1)};
Span span{SkPoint::Make(0, -5), 1.0f, 2};
compare_tiler_case<ClampStrategy>(tiler, span, reporter);
#else
- test_tiler<ClampStrategy>(reporter);
+ test_tiler<XClampStrategy, YClampStrategy>(reporter);
#endif
}
@@ -234,8 +251,7 @@ DEF_TEST(LBPStrategyRepeatTile, reporter) {
Span span{SkPoint::Make(-5, -5), 20 * 2.1f, 100};
compare_tiler_case<RepeatStrategy>(tiler, span, reporter);
#else
- test_tiler<RepeatStrategy>(reporter);
+ test_tiler<XRepeatStrategy, YRepeatStrategy>(reporter);
#endif
}
-
-
+*/
« no previous file with comments | « src/core/SkLinearBitmapPipeline_tile.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698