| /* |
| * 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 |