blob: 55184d035019313b73884c111a2879d834b58e93 [file] [log] [blame]
/*
* 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