blob: c09536343391e21490487d0c3848c176d0d9cc06 [file] [log] [blame]
/*
* Copyright 2018 Google Inc.
*
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
#ifndef GrMtlCppUtil_DEFINED
#define GrMtlCppUtil_DEFINED
#include "include/core/SkImage.h"
#include "include/gpu/mtl/GrMtlTypes.h"
#include "include/private/GrTypesPriv.h"
class GrBackendFormat;
// Utilities that can be used from cpp files (rather than .mm).
GrMTLPixelFormat GrGetMTLPixelFormatFromMtlTextureInfo(const GrMtlTextureInfo&);
size_t GrMtlBackendFormatBytesPerBlock(const GrBackendFormat& format);
int GrMtlBackendFormatStencilBits(const GrBackendFormat& format);
uint32_t GrMtlFormatChannels(GrMTLPixelFormat);
GrColorFormatDesc GrMtlFormatDesc(GrMTLPixelFormat);
SkImage::CompressionType GrMtlBackendFormatToCompressionType(const GrBackendFormat& format);
/**
* Gets the sample count of a texture held by GrMtlTextureInfo or zero if the texture is nil.
*/
int GrMtlTextureInfoSampleCount(const GrMtlTextureInfo&);
#if defined(SK_DEBUG) || GR_TEST_UTILS
const char* GrMtlFormatToStr(GrMTLPixelFormat mtlFormat);
bool GrMtlFormatIsBGRA8(GrMTLPixelFormat mtlFormat);
#endif
#endif