diff options
author | Brian Salomon <bsalomon@google.com> | 2018-02-09 08:50:22 -0500 |
---|---|---|
committer | Skia Commit-Bot <skia-commit-bot@chromium.org> | 2018-02-09 14:19:51 +0000 |
commit | 67f8584b6f899876ca4187dba4f449ce5489f9c8 (patch) | |
tree | ef23d8ccb9430be5ed954ff4cc0eb345baeafc98 /gm | |
parent | c4616804bb407506c6ac1046c7e25e2016911449 (diff) |
Revert "Revert "Remove SkImage deferred texture image data APIs.""
This reverts commit aae533e418f37d788cdb1a1177e882d0f8868b62.
Change-Id: I0434892d8946490a75e17620c49c594eaa18158e
Reviewed-on: https://skia-review.googlesource.com/100603
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
Diffstat (limited to 'gm')
-rw-r--r-- | gm/deferredtextureimage.cpp | 222 |
1 files changed, 0 insertions, 222 deletions
diff --git a/gm/deferredtextureimage.cpp b/gm/deferredtextureimage.cpp deleted file mode 100644 index 00953b1e2f..0000000000 --- a/gm/deferredtextureimage.cpp +++ /dev/null @@ -1,222 +0,0 @@ -/* - * Copyright 2016 Google Inc. - * - * Use of this source code is governed by a BSD-style license that can be - * found in the LICENSE file. - */ -#include <vector> - -#include "gm.h" -#include "SkImage.h" -#include "SkMipMap.h" -#include "Resources.h" - -#if SK_SUPPORT_GPU -#include "GrContext.h" - -// Helper function that uploads the given SkImage using MakeFromDeferredTextureImageData and then -// draws the uploaded version at the specified coordinates. -static void DrawDeferredTextureImageData(SkCanvas* canvas, - const char* resourceName, - SkImage::DeferredTextureImageUsageParams* params, - SkColorType dstColorType) { - GrContext* context = canvas->getGrContext(); - if (!context) { - skiagm::GM::DrawGpuOnlyMessage(canvas); - return; - } - sk_sp<GrContextThreadSafeProxy> proxy(context->threadSafeProxy()); - - - - sk_sp<SkImage> encodedImage = GetResourceAsImage(resourceName); - if (!encodedImage) { - SkDebugf("\nCould not load resource.\n"); - return; - } - - size_t requiredMemoryInBytes = encodedImage->getDeferredTextureImageData( - *proxy, params, 1, nullptr, canvas->imageInfo().colorSpace(), dstColorType); - if (requiredMemoryInBytes == 0) { - SkDebugf("\nCould not create DeferredTextureImageData.\n"); - return; - } - - std::vector<uint8_t> memory; - memory.resize(requiredMemoryInBytes); - encodedImage->getDeferredTextureImageData( - *proxy, params, 1, memory.data(), canvas->imageInfo().colorSpace(), dstColorType); - sk_sp<SkImage> uploadedEncodedImage = SkImage::MakeFromDeferredTextureImageData( - context, memory.data(), SkBudgeted::kNo); - - canvas->drawImage(uploadedEncodedImage, 10, 10); - - - - SkBitmap bitmap; - if (!GetResourceAsBitmap(resourceName, &bitmap)) { - SkDebugf("\nCould not decode resource.\n"); - return; - } - sk_sp<SkImage> decodedImage = SkImage::MakeFromBitmap(bitmap); - - requiredMemoryInBytes = decodedImage->getDeferredTextureImageData( - *proxy, params, 1, nullptr, canvas->imageInfo().colorSpace(), dstColorType); - if (requiredMemoryInBytes == 0) { - SkDebugf("\nCould not create DeferredTextureImageData.\n"); - return; - } - - memory.resize(requiredMemoryInBytes); - decodedImage->getDeferredTextureImageData( - *proxy, params, 1, memory.data(), canvas->imageInfo().colorSpace(), dstColorType); - sk_sp<SkImage> uploadedDecodedImage = SkImage::MakeFromDeferredTextureImageData( - context, memory.data(), SkBudgeted::kNo); - - canvas->drawImage(uploadedDecodedImage, encodedImage->width() + 20, 10); -} - -static void DrawDeferredTextureImageMipMapTree(SkCanvas* canvas, SkImage* image, - SkImage::DeferredTextureImageUsageParams* params, - SkColorType dstColorType) { - GrContext* context = canvas->getGrContext(); - if (!context) { - skiagm::GM::DrawGpuOnlyMessage(canvas); - return; - } - sk_sp<GrContextThreadSafeProxy> proxy(context->threadSafeProxy()); - - SkPaint paint; - paint.setFilterQuality(params->fQuality); - - int mipLevelCount = SkMipMap::ComputeLevelCount(image->width(), image->height()); - size_t requiredMemoryInBytes = image->getDeferredTextureImageData( - *proxy, params, 1, nullptr, canvas->imageInfo().colorSpace(), dstColorType); - if (requiredMemoryInBytes == 0) { - SkDebugf("\nCould not create DeferredTextureImageData.\n"); - return; - } - - std::vector<uint8_t> memory; - memory.resize(requiredMemoryInBytes); - image->getDeferredTextureImageData( - *proxy, params, 1, memory.data(), canvas->imageInfo().colorSpace(), dstColorType); - sk_sp<SkImage> uploadedImage = SkImage::MakeFromDeferredTextureImageData( - context, memory.data(), SkBudgeted::kNo); - - // draw a column using deferred texture images - SkScalar offsetHeight = 10.f; - // handle base mipmap level - canvas->save(); - canvas->translate(10.f, offsetHeight); - canvas->drawImage(uploadedImage, 0, 0, &paint); - canvas->restore(); - offsetHeight += image->height() + 10; - // handle generated mipmap levels - for (int i = 0; i < mipLevelCount; i++) { - SkISize mipSize = SkMipMap::ComputeLevelSize(image->width(), image->height(), i); - canvas->save(); - canvas->translate(10.f, offsetHeight); - canvas->scale(mipSize.width() / static_cast<float>(image->width()), - mipSize.height() / static_cast<float>(image->height())); - canvas->drawImage(uploadedImage, 0, 0, &paint); - canvas->restore(); - offsetHeight += mipSize.height() + 10; - } - - // draw a column using SkImage - offsetHeight = 10; - // handle base mipmap level - canvas->save(); - canvas->translate(image->width() + 20.f, offsetHeight); - canvas->drawImage(image, 0, 0, &paint); - canvas->restore(); - offsetHeight += image->height() + 10; - // handle generated mipmap levels - for (int i = 0; i < mipLevelCount; i++) { - SkISize mipSize = SkMipMap::ComputeLevelSize(image->width(), image->height(), i); - canvas->save(); - canvas->translate(image->width() + 20.f, offsetHeight); - canvas->scale(mipSize.width() / static_cast<float>(image->width()), - mipSize.height() / static_cast<float>(image->height())); - canvas->drawImage(image, 0, 0, &paint); - canvas->restore(); - offsetHeight += mipSize.height() + 10; - } -} - -DEF_SIMPLE_GM(deferred_texture_image_none, canvas, 512 + 512 + 30, 512 + 20) { - auto params = SkImage::DeferredTextureImageUsageParams(SkMatrix::MakeScale(1.f, 1.f), - kNone_SkFilterQuality, 0); - DrawDeferredTextureImageData(canvas, "images/mandrill_512.png", ¶ms, kN32_SkColorType); -} - -DEF_SIMPLE_GM(deferred_texture_image_low, canvas, 512 + 512 + 30, 512 + 20) { - auto params = SkImage::DeferredTextureImageUsageParams(SkMatrix::MakeScale(1.f, 1.f), - kLow_SkFilterQuality, 0); - DrawDeferredTextureImageData(canvas, "images/mandrill_512.png", ¶ms, kN32_SkColorType); -} - -DEF_SIMPLE_GM(deferred_texture_image_low_dithered, canvas, 180 + 180 + 30, 180 + 20) { - auto params = SkImage::DeferredTextureImageUsageParams(SkMatrix::MakeScale(0.25f, 0.25f), - kLow_SkFilterQuality, 0); - DrawDeferredTextureImageData(canvas, "images/dog.jpg", ¶ms, kARGB_4444_SkColorType); -} - -DEF_SIMPLE_GM(deferred_texture_image_medium_encoded, canvas, 512 + 512 + 30, 1110) { - sk_sp<SkImage> encodedImage = GetResourceAsImage("images/mandrill_512.png"); - if (!encodedImage) { - SkDebugf("\nCould not load resource.\n"); - return; - } - - auto params = SkImage::DeferredTextureImageUsageParams(SkMatrix::MakeScale(0.25f, 0.25f), - kMedium_SkFilterQuality, 0); - DrawDeferredTextureImageMipMapTree(canvas, encodedImage.get(), ¶ms, kN32_SkColorType); -} - -DEF_SIMPLE_GM(deferred_texture_image_medium_decoded, canvas, 512 + 512 + 30, 1110) { - SkBitmap bitmap; - if (!GetResourceAsBitmap("images/mandrill_512.png", &bitmap)) { - SkDebugf("\nCould not decode resource.\n"); - return; - } - sk_sp<SkImage> decodedImage = SkImage::MakeFromBitmap(bitmap); - - auto params = SkImage::DeferredTextureImageUsageParams(SkMatrix::MakeScale(0.25f, 0.25f), - kMedium_SkFilterQuality, 0); - DrawDeferredTextureImageMipMapTree(canvas, decodedImage.get(), ¶ms, kN32_SkColorType); -} - -DEF_SIMPLE_GM(deferred_texture_image_high, canvas, 512 + 512 + 30, 512 + 20) { - auto params = SkImage::DeferredTextureImageUsageParams(SkMatrix::MakeScale(1.f, 1.f), - kHigh_SkFilterQuality, 0); - DrawDeferredTextureImageData(canvas, "images/mandrill_512.png", ¶ms, kN32_SkColorType); -} - -DEF_SIMPLE_GM(deferred_texture_image_medium_encoded_indexed, canvas, 128 + 128 + 30, 340) { - sk_sp<SkImage> encodedImage = GetResourceAsImage("images/color_wheel.gif"); - if (!encodedImage) { - SkDebugf("\nCould not load resource.\n"); - return; - } - - auto params = SkImage::DeferredTextureImageUsageParams(SkMatrix::MakeScale(0.25f, 0.25f), - kMedium_SkFilterQuality, 0); - DrawDeferredTextureImageMipMapTree(canvas, encodedImage.get(), ¶ms, kN32_SkColorType); -} - -DEF_SIMPLE_GM(deferred_texture_image_medium_decoded_indexed, canvas, 128 + 128 + 30, 340) { - SkBitmap bitmap; - if (!GetResourceAsBitmap("images/color_wheel.gif", &bitmap)) { - SkDebugf("\nCould not decode resource.\n"); - return; - } - sk_sp<SkImage> decodedImage = SkImage::MakeFromBitmap(bitmap); - - auto params = SkImage::DeferredTextureImageUsageParams(SkMatrix::MakeScale(0.25f, 0.25f), - kMedium_SkFilterQuality, 0); - DrawDeferredTextureImageMipMapTree(canvas, decodedImage.get(), ¶ms, kN32_SkColorType); -} - -#endif |