aboutsummaryrefslogtreecommitdiffhomepage
path: root/tests/PackedConfigsTextureTest.cpp
diff options
context:
space:
mode:
authorGravatar Robert Phillips <robertphillips@google.com>2017-04-17 07:43:27 -0400
committerGravatar Skia Commit-Bot <skia-commit-bot@chromium.org>2017-04-17 12:28:13 +0000
commitbab2dbb5fa50da8e8365abbaa9f1490e659f436c (patch)
tree902cc5b3632fb138e19c5ac3b436785b5530288b /tests/PackedConfigsTextureTest.cpp
parentf9c090404824581a12eeee65875dda7347768657 (diff)
Reduce read/write-SurfacePixels call sites (take 2)
Reland of: https://skia-review.googlesource.com/c/13068/ (Reduce read/write-SurfacePixels call sites) TBR=brianosman@google.com Change-Id: I035b9fc2feab5fa443570ca54fbb0df8c9382cb3 Reviewed-on: https://skia-review.googlesource.com/13582 Commit-Queue: Ravi Mistry <rmistry@google.com> Reviewed-by: Robert Phillips <robertphillips@google.com>
Diffstat (limited to 'tests/PackedConfigsTextureTest.cpp')
-rw-r--r--tests/PackedConfigsTextureTest.cpp42
1 files changed, 23 insertions, 19 deletions
diff --git a/tests/PackedConfigsTextureTest.cpp b/tests/PackedConfigsTextureTest.cpp
index 35d9dfc3c5..e104be594d 100644
--- a/tests/PackedConfigsTextureTest.cpp
+++ b/tests/PackedConfigsTextureTest.cpp
@@ -96,34 +96,40 @@ static void check_565(skiatest::Reporter* reporter,
}
}
-template <typename T>
-void runTest(skiatest::Reporter* reporter, GrContext* context,
- T val1, T val2, int arraySize, GrPixelConfig config) {
- SkTDArray<T> controlPixelData;
+static void run_test(skiatest::Reporter* reporter, GrContext* context,
+ int arraySize, GrPixelConfig config) {
+ SkTDArray<uint16_t> controlPixelData;
// We will read back into an 8888 buffer since 565/4444 read backs aren't supported
SkTDArray<GrColor> readBuffer;
controlPixelData.setCount(arraySize);
readBuffer.setCount(arraySize);
for (int i = 0; i < arraySize; i += 2) {
- controlPixelData[i] = val1;
- controlPixelData[i + 1] = val2;
+ controlPixelData[i] = 0xFF00;
+ controlPixelData[i + 1] = 0xFA62;
}
- for (int origin = 0; origin < 2; ++origin) {
+ const SkImageInfo dstInfo = SkImageInfo::Make(DEV_W, DEV_H,
+ kRGBA_8888_SkColorType, kOpaque_SkAlphaType);
+
+ for (auto origin : { kTopLeft_GrSurfaceOrigin, kBottomLeft_GrSurfaceOrigin }) {
GrSurfaceDesc desc;
desc.fFlags = kNone_GrSurfaceFlags;
desc.fWidth = DEV_W;
desc.fHeight = DEV_H;
desc.fConfig = config;
- desc.fOrigin = 0 == origin ? kTopLeft_GrSurfaceOrigin : kBottomLeft_GrSurfaceOrigin;
- sk_sp<GrTextureProxy> fpProxy = GrSurfaceProxy::MakeDeferred(context->resourceProvider(),
- desc, SkBudgeted::kNo,
- controlPixelData.begin(), 0);
- SkASSERT(fpProxy);
- context->contextPriv().readSurfacePixels(fpProxy.get(), nullptr, 0, 0, DEV_W, DEV_H,
- kRGBA_8888_GrPixelConfig, nullptr,
- readBuffer.begin(), 0);
+ desc.fOrigin = origin;
+
+ sk_sp<GrTextureProxy> proxy = GrSurfaceProxy::MakeDeferred(context->resourceProvider(),
+ desc, SkBudgeted::kNo,
+ controlPixelData.begin(), 0);
+ SkASSERT(proxy);
+
+ sk_sp<GrSurfaceContext> sContext = context->contextPriv().makeWrappedSurfaceContext(
+ std::move(proxy), nullptr);
+
+ SkAssertResult(sContext->readPixels(dstInfo, readBuffer.begin(), 0, 0, 0));
+
if (kRGBA_4444_GrPixelConfig == config) {
check_4444(reporter, controlPixelData, readBuffer);
} else {
@@ -136,13 +142,11 @@ void runTest(skiatest::Reporter* reporter, GrContext* context,
static const int CONTROL_ARRAY_SIZE = DEV_W * DEV_H;
DEF_GPUTEST_FOR_RENDERING_CONTEXTS(RGBA4444TextureTest, reporter, ctxInfo) {
- runTest<uint16_t>(reporter, ctxInfo.grContext(), 0xFF00, 0xFA62,
- CONTROL_ARRAY_SIZE, kRGBA_4444_GrPixelConfig);
+ run_test(reporter, ctxInfo.grContext(), CONTROL_ARRAY_SIZE, kRGBA_4444_GrPixelConfig);
}
DEF_GPUTEST_FOR_RENDERING_CONTEXTS(RGB565TextureTest, reporter, ctxInfo) {
- runTest<uint16_t>(reporter, ctxInfo.grContext(), 0xFF00, 0xFA62,
- CONTROL_ARRAY_SIZE, kRGB_565_GrPixelConfig);
+ run_test(reporter, ctxInfo.grContext(), CONTROL_ARRAY_SIZE, kRGB_565_GrPixelConfig);
}
#endif