aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorGravatar Cary Clark <caryclark@skia.org>2018-04-03 15:24:12 -0400
committerGravatar Skia Commit-Bot <skia-commit-bot@chromium.org>2018-04-03 19:59:21 +0000
commit3a494f6eb487bcbb5f732aeccab9da6d1c9b618e (patch)
treeb581e3d0bde82f22cf92957f953e0cab54779bb7
parent21aa7b8f24247a9825b93539edd7cce76f46e236 (diff)
fix SkImageInfo indentation
The presence of global functions threw off the indentation of themselves and everything following. TBR=reed@google.com Bug: skia:6898 Change-Id: I3c6c21b62922f42157085fa7aaa19deb9560f16d Reviewed-on: https://skia-review.googlesource.com/118380 Reviewed-by: Cary Clark <caryclark@skia.org> Commit-Queue: Cary Clark <caryclark@skia.org>
-rw-r--r--include/core/SkImageInfo.h820
1 files changed, 412 insertions, 408 deletions
diff --git a/include/core/SkImageInfo.h b/include/core/SkImageInfo.h
index 7cd271d07c..48edcd2181 100644
--- a/include/core/SkImageInfo.h
+++ b/include/core/SkImageInfo.h
@@ -55,13 +55,17 @@ enum SkAlphaType {
kLastEnum_SkAlphaType = kUnpremul_SkAlphaType,
};
- /**
-
- @param at one of:
- kUnknown_SkAlphaType, kOpaque_SkAlphaType, kPremul_SkAlphaType,
- kUnpremul_SkAlphaType
- @return true if at equals kOpaque_SkAlphaType
- */
+/** Returns true if SkAlphaType equals kOpaque_SkAlphaType. kOpaque_SkAlphaType is a
+ hint that the SkColorType is opaque, or that all color alpha values are set to
+ their 1.0 equivalent. If SkAlphaType is kOpaque_SkAlphaType, and SkColorType is not
+ opaque, then the result of drawing any pixel with a color alpha value less than
+ 1.0 is undefined.
+
+ @param at one of:
+ kUnknown_SkAlphaType, kOpaque_SkAlphaType, kPremul_SkAlphaType,
+ kUnpremul_SkAlphaType
+ @return true if at equals kOpaque_SkAlphaType
+*/
static inline bool SkAlphaTypeIsOpaque(SkAlphaType at) {
return kOpaque_SkAlphaType == at;
}
@@ -71,168 +75,168 @@ static inline bool SkAlphaTypeIsOpaque(SkAlphaType at) {
/** Temporary macro that allows us to add new color types without breaking Chrome compile. */
#define SK_EXTENDED_COLOR_TYPES
- /** \enum SkImageInfo::SkColorType
- Describes how pixel bits encode color. A pixel may be an alpha mask, a
- gray level, RGB, or ARGB.
+/** \enum SkImageInfo::SkColorType
+ Describes how pixel bits encode color. A pixel may be an alpha mask, a
+ gray level, RGB, or ARGB.
- kN32_SkColorType selects the native 32-bit ARGB format. On Little_Endian
- processors, pixels containing 8-bit ARGB components pack into 32-bit
- kBGRA_8888_SkColorType. On Big_Endian processors, pixels pack into 32-bit
- kRGBA_8888_SkColorType.
- */
- enum SkColorType {
- /** SkColorType is uninitialized; encoding format and size is unknown. */
- kUnknown_SkColorType,
+ kN32_SkColorType selects the native 32-bit ARGB format. On Little_Endian
+ processors, pixels containing 8-bit ARGB components pack into 32-bit
+ kBGRA_8888_SkColorType. On Big_Endian processors, pixels pack into 32-bit
+ kRGBA_8888_SkColorType.
+*/
+enum SkColorType {
+ /** SkColorType is uninitialized; encoding format and size is unknown. */
+ kUnknown_SkColorType,
- /** Encodes color alpha as alpha 8 pixel in an 8-bit byte. */
- kAlpha_8_SkColorType,
+ /** Encodes color alpha as alpha 8 pixel in an 8-bit byte. */
+ kAlpha_8_SkColorType,
- /** Encodes RGB as bgr 565 pixel in a 16-bit word. */
- kRGB_565_SkColorType,
+ /** Encodes RGB as bgr 565 pixel in a 16-bit word. */
+ kRGB_565_SkColorType,
- /** Encodes ARGB as abgr 4444 pixel in a 16-bit word. */
- kARGB_4444_SkColorType,
+ /** Encodes ARGB as abgr 4444 pixel in a 16-bit word. */
+ kARGB_4444_SkColorType,
- /** Encodes ARGB as rgba 8888 pixel in a 32-bit word. */
- kRGBA_8888_SkColorType,
+ /** Encodes ARGB as rgba 8888 pixel in a 32-bit word. */
+ kRGBA_8888_SkColorType,
- /** Encodes RGB as rgb 888x pixel in a 32-bit word. */
- kRGB_888x_SkColorType,
+ /** Encodes RGB as rgb 888x pixel in a 32-bit word. */
+ kRGB_888x_SkColorType,
- /** Encodes ARGB as bgra 8888 pixel in a 32-bit word. */
- kBGRA_8888_SkColorType,
+ /** Encodes ARGB as bgra 8888 pixel in a 32-bit word. */
+ kBGRA_8888_SkColorType,
- /** Encodes ARGB as rgba 1010102 pixel in a 32-bit word. */
- kRGBA_1010102_SkColorType,
+ /** Encodes ARGB as rgba 1010102 pixel in a 32-bit word. */
+ kRGBA_1010102_SkColorType,
- /** Encodes RGB as rgb 101010x pixel in a 32-bit word. */
- kRGB_101010x_SkColorType,
+ /** Encodes RGB as rgb 101010x pixel in a 32-bit word. */
+ kRGB_101010x_SkColorType,
- /** Encodes color gray as gray 8 in an 8-bit byte. */
- kGray_8_SkColorType,
+ /** Encodes color gray as gray 8 in an 8-bit byte. */
+ kGray_8_SkColorType,
- /** Encodes ARGB as rgba f16 in a 64-bit word. */
- kRGBA_F16_SkColorType,
+ /** Encodes ARGB as rgba f16 in a 64-bit word. */
+ kRGBA_F16_SkColorType,
- /** Encodes ARGB as rgba f16 in a 64-bit word. */
- kLastEnum_SkColorType = kRGBA_F16_SkColorType,
+ /** Encodes ARGB as rgba f16 in a 64-bit word. */
+ kLastEnum_SkColorType = kRGBA_F16_SkColorType,
#if SK_PMCOLOR_BYTE_ORDER(B,G,R,A)
- /** Encodes ARGB as either rgba 8888 or bgra 8888, whichever
- is native to the platform.
- */
- kN32_SkColorType = kBGRA_8888_SkColorType,
+ /** Encodes ARGB as either rgba 8888 or bgra 8888, whichever
+ is native to the platform.
+ */
+ kN32_SkColorType = kBGRA_8888_SkColorType,
#elif SK_PMCOLOR_BYTE_ORDER(R,G,B,A)
- /** Encodes ARGB as either rgba 8888 or bgra 8888, whichever
- is native to the platform.
- */
- kN32_SkColorType = kRGBA_8888_SkColorType,
+ /** Encodes ARGB as either rgba 8888 or bgra 8888, whichever
+ is native to the platform.
+ */
+ kN32_SkColorType = kRGBA_8888_SkColorType,
#else
#error "SK_*32_SHIFT values must correspond to BGRA or RGBA byte order"
#endif
- };
-
- /** Returns the number of bytes required to store a pixel, including unused padding.
- Returns zero if ct is kUnknown_SkColorType or invalid.
-
- @param ct one of:
- kUnknown_SkColorType, kAlpha_8_SkColorType, kRGB_565_SkColorType,
- kARGB_4444_SkColorType, kRGBA_8888_SkColorType, kRGB_888x_SkColorType,
- kBGRA_8888_SkColorType, kRGBA_1010102_SkColorType, kRGB_101010x_SkColorType,
- kGray_8_SkColorType, kRGBA_F16_SkColorType
- @return bytes per pixel
- */
- SK_API int SkColorTypeBytesPerPixel(SkColorType ct);
-
- /** Returns true if SkColorType always decodes color alpha to 1.0, making the pixel
- fully opaque. If true, SkColorType does not reserve bits to encode color alpha.
-
- @param ct one of:
- kUnknown_SkColorType, kAlpha_8_SkColorType, kRGB_565_SkColorType,
- kARGB_4444_SkColorType, kRGBA_8888_SkColorType, kRGB_888x_SkColorType,
- kBGRA_8888_SkColorType, kRGBA_1010102_SkColorType, kRGB_101010x_SkColorType,
- kGray_8_SkColorType, kRGBA_F16_SkColorType
- @return true if color alpha is always set to 1.0
- */
- SK_API bool SkColorTypeIsAlwaysOpaque(SkColorType ct);
-
- /** Returns true if canonical can be set to a valid SkAlphaType for colorType. If
- there is more than one valid canonical SkAlphaType, set to alphaType, if valid.
- If true is returned and canonical is not nullptr, store valid SkAlphaType.
-
- Returns false only if alphaType is kUnknown_SkAlphaType, color type is not
- kUnknown_SkColorType, and SkColorType is not always opaque. If false is returned,
- canonical is ignored.
-
- For kUnknown_SkColorType: set canonical to kUnknown_SkAlphaType and return true.
- For kAlpha_8_SkColorType: set canonical to kPremul_SkAlphaType or
- kOpaque_SkAlphaType and return true if alphaType is not kUnknown_SkAlphaType.
- For kRGB_565_SkColorType, kRGB_888x_SkColorType, kRGB_101010x_SkColorType, and
- kGray_8_SkColorType: set canonical to kOpaque_SkAlphaType and return true.
- For kARGB_4444_SkColorType, kRGBA_8888_SkColorType, kBGRA_8888_SkColorType,
- kRGBA_1010102_SkColorType, and kRGBA_F16_SkColorType: set canonical to alphaType
- and return true if alphaType is not kUnknown_SkAlphaType.
-
- @param colorType one of:
- kUnknown_SkColorType, kAlpha_8_SkColorType, kRGB_565_SkColorType,
- kARGB_4444_SkColorType, kRGBA_8888_SkColorType, kRGB_888x_SkColorType,
- kBGRA_8888_SkColorType, kRGBA_1010102_SkColorType, kRGB_101010x_SkColorType,
- kGray_8_SkColorType, kRGBA_F16_SkColorType
- @param alphaType one of:
- kUnknown_SkAlphaType, kOpaque_SkAlphaType, kPremul_SkAlphaType,
- kUnpremul_SkAlphaType
- @param canonical storage for SkAlphaType
- @return true if valid SkAlphaType can be associated with colorType
- */
- SK_API bool SkColorTypeValidateAlphaType(SkColorType colorType, SkAlphaType alphaType,
+};
+
+/** Returns the number of bytes required to store a pixel, including unused padding.
+ Returns zero if ct is kUnknown_SkColorType or invalid.
+
+ @param ct one of:
+ kUnknown_SkColorType, kAlpha_8_SkColorType, kRGB_565_SkColorType,
+ kARGB_4444_SkColorType, kRGBA_8888_SkColorType, kRGB_888x_SkColorType,
+ kBGRA_8888_SkColorType, kRGBA_1010102_SkColorType, kRGB_101010x_SkColorType,
+ kGray_8_SkColorType, kRGBA_F16_SkColorType
+ @return bytes per pixel
+*/
+SK_API int SkColorTypeBytesPerPixel(SkColorType ct);
+
+/** Returns true if SkColorType always decodes color alpha to 1.0, making the pixel
+ fully opaque. If true, SkColorType does not reserve bits to encode color alpha.
+
+ @param ct one of:
+ kUnknown_SkColorType, kAlpha_8_SkColorType, kRGB_565_SkColorType,
+ kARGB_4444_SkColorType, kRGBA_8888_SkColorType, kRGB_888x_SkColorType,
+ kBGRA_8888_SkColorType, kRGBA_1010102_SkColorType, kRGB_101010x_SkColorType,
+ kGray_8_SkColorType, kRGBA_F16_SkColorType
+ @return true if color alpha is always set to 1.0
+*/
+SK_API bool SkColorTypeIsAlwaysOpaque(SkColorType ct);
+
+/** Returns true if canonical can be set to a valid SkAlphaType for colorType. If
+ there is more than one valid canonical SkAlphaType, set to alphaType, if valid.
+ If true is returned and canonical is not nullptr, store valid SkAlphaType.
+
+ Returns false only if alphaType is kUnknown_SkAlphaType, color type is not
+ kUnknown_SkColorType, and SkColorType is not always opaque. If false is returned,
+ canonical is ignored.
+
+ For kUnknown_SkColorType: set canonical to kUnknown_SkAlphaType and return true.
+ For kAlpha_8_SkColorType: set canonical to kPremul_SkAlphaType or
+ kOpaque_SkAlphaType and return true if alphaType is not kUnknown_SkAlphaType.
+ For kRGB_565_SkColorType, kRGB_888x_SkColorType, kRGB_101010x_SkColorType, and
+ kGray_8_SkColorType: set canonical to kOpaque_SkAlphaType and return true.
+ For kARGB_4444_SkColorType, kRGBA_8888_SkColorType, kBGRA_8888_SkColorType,
+ kRGBA_1010102_SkColorType, and kRGBA_F16_SkColorType: set canonical to alphaType
+ and return true if alphaType is not kUnknown_SkAlphaType.
+
+ @param colorType one of:
+ kUnknown_SkColorType, kAlpha_8_SkColorType, kRGB_565_SkColorType,
+ kARGB_4444_SkColorType, kRGBA_8888_SkColorType, kRGB_888x_SkColorType,
+ kBGRA_8888_SkColorType, kRGBA_1010102_SkColorType, kRGB_101010x_SkColorType,
+ kGray_8_SkColorType, kRGBA_F16_SkColorType
+ @param alphaType one of:
+ kUnknown_SkAlphaType, kOpaque_SkAlphaType, kPremul_SkAlphaType,
+ kUnpremul_SkAlphaType
+ @param canonical storage for SkAlphaType
+ @return true if valid SkAlphaType can be associated with colorType
+*/
+SK_API bool SkColorTypeValidateAlphaType(SkColorType colorType, SkAlphaType alphaType,
SkAlphaType* canonical = nullptr);
- /** \enum SkImageInfo::SkYUVColorSpace
- Describes color range of YUV pixels. The color mapping from YUV to RGB varies
- depending on the source. YUV pixels may be generated by JPEG images, standard
- video streams, or high definition video streams. Each has its own mapping from
- YUV and RGB.
+/** \enum SkImageInfo::SkYUVColorSpace
+ Describes color range of YUV pixels. The color mapping from YUV to RGB varies
+ depending on the source. YUV pixels may be generated by JPEG images, standard
+ video streams, or high definition video streams. Each has its own mapping from
+ YUV and RGB.
- JPEG YUV values encode the full range of 0 to 255 for all three components.
- Video YUV values range from 16 to 235 for all three components. Details of
- encoding and conversion to RGB are described in YCbCr color space.
- */
- enum SkYUVColorSpace {
- /** Describes standard JPEG color space; */
- kJPEG_SkYUVColorSpace,
+ JPEG YUV values encode the full range of 0 to 255 for all three components.
+ Video YUV values range from 16 to 235 for all three components. Details of
+ encoding and conversion to RGB are described in YCbCr color space.
+*/
+enum SkYUVColorSpace {
+ /** Describes standard JPEG color space; */
+ kJPEG_SkYUVColorSpace,
- /** Describes standard used by SDTV; */
- kRec601_SkYUVColorSpace,
+ /** Describes standard used by SDTV; */
+ kRec601_SkYUVColorSpace,
- /** Describes standard used by HDTV; */
- kRec709_SkYUVColorSpace,
+ /** Describes standard used by HDTV; */
+ kRec709_SkYUVColorSpace,
- /** Describes standard used by HDTV; */
- kLastEnum_SkYUVColorSpace = kRec709_SkYUVColorSpace,
- };
+ /** Describes standard used by HDTV; */
+ kLastEnum_SkYUVColorSpace = kRec709_SkYUVColorSpace,
+};
- /** \struct SkImageInfo
- Describes pixel dimensions and encoding. SkBitmap, SkImage, PixMap, and SkSurface
- can be created from SkImageInfo. SkImageInfo can be retrieved from SkBitmap and
- SkPixmap, but not from SkImage and SkSurface. For example, SkImage and SkSurface
- implementations may defer pixel depth, so may not completely specify SkImageInfo.
+/** \struct SkImageInfo
+ Describes pixel dimensions and encoding. SkBitmap, SkImage, PixMap, and SkSurface
+ can be created from SkImageInfo. SkImageInfo can be retrieved from SkBitmap and
+ SkPixmap, but not from SkImage and SkSurface. For example, SkImage and SkSurface
+ implementations may defer pixel depth, so may not completely specify SkImageInfo.
- SkImageInfo contains dimensions, the pixel integral width and height. It encodes
- how pixel bits describe color alpha, transparency; color components red, blue,
- and green; and SkColorSpace, the range and linearity of colors.
- */
- struct SK_API SkImageInfo {
+ SkImageInfo contains dimensions, the pixel integral width and height. It encodes
+ how pixel bits describe color alpha, transparency; color components red, blue,
+ and green; and SkColorSpace, the range and linearity of colors.
+*/
+struct SK_API SkImageInfo {
public:
- /** Creates an empty SkImageInfo with kUnknown_SkColorType, kUnknown_SkAlphaType,
- a width and height of zero, and no SkColorSpace.
+ /** Creates an empty SkImageInfo with kUnknown_SkColorType, kUnknown_SkAlphaType,
+ a width and height of zero, and no SkColorSpace.
- @return empty SkImageInfo
- */
- SkImageInfo()
+ @return empty SkImageInfo
+ */
+ SkImageInfo()
: fColorSpace(nullptr)
, fWidth(0)
, fHeight(0)
@@ -240,312 +244,312 @@ public:
, fAlphaType(kUnknown_SkAlphaType)
{}
- /** Creates SkImageInfo from integral dimensions width and height, SkColorType ct,
- SkAlphaType at, and optionally SkColorSpace cs.
-
- If SkColorSpace cs is nullptr and SkImageInfo is part of drawing source: SkColorSpace
- defaults to sRGB, mapping into SkSurface SkColorSpace.
-
- Parameters are not validated to see if their values are legal, or that the
- combination is supported.
-
- @param width pixel column count; must be zero or greater
- @param height pixel row count; must be zero or greater
- @param ct one of:
- kUnknown_SkColorType, kAlpha_8_SkColorType, kRGB_565_SkColorType,
- kARGB_4444_SkColorType, kRGBA_8888_SkColorType, kRGB_888x_SkColorType,
- kBGRA_8888_SkColorType, kRGBA_1010102_SkColorType, kRGB_101010x_SkColorType,
- kGray_8_SkColorType, kRGBA_F16_SkColorType
- @param at one of:
- kUnknown_SkAlphaType, kOpaque_SkAlphaType, kPremul_SkAlphaType,
- kUnpremul_SkAlphaType
- @param cs range of colors; may be nullptr
- @return created SkImageInfo
- */
- static SkImageInfo Make(int width, int height, SkColorType ct, SkAlphaType at,
+ /** Creates SkImageInfo from integral dimensions width and height, SkColorType ct,
+ SkAlphaType at, and optionally SkColorSpace cs.
+
+ If SkColorSpace cs is nullptr and SkImageInfo is part of drawing source: SkColorSpace
+ defaults to sRGB, mapping into SkSurface SkColorSpace.
+
+ Parameters are not validated to see if their values are legal, or that the
+ combination is supported.
+
+ @param width pixel column count; must be zero or greater
+ @param height pixel row count; must be zero or greater
+ @param ct one of:
+ kUnknown_SkColorType, kAlpha_8_SkColorType, kRGB_565_SkColorType,
+ kARGB_4444_SkColorType, kRGBA_8888_SkColorType, kRGB_888x_SkColorType,
+ kBGRA_8888_SkColorType, kRGBA_1010102_SkColorType, kRGB_101010x_SkColorType,
+ kGray_8_SkColorType, kRGBA_F16_SkColorType
+ @param at one of:
+ kUnknown_SkAlphaType, kOpaque_SkAlphaType, kPremul_SkAlphaType,
+ kUnpremul_SkAlphaType
+ @param cs range of colors; may be nullptr
+ @return created SkImageInfo
+ */
+ static SkImageInfo Make(int width, int height, SkColorType ct, SkAlphaType at,
sk_sp<SkColorSpace> cs = nullptr) {
return SkImageInfo(width, height, ct, at, std::move(cs));
}
- /** Creates SkImageInfo from integral dimensions width and height, kN32_SkColorType,
- SkAlphaType at, and optionally SkColorSpace cs. kN32_SkColorType will equal either
- kBGRA_8888_SkColorType or kRGBA_8888_SkColorType, whichever is optimal.
-
- If SkColorSpace cs is nullptr and SkImageInfo is part of drawing source: SkColorSpace
- defaults to sRGB, mapping into SkSurface SkColorSpace.
-
- Parameters are not validated to see if their values are legal, or that the
- combination is supported.
-
- @param width pixel column count; must be zero or greater
- @param height pixel row count; must be zero or greater
- @param at one of:
- kUnknown_SkAlphaType, kOpaque_SkAlphaType, kPremul_SkAlphaType,
- kUnpremul_SkAlphaType
- @param cs range of colors; may be nullptr
- @return created SkImageInfo
- */
- static SkImageInfo MakeN32(int width, int height, SkAlphaType at,
+ /** Creates SkImageInfo from integral dimensions width and height, kN32_SkColorType,
+ SkAlphaType at, and optionally SkColorSpace cs. kN32_SkColorType will equal either
+ kBGRA_8888_SkColorType or kRGBA_8888_SkColorType, whichever is optimal.
+
+ If SkColorSpace cs is nullptr and SkImageInfo is part of drawing source: SkColorSpace
+ defaults to sRGB, mapping into SkSurface SkColorSpace.
+
+ Parameters are not validated to see if their values are legal, or that the
+ combination is supported.
+
+ @param width pixel column count; must be zero or greater
+ @param height pixel row count; must be zero or greater
+ @param at one of:
+ kUnknown_SkAlphaType, kOpaque_SkAlphaType, kPremul_SkAlphaType,
+ kUnpremul_SkAlphaType
+ @param cs range of colors; may be nullptr
+ @return created SkImageInfo
+ */
+ static SkImageInfo MakeN32(int width, int height, SkAlphaType at,
sk_sp<SkColorSpace> cs = nullptr) {
return Make(width, height, kN32_SkColorType, at, cs);
}
- /** Creates SkImageInfo from integral dimensions width and height, kN32_SkColorType,
- SkAlphaType at, with sRGB SkColorSpace.
+ /** Creates SkImageInfo from integral dimensions width and height, kN32_SkColorType,
+ SkAlphaType at, with sRGB SkColorSpace.
- Parameters are not validated to see if their values are legal, or that the
- combination is supported.
+ Parameters are not validated to see if their values are legal, or that the
+ combination is supported.
- @param width pixel column count; must be zero or greater
- @param height pixel row count; must be zero or greater
- @param at one of:
- kUnknown_SkAlphaType, kOpaque_SkAlphaType, kPremul_SkAlphaType,
- kUnpremul_SkAlphaType
- @return created SkImageInfo
- */
- static SkImageInfo MakeS32(int width, int height, SkAlphaType at);
+ @param width pixel column count; must be zero or greater
+ @param height pixel row count; must be zero or greater
+ @param at one of:
+ kUnknown_SkAlphaType, kOpaque_SkAlphaType, kPremul_SkAlphaType,
+ kUnpremul_SkAlphaType
+ @return created SkImageInfo
+ */
+ static SkImageInfo MakeS32(int width, int height, SkAlphaType at);
- /** Creates SkImageInfo from integral dimensions width and height, kN32_SkColorType,
- kPremul_SkAlphaType, with optional SkColorSpace.
+ /** Creates SkImageInfo from integral dimensions width and height, kN32_SkColorType,
+ kPremul_SkAlphaType, with optional SkColorSpace.
- If SkColorSpace cs is nullptr and SkImageInfo is part of drawing source: SkColorSpace
- defaults to sRGB, mapping into SkSurface SkColorSpace.
+ If SkColorSpace cs is nullptr and SkImageInfo is part of drawing source: SkColorSpace
+ defaults to sRGB, mapping into SkSurface SkColorSpace.
- Parameters are not validated to see if their values are legal, or that the
- combination is supported.
+ Parameters are not validated to see if their values are legal, or that the
+ combination is supported.
- @param width pixel column count; must be zero or greater
- @param height pixel row count; must be zero or greater
- @param cs range of colors; may be nullptr
- @return created SkImageInfo
- */
- static SkImageInfo MakeN32Premul(int width, int height, sk_sp<SkColorSpace> cs = nullptr) {
+ @param width pixel column count; must be zero or greater
+ @param height pixel row count; must be zero or greater
+ @param cs range of colors; may be nullptr
+ @return created SkImageInfo
+ */
+ static SkImageInfo MakeN32Premul(int width, int height, sk_sp<SkColorSpace> cs = nullptr) {
return Make(width, height, kN32_SkColorType, kPremul_SkAlphaType, cs);
}
- /** Creates SkImageInfo from integral dimensions width and height, kN32_SkColorType,
- kPremul_SkAlphaType, with SkColorSpace set to nullptr.
+ /** Creates SkImageInfo from integral dimensions width and height, kN32_SkColorType,
+ kPremul_SkAlphaType, with SkColorSpace set to nullptr.
- If SkImageInfo is part of drawing source: SkColorSpace defaults to sRGB, mapping
- into SkSurface SkColorSpace.
+ If SkImageInfo is part of drawing source: SkColorSpace defaults to sRGB, mapping
+ into SkSurface SkColorSpace.
- Parameters are not validated to see if their values are legal, or that the
- combination is supported.
+ Parameters are not validated to see if their values are legal, or that the
+ combination is supported.
- @param size width and height, each must be zero or greater
- @return created SkImageInfo
- */
- static SkImageInfo MakeN32Premul(const SkISize& size) {
+ @param size width and height, each must be zero or greater
+ @return created SkImageInfo
+ */
+ static SkImageInfo MakeN32Premul(const SkISize& size) {
return MakeN32Premul(size.width(), size.height());
}
- /** Creates SkImageInfo from integral dimensions width and height, kAlpha_8_SkColorType,
- kPremul_SkAlphaType, with SkColorSpace set to nullptr.
+ /** Creates SkImageInfo from integral dimensions width and height, kAlpha_8_SkColorType,
+ kPremul_SkAlphaType, with SkColorSpace set to nullptr.
- @param width pixel column count; must be zero or greater
- @param height pixel row count; must be zero or greater
- @return created SkImageInfo
- */
- static SkImageInfo MakeA8(int width, int height) {
+ @param width pixel column count; must be zero or greater
+ @param height pixel row count; must be zero or greater
+ @return created SkImageInfo
+ */
+ static SkImageInfo MakeA8(int width, int height) {
return Make(width, height, kAlpha_8_SkColorType, kPremul_SkAlphaType, nullptr);
}
- /** Creates SkImageInfo from integral dimensions width and height, kUnknown_SkColorType,
- kUnknown_SkAlphaType, with SkColorSpace set to nullptr.
+ /** Creates SkImageInfo from integral dimensions width and height, kUnknown_SkColorType,
+ kUnknown_SkAlphaType, with SkColorSpace set to nullptr.
- Returned SkImageInfo as part of source does not draw, and as part of destination
- can not be drawn to.
+ Returned SkImageInfo as part of source does not draw, and as part of destination
+ can not be drawn to.
- @param width pixel column count; must be zero or greater
- @param height pixel row count; must be zero or greater
- @return created SkImageInfo
- */
- static SkImageInfo MakeUnknown(int width, int height) {
+ @param width pixel column count; must be zero or greater
+ @param height pixel row count; must be zero or greater
+ @return created SkImageInfo
+ */
+ static SkImageInfo MakeUnknown(int width, int height) {
return Make(width, height, kUnknown_SkColorType, kUnknown_SkAlphaType, nullptr);
}
- /** Creates SkImageInfo from integral dimensions width and height set to zero,
- kUnknown_SkColorType, kUnknown_SkAlphaType, with SkColorSpace set to nullptr.
+ /** Creates SkImageInfo from integral dimensions width and height set to zero,
+ kUnknown_SkColorType, kUnknown_SkAlphaType, with SkColorSpace set to nullptr.
- Returned SkImageInfo as part of source does not draw, and as part of destination
- can not be drawn to.
+ Returned SkImageInfo as part of source does not draw, and as part of destination
+ can not be drawn to.
- @return created SkImageInfo
- */
- static SkImageInfo MakeUnknown() {
+ @return created SkImageInfo
+ */
+ static SkImageInfo MakeUnknown() {
return MakeUnknown(0, 0);
}
- /** Returns pixel count in each row.
+ /** Returns pixel count in each row.
- @return pixel width
- */
- int width() const { return fWidth; }
+ @return pixel width
+ */
+ int width() const { return fWidth; }
- /** Returns pixel row count.
+ /** Returns pixel row count.
- @return pixel height
- */
- int height() const { return fHeight; }
+ @return pixel height
+ */
+ int height() const { return fHeight; }
- /** Returns SkColorType, one of:
- kUnknown_SkColorType, kAlpha_8_SkColorType, kRGB_565_SkColorType,
- kARGB_4444_SkColorType, kRGBA_8888_SkColorType, kRGB_888x_SkColorType,
- kBGRA_8888_SkColorType, kRGBA_1010102_SkColorType, kRGB_101010x_SkColorType,
- kGray_8_SkColorType, kRGBA_F16_SkColorType.
+ /** Returns SkColorType, one of:
+ kUnknown_SkColorType, kAlpha_8_SkColorType, kRGB_565_SkColorType,
+ kARGB_4444_SkColorType, kRGBA_8888_SkColorType, kRGB_888x_SkColorType,
+ kBGRA_8888_SkColorType, kRGBA_1010102_SkColorType, kRGB_101010x_SkColorType,
+ kGray_8_SkColorType, kRGBA_F16_SkColorType.
- @return SkColorType
- */
- SkColorType colorType() const { return fColorType; }
+ @return SkColorType
+ */
+ SkColorType colorType() const { return fColorType; }
- /** Returns SkAlphaType, one of:
- kUnknown_SkAlphaType, kOpaque_SkAlphaType, kPremul_SkAlphaType,
- kUnpremul_SkAlphaType.
+ /** Returns SkAlphaType, one of:
+ kUnknown_SkAlphaType, kOpaque_SkAlphaType, kPremul_SkAlphaType,
+ kUnpremul_SkAlphaType.
- @return SkAlphaType
- */
- SkAlphaType alphaType() const { return fAlphaType; }
+ @return SkAlphaType
+ */
+ SkAlphaType alphaType() const { return fAlphaType; }
- /** Returns SkColorSpace, the range of colors. The reference count of
- SkColorSpace is unchanged. The returned SkColorSpace is immutable.
+ /** Returns SkColorSpace, the range of colors. The reference count of
+ SkColorSpace is unchanged. The returned SkColorSpace is immutable.
- @return SkColorSpace, or nullptr
- */
- SkColorSpace* colorSpace() const { return fColorSpace.get(); }
+ @return SkColorSpace, or nullptr
+ */
+ SkColorSpace* colorSpace() const { return fColorSpace.get(); }
- /** Returns smart pointer to SkColorSpace, the range of colors. The smart pointer
- tracks the number of objects sharing this SkColorSpace reference so the memory
- is released when the owners destruct.
+ /** Returns smart pointer to SkColorSpace, the range of colors. The smart pointer
+ tracks the number of objects sharing this SkColorSpace reference so the memory
+ is released when the owners destruct.
- The returned SkColorSpace is immutable.
+ The returned SkColorSpace is immutable.
- @return SkColorSpace wrapped in a smart pointer
- */
- sk_sp<SkColorSpace> refColorSpace() const { return fColorSpace; }
+ @return SkColorSpace wrapped in a smart pointer
+ */
+ sk_sp<SkColorSpace> refColorSpace() const { return fColorSpace; }
- /** Returns if SkImageInfo describes an empty area of pixels by checking if either
- width or height is zero or smaller.
+ /** Returns if SkImageInfo describes an empty area of pixels by checking if either
+ width or height is zero or smaller.
- @return true if either dimension is zero or smaller
- */
- bool isEmpty() const { return fWidth <= 0 || fHeight <= 0; }
+ @return true if either dimension is zero or smaller
+ */
+ bool isEmpty() const { return fWidth <= 0 || fHeight <= 0; }
- /** Returns true if SkAlphaType is set to hint that all pixels are opaque; their
- color alpha value is implicitly or explicitly 1.0. If true, and all pixels are
- not opaque, Skia may draw incorrectly.
+ /** Returns true if SkAlphaType is set to hint that all pixels are opaque; their
+ color alpha value is implicitly or explicitly 1.0. If true, and all pixels are
+ not opaque, Skia may draw incorrectly.
- Does not check if SkColorType allows alpha, or if any pixel value has
- transparency.
+ Does not check if SkColorType allows alpha, or if any pixel value has
+ transparency.
- @return true if SkAlphaType is kOpaque_SkAlphaType
- */
- bool isOpaque() const {
+ @return true if SkAlphaType is kOpaque_SkAlphaType
+ */
+ bool isOpaque() const {
return SkAlphaTypeIsOpaque(fAlphaType);
}
- /** Returns SkISize { width(), height() }.
+ /** Returns SkISize { width(), height() }.
- @return integral size of width() and height()
- */
- SkISize dimensions() const { return SkISize::Make(fWidth, fHeight); }
+ @return integral size of width() and height()
+ */
+ SkISize dimensions() const { return SkISize::Make(fWidth, fHeight); }
- /** Returns SkIRect { 0, 0, width(), height() }.
+ /** Returns SkIRect { 0, 0, width(), height() }.
- @return integral rectangle from origin to width() and height()
- */
- SkIRect bounds() const { return SkIRect::MakeWH(fWidth, fHeight); }
+ @return integral rectangle from origin to width() and height()
+ */
+ SkIRect bounds() const { return SkIRect::MakeWH(fWidth, fHeight); }
- /** Returns true if associated SkColorSpace is not nullptr, and SkColorSpace gamma
- is approximately the same as sRGB.
- This includes the
+ /** Returns true if associated SkColorSpace is not nullptr, and SkColorSpace gamma
+ is approximately the same as sRGB.
+ This includes the
- @return true if SkColorSpace gamma is approximately the same as sRGB
- */
- bool gammaCloseToSRGB() const {
+ @return true if SkColorSpace gamma is approximately the same as sRGB
+ */
+ bool gammaCloseToSRGB() const {
return fColorSpace && fColorSpace->gammaCloseToSRGB();
}
- /** Creates SkImageInfo with the same SkColorType, SkColorSpace, and SkAlphaType,
- with dimensions set to width and height.
+ /** Creates SkImageInfo with the same SkColorType, SkColorSpace, and SkAlphaType,
+ with dimensions set to width and height.
- @param newWidth pixel column count; must be zero or greater
- @param newHeight pixel row count; must be zero or greater
- @return created SkImageInfo
- */
- SkImageInfo makeWH(int newWidth, int newHeight) const {
+ @param newWidth pixel column count; must be zero or greater
+ @param newHeight pixel row count; must be zero or greater
+ @return created SkImageInfo
+ */
+ SkImageInfo makeWH(int newWidth, int newHeight) const {
return Make(newWidth, newHeight, fColorType, fAlphaType, fColorSpace);
}
- /** Creates SkImageInfo with same SkColorType, SkColorSpace, width, and height,
- with SkAlphaType set to newAlphaType.
+ /** Creates SkImageInfo with same SkColorType, SkColorSpace, width, and height,
+ with SkAlphaType set to newAlphaType.
- Created SkImageInfo contains newAlphaType even if it is incompatible with
- SkColorType, in which case SkAlphaType in SkImageInfo is ignored.
+ Created SkImageInfo contains newAlphaType even if it is incompatible with
+ SkColorType, in which case SkAlphaType in SkImageInfo is ignored.
- @param newAlphaType one of:
- kUnknown_SkAlphaType, kOpaque_SkAlphaType, kPremul_SkAlphaType,
- kUnpremul_SkAlphaType
- @return created SkImageInfo
- */
- SkImageInfo makeAlphaType(SkAlphaType newAlphaType) const {
+ @param newAlphaType one of:
+ kUnknown_SkAlphaType, kOpaque_SkAlphaType, kPremul_SkAlphaType,
+ kUnpremul_SkAlphaType
+ @return created SkImageInfo
+ */
+ SkImageInfo makeAlphaType(SkAlphaType newAlphaType) const {
return Make(fWidth, fHeight, fColorType, newAlphaType, fColorSpace);
}
- /** Creates SkImageInfo with same SkAlphaType, SkColorSpace, width, and height,
- with SkColorType set to newColorType.
-
- @param newColorType one of:
- kUnknown_SkColorType, kAlpha_8_SkColorType, kRGB_565_SkColorType,
- kARGB_4444_SkColorType, kRGBA_8888_SkColorType, kRGB_888x_SkColorType,
- kBGRA_8888_SkColorType, kRGBA_1010102_SkColorType, kRGB_101010x_SkColorType,
- kGray_8_SkColorType, kRGBA_F16_SkColorType
- @return created SkImageInfo
- */
- SkImageInfo makeColorType(SkColorType newColorType) const {
+ /** Creates SkImageInfo with same SkAlphaType, SkColorSpace, width, and height,
+ with SkColorType set to newColorType.
+
+ @param newColorType one of:
+ kUnknown_SkColorType, kAlpha_8_SkColorType, kRGB_565_SkColorType,
+ kARGB_4444_SkColorType, kRGBA_8888_SkColorType, kRGB_888x_SkColorType,
+ kBGRA_8888_SkColorType, kRGBA_1010102_SkColorType, kRGB_101010x_SkColorType,
+ kGray_8_SkColorType, kRGBA_F16_SkColorType
+ @return created SkImageInfo
+ */
+ SkImageInfo makeColorType(SkColorType newColorType) const {
return Make(fWidth, fHeight, newColorType, fAlphaType, fColorSpace);
}
- /** Creates SkImageInfo with same SkAlphaType, SkColorType, width, and height,
- with SkColorSpace set to cs.
+ /** Creates SkImageInfo with same SkAlphaType, SkColorType, width, and height,
+ with SkColorSpace set to cs.
- @param cs range of colors; may be nullptr
- @return created SkImageInfo
- */
- SkImageInfo makeColorSpace(sk_sp<SkColorSpace> cs) const {
+ @param cs range of colors; may be nullptr
+ @return created SkImageInfo
+ */
+ SkImageInfo makeColorSpace(sk_sp<SkColorSpace> cs) const {
return Make(fWidth, fHeight, fColorType, fAlphaType, std::move(cs));
}
- /** Returns number of bytes per pixel required by SkColorType.
- Returns zero if colorType( is kUnknown_SkColorType.
+ /** Returns number of bytes per pixel required by SkColorType.
+ Returns zero if colorType( is kUnknown_SkColorType.
- @return bytes in pixel
- */
- int bytesPerPixel() const;
+ @return bytes in pixel
+ */
+ int bytesPerPixel() const;
- /** Returns bit shift converting row bytes to row pixels.
- Returns zero for kUnknown_SkColorType.
+ /** Returns bit shift converting row bytes to row pixels.
+ Returns zero for kUnknown_SkColorType.
- @return one of: 0, 1, 2, 3; left shift to convert pixels to bytes
- */
- int shiftPerPixel() const;
+ @return one of: 0, 1, 2, 3; left shift to convert pixels to bytes
+ */
+ int shiftPerPixel() const;
- /** Returns minimum bytes per row, computed from pixel width() and SkColorType, which
- specifies bytesPerPixel(). SkBitmap maximum value for row bytes must be representable
- as a positive value in a 32-bit signed integer.
+ /** Returns minimum bytes per row, computed from pixel width() and SkColorType, which
+ specifies bytesPerPixel(). SkBitmap maximum value for row bytes must be representable
+ as a positive value in a 32-bit signed integer.
- @return width() times bytesPerPixel() as unsigned 64-bit integer
- */
- uint64_t minRowBytes64() const {
+ @return width() times bytesPerPixel() as unsigned 64-bit integer
+ */
+ uint64_t minRowBytes64() const {
return sk_64_mul(fWidth, this->bytesPerPixel());
}
- /** Returns minimum bytes per row, computed from pixel width() and SkColorType, which
- specifies bytesPerPixel(). SkBitmap maximum value for row bytes must be representable
- as a positive value in a 32-bit signed integer.
+ /** Returns minimum bytes per row, computed from pixel width() and SkColorType, which
+ specifies bytesPerPixel(). SkBitmap maximum value for row bytes must be representable
+ as a positive value in a 32-bit signed integer.
- @return width() times bytesPerPixel() as signed 32-bit integer
- */
- size_t minRowBytes() const {
+ @return width() times bytesPerPixel() as signed 32-bit integer
+ */
+ size_t minRowBytes() const {
uint64_t minRowBytes = this->minRowBytes64();
if (!sk_64_isS32(minRowBytes)) {
return 0;
@@ -553,87 +557,87 @@ public:
return sk_64_asS32(minRowBytes);
}
- /** Returns byte offset of pixel from pixel base address.
+ /** Returns byte offset of pixel from pixel base address.
- Asserts in debug build if x or y is outside of bounds. Does not assert if
- rowBytes is smaller than minRowBytes(), even though result may be incorrect.
+ Asserts in debug build if x or y is outside of bounds. Does not assert if
+ rowBytes is smaller than minRowBytes(), even though result may be incorrect.
- @param x column index, zero or greater, and less than width()
- @param y row index, zero or greater, and less than height()
- @param rowBytes size of pixel row or larger
- @return offset within pixel array
- */
- size_t computeOffset(int x, int y, size_t rowBytes) const;
+ @param x column index, zero or greater, and less than width()
+ @param y row index, zero or greater, and less than height()
+ @param rowBytes size of pixel row or larger
+ @return offset within pixel array
+ */
+ size_t computeOffset(int x, int y, size_t rowBytes) const;
- /** Compares SkImageInfo with other, and returns true if width, height, SkColorType,
- SkAlphaType, and SkColorSpace are equivalent.
+ /** Compares SkImageInfo with other, and returns true if width, height, SkColorType,
+ SkAlphaType, and SkColorSpace are equivalent.
- @param other SkImageInfo to compare
- @return true if SkImageInfo equals other
- */
- bool operator==(const SkImageInfo& other) const {
+ @param other SkImageInfo to compare
+ @return true if SkImageInfo equals other
+ */
+ bool operator==(const SkImageInfo& other) const {
return fWidth == other.fWidth && fHeight == other.fHeight &&
fColorType == other.fColorType && fAlphaType == other.fAlphaType &&
SkColorSpace::Equals(fColorSpace.get(), other.fColorSpace.get());
}
- /** Compares SkImageInfo with other, and returns true if width, height, SkColorType,
- SkAlphaType, and SkColorSpace are equivalent.
+ /** Compares SkImageInfo with other, and returns true if width, height, SkColorType,
+ SkAlphaType, and SkColorSpace are equivalent.
- @param other SkImageInfo to compare
- @return true if SkImageInfo is not equal to other
- */
- bool operator!=(const SkImageInfo& other) const {
+ @param other SkImageInfo to compare
+ @return true if SkImageInfo is not equal to other
+ */
+ bool operator!=(const SkImageInfo& other) const {
return !(*this == other);
}
- /** Returns storage required by pixel array, given SkImageInfo dimensions, SkColorType,
- and rowBytes. rowBytes is assumed to be at least as large as minRowBytes().
+ /** Returns storage required by pixel array, given SkImageInfo dimensions, SkColorType,
+ and rowBytes. rowBytes is assumed to be at least as large as minRowBytes().
- Returns zero if height is zero.
- Returns SK_MaxSizeT if answer exceeds the range of size_t.
+ Returns zero if height is zero.
+ Returns SK_MaxSizeT if answer exceeds the range of size_t.
- @param rowBytes size of pixel row or larger
- @return memory required by pixel buffer
- */
- size_t computeByteSize(size_t rowBytes) const;
+ @param rowBytes size of pixel row or larger
+ @return memory required by pixel buffer
+ */
+ size_t computeByteSize(size_t rowBytes) const;
- /** Returns storage required by pixel array, given SkImageInfo dimensions, and
- SkColorType. Uses minRowBytes() to compute bytes for pixel row.
+ /** Returns storage required by pixel array, given SkImageInfo dimensions, and
+ SkColorType. Uses minRowBytes() to compute bytes for pixel row.
- Returns zero if height is zero.
- Returns SK_MaxSizeT if answer exceeds the range of size_t.
+ Returns zero if height is zero.
+ Returns SK_MaxSizeT if answer exceeds the range of size_t.
- @return least memory required by pixel buffer
- */
- size_t computeMinByteSize() const {
+ @return least memory required by pixel buffer
+ */
+ size_t computeMinByteSize() const {
return this->computeByteSize(this->minRowBytes());
}
- /** Returns true if byteSize equals SK_MaxSizeT. computeByteSize() and
- computeMinByteSize() return SK_MaxSizeT if size_t can not hold buffer size.
+ /** Returns true if byteSize equals SK_MaxSizeT. computeByteSize() and
+ computeMinByteSize() return SK_MaxSizeT if size_t can not hold buffer size.
- @param byteSize result of computeByteSize() or computeMinByteSize()
- @return true if computeByteSize() or computeMinByteSize() result exceeds size_t
- */
- static bool ByteSizeOverflowed(size_t byteSize) {
+ @param byteSize result of computeByteSize() or computeMinByteSize()
+ @return true if computeByteSize() or computeMinByteSize() result exceeds size_t
+ */
+ static bool ByteSizeOverflowed(size_t byteSize) {
return SK_MaxSizeT == byteSize;
}
- /** Returns true if rowBytes is smaller than width times pixel size.
+ /** Returns true if rowBytes is smaller than width times pixel size.
- @param rowBytes size of pixel row or larger
- @return true if rowBytes is large enough to contain pixel row
- */
- bool validRowBytes(size_t rowBytes) const {
+ @param rowBytes size of pixel row or larger
+ @return true if rowBytes is large enough to contain pixel row
+ */
+ bool validRowBytes(size_t rowBytes) const {
uint64_t minRB = sk_64_mul(fWidth, this->bytesPerPixel());
return rowBytes >= minRB;
}
- /** Creates an empty SkImageInfo with kUnknown_SkColorType, kUnknown_SkAlphaType,
- a width and height of zero, and no SkColorSpace.
- */
- void reset() {
+ /** Creates an empty SkImageInfo with kUnknown_SkColorType, kUnknown_SkAlphaType,
+ a width and height of zero, and no SkColorSpace.
+ */
+ void reset() {
fColorSpace = nullptr;
fWidth = 0;
fHeight = 0;
@@ -641,10 +645,10 @@ public:
fAlphaType = kUnknown_SkAlphaType;
}
- /** Asserts if internal values are illegal or inconsistent. Only available if
- SK_DEBUG is defined at compile time.
- */
- SkDEBUGCODE(void validate() const;)
+ /** Asserts if internal values are illegal or inconsistent. Only available if
+ SK_DEBUG is defined at compile time.
+ */
+ SkDEBUGCODE(void validate() const;)
private:
sk_sp<SkColorSpace> fColorSpace;