| /* |
| * Copyright 2023 Google LLC |
| * |
| * Use of this source code is governed by a BSD-style license that can be |
| * found in the LICENSE file. |
| */ |
| |
| #include "tools/gpu/ProtectedUtils.h" |
| |
| #include "include/core/SkCanvas.h" |
| #include "include/core/SkSurface.h" |
| #include "include/core/SkSurfaceProps.h" |
| #include "tools/gpu/BackendSurfaceFactory.h" |
| #include "tools/gpu/BackendTextureImageFactory.h" |
| |
| using namespace skgpu; |
| using namespace skgpu::graphite; |
| |
| namespace ProtectedUtils { |
| |
| sk_sp<SkSurface> CreateProtectedSkSurface(Recorder* recorder, |
| SkISize size, |
| Protected isProtected) { |
| SkImageInfo ii = SkImageInfo::Make(size, kRGBA_8888_SkColorType, kPremul_SkAlphaType); |
| |
| sk_sp<SkSurface> surface = sk_gpu_test::MakeBackendTextureSurface(recorder, |
| ii, |
| Mipmapped::kNo, |
| isProtected, |
| /* surfaceProps= */ nullptr); |
| if (!surface) { |
| SK_ABORT("Could not create %s surface.", |
| isProtected == Protected::kYes ? "protected" : "unprotected"); |
| return nullptr; |
| } |
| |
| SkCanvas* canvas = surface->getCanvas(); |
| |
| canvas->clear(SkColors::kBlue); |
| |
| return surface; |
| } |
| |
| sk_sp<SkImage> CreateProtectedSkImage(Recorder* recorder, |
| SkISize size, |
| SkColor4f color, |
| Protected isProtected) { |
| SkImageInfo ii = SkImageInfo::Make(size, kRGBA_8888_SkColorType, kPremul_SkAlphaType); |
| |
| sk_sp<SkImage> image = sk_gpu_test::MakeBackendTextureImage(recorder, |
| ii, |
| color, |
| Mipmapped::kNo, |
| Renderable::kNo, |
| Origin::kTopLeft, |
| isProtected); |
| if (!image) { |
| SK_ABORT("Could not create %s image.", |
| isProtected == Protected::kYes ? "protected" : "unprotected"); |
| return nullptr; |
| } |
| |
| return image; |
| } |
| |
| } // namespace ProtectedUtils |