blob: 794df422651ef9f43e3612bcfc4c1c10bc75c4d1 [file]
/*
* Copyright 2020 Google LLC
*
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
#include "src/gpu/ganesh/GrBackendUtils.h"
#include "include/core/SkTextureCompressionType.h"
#include "include/gpu/ganesh/GrBackendSurface.h"
#include "include/gpu/ganesh/GrTypes.h"
#include "include/private/gpu/ganesh/GrTypesPriv.h"
#include "src/gpu/DataUtils.h"
#include "src/gpu/ganesh/GrBackendSurfacePriv.h"
SkTextureCompressionType GrBackendFormatToCompressionType(const GrBackendFormat& format) {
if (!format.isValid()) {
return SkTextureCompressionType::kNone;
}
SkASSERT(format.backend() != GrBackendApi::kUnsupported);
return GrBackendSurfacePriv::GetBackendData(format)->compressionType();
}
size_t GrBackendFormatBytesPerBlock(const GrBackendFormat& format) {
if (!format.isValid()) {
return 0;
}
SkASSERT(format.backend() != GrBackendApi::kUnsupported);
return GrBackendSurfacePriv::GetBackendData(format)->bytesPerBlock();
}
size_t GrBackendFormatBytesPerPixel(const GrBackendFormat& format) {
if (GrBackendFormatToCompressionType(format) != SkTextureCompressionType::kNone) {
return 0;
}
return GrBackendFormatBytesPerBlock(format);
}
int GrBackendFormatStencilBits(const GrBackendFormat& format) {
if (!format.isValid()) {
return 0;
}
SkASSERT(format.backend() != GrBackendApi::kUnsupported);
return GrBackendSurfacePriv::GetBackendData(format)->stencilBits();
}