blob: c0a46cf73536e01ce743ba03ebaf120b87c7f85e [file] [log] [blame] [edit]
/*
* Copyright 2026 Google LLC
*
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
#ifndef skgpu_MaskFormat_DEFINED
#define skgpu_MaskFormat_DEFINED
#include "include/core/SkColorType.h"
namespace skgpu {
/**
* Formats for masks, used by the font cache. Important that these are 0-based.
*/
enum class MaskFormat : int {
kA8, //!< 1-byte per pixel
kA565, //!< 2-bytes per pixel, RGB represent 3-channel LCD coverage
kARGB, //!< 4-bytes per pixel, color format
kLast = kARGB
};
static const int kMaskFormatCount = static_cast<int>(MaskFormat::kLast) + 1;
/**
* Return the number of bytes-per-pixel for the specified mask format.
*/
constexpr int MaskFormatBytesPerPixel(MaskFormat format) {
switch (format) {
case MaskFormat::kA8: return 1;
case MaskFormat::kA565: return 2;
case MaskFormat::kARGB: return 4;
}
SkUNREACHABLE;
}
static constexpr SkColorType MaskFormatToColorType(MaskFormat format) {
switch (format) {
case MaskFormat::kA8: return kAlpha_8_SkColorType;
case MaskFormat::kA565: return kRGB_565_SkColorType;
case MaskFormat::kARGB: return kRGBA_8888_SkColorType;
}
SkUNREACHABLE;
}
} // namespace skgpu
#endif // skgpu_MaskFormat_DEFINED