/* * Copyright 2024 Google LLC * * Use of this source code is governed by a BSD-style license that can be * found in the LICENSE file. */ #ifndef skgpu_DataUtils_DEFINED #define skgpu_DataUtils_DEFINED #include "include/core/SkColor.h" #include "include/core/SkSize.h" #include enum class SkTextureCompressionType; namespace skgpu { enum class Mipmapped : bool; size_t NumCompressedBlocks(SkTextureCompressionType, SkISize baseDimensions); // Returns a value that can be used to set rowBytes for a transfer function. size_t CompressedRowBytes(SkTextureCompressionType, int w); // Return the pixel dimensions of a compressed texture. The topmost levels // of a compressed mipmapped texture (i.e., 1x1 or 2x2) still occupy a full // block and thus objectively take up more pixels (e.g., 4x4 pixels for ETC1). SkISize CompressedDimensions(SkTextureCompressionType, SkISize baseDimensions); SkISize CompressedDimensionsInBlocks(SkTextureCompressionType, SkISize baseDimensions); void FillInCompressedData(SkTextureCompressionType, SkISize dimensions, skgpu::Mipmapped, char* dest, const SkColor4f& color); } // namespace skgpu #endif // skgpu_DataUtils_DEFINED