#Topic Image_Info
#Alias Image_Info_Reference

#Subtopic Overview
    #Subtopic Subtopics
    #Populate
    ##
##

#Subtopic Constants
#Populate
##

# ------------------------------------------------------------------------------
#Subtopic Alpha_Type
#Line # incomplete ##
#Alias Alpha_Type
#Alias Alpha_Types
#Enum SkAlphaType
#Line # incomplete ##

#Code
    enum SkAlphaType {
        kUnknown_SkAlphaType,
        kOpaque_SkAlphaType,
        kPremul_SkAlphaType,
        kUnpremul_SkAlphaType,
        kLastEnum_SkAlphaType = kUnpremul_SkAlphaType,
    };
##

Describes how to interpret the alpha component of a pixel.

#Const kUnknown_SkAlphaType 0
##
#Const kOpaque_SkAlphaType 1
All pixels are stored as opaque.
##
#Const kPremul_SkAlphaType 2
All pixels have their alpha premultiplied in their color components.
This is the natural format for the rendering target pixels.
##
#Const kUnpremul_SkAlphaType 3
All pixels have their color components stored without any regard to the
alpha. e.g. this is the default configuration for PNG images.
kUnpremul_SkAlphaType is supported only for input images. Rendering cannot
generate this on output.
##

#Example
// incomplete
##

#SeeAlso incomplete

#Enum SkAlphaType ##
#Subtopic Alpha_Type ##

# ------------------------------------------------------------------------------
#Subtopic Color_Type
#Line # incomplete ##
#Alias Native_Color_Type
#Substitute native SkColorType
#Alias Color_Type
#Alias Color_Types
#Enum SkColorType
#Line # incomplete ##

#Code
    enum SkColorType {
        kUnknown_SkColorType,
        kAlpha_8_SkColorType,
        kRGB_565_SkColorType,
        kARGB_4444_SkColorType,
        kRGBA_8888_SkColorType,
        kBGRA_8888_SkColorType,
        kGray_8_SkColorType,
        kRGBA_F16_SkColorType,
        kLastEnum_SkColorType = kRGBA_F16_SkColorType,
        kN32_SkColorType = kBGRA_8888_SkColorType,
        kN32_SkColorType = kRGBA_8888_SkColorType,
    };
##

Describes how to interpret the components of a pixel.
kN32_SkColorType is an alias for whichever 32 bit Color_ARGB format is the "native"
form for skia's blitters. Use this if you don't have a swizzle preference
for 32 bit pixels.

#Const kUnknown_SkColorType 0
##
#Const kAlpha_8_SkColorType 1
##
#Const kRGB_565_SkColorType 2
##
#Const kARGB_4444_SkColorType 3
##
#Const kRGBA_8888_SkColorType 4
##
#Const kRGB_888x_SkColorType 5
##
#Const kBGRA_8888_SkColorType 6
##
#Const kRGBA_1010102_SkColorType 7
##
#Const kRGB_101010x_SkColorType 8
##
#Const kGray_8_SkColorType 9
##
#Const kRGBA_F16_SkColorType 10
##
#ToDo  can be 4 or 6; how to document? ##
#Const kN32_SkColorType 4
##

#Example
// incomplete
##

#SeeAlso incomplete

#Enum SkColorType ##
#Subtopic Color_Type ##

# ------------------------------------------------------------------------------
#Enum SkYUVColorSpace
#Line # incomplete ##

#Code
    enum SkYUVColorSpace {
        kJPEG_SkYUVColorSpace,
        kRec601_SkYUVColorSpace,
        kRec709_SkYUVColorSpace,
        kLastEnum_SkYUVColorSpace = kRec709_SkYUVColorSpace,
    };
##

Describes the color space a YUV pixel.

#Const kJPEG_SkYUVColorSpace 0
Standard JPEG color space.
##
#Const kRec601_SkYUVColorSpace 1
SDTV standard Rec. 601 color space. Uses "studio swing" [16, 235] color
range. See http://en.wikipedia.org/wiki/Rec._601 for details.
##
#Const kRec709_SkYUVColorSpace 2
HDTV standard Rec. 709 color space. Uses "studio swing" [16, 235] color
range. See http://en.wikipedia.org/wiki/Rec._709 for details.
##

#Example
// incomplete
##

#SeeAlso incomplete

#Enum SkYUVColorSpace ##

# ------------------------------------------------------------------------------
#EnumClass SkDestinationSurfaceColorMode
#Line # incomplete ##

#Code
    enum class SkDestinationSurfaceColorMode {
        kLegacy,
        kGammaAndColorSpaceAware,
    };
##

#Const kLegacy 0
##
#Const kGammaAndColorSpaceAware 1
##

#Example
// incomplete
##

#SeeAlso incomplete

#EnumClass SkDestinationSurfaceColorMode ##

# ------------------------------------------------------------------------------

#Struct SkImageInfo

Describe an image's dimensions and pixel type.
Used for both src images and render-targets (surfaces).

#Subtopic Operators
#Populate
##

#Subtopic Member_Functions
#Populate
##

#Subtopic Constructors
#Populate
##

# ------------------------------------------------------------------------------

#Method SkImageInfo()

#In Constructors
#Line # creates with zero dimensions, kUnknown_SkColorType, kUnknown_SkAlphaType ##
#Return incomplete ##

#Example
// incomplete
##

#SeeAlso incomplete

#Method ##

# ------------------------------------------------------------------------------

#Method static SkImageInfo Make(int width, int height, SkColorType ct, SkAlphaType at,
                            sk_sp<SkColorSpace> cs = nullptr)
#In Constructors
#Line # creates Image_Info from dimensions, Color_Type, Alpha_Type, Color_Space ##

#Param width  incomplete ##
#Param height  incomplete ##
#Param ct  incomplete ##
#Param at  incomplete ##
#Param cs  incomplete ##

#Return incomplete ##

#Example
// incomplete
##

#SeeAlso incomplete

#Method ##

# ------------------------------------------------------------------------------

#Method static SkImageInfo MakeN32(int width, int height, SkAlphaType at,
                               sk_sp<SkColorSpace> cs = nullptr)
#In Constructors
#Line # creates Image_Info with Native_Color_Type ##

Sets colortype to kN32_SkColorType.

#Param width  incomplete ##
#Param height  incomplete ##
#Param at  incomplete ##
#Param cs  incomplete ##

#Return incomplete ##

#Example
// incomplete
##

#SeeAlso incomplete

#Method ##

# ------------------------------------------------------------------------------

#Method static SkImageInfo MakeS32(int width, int height, SkAlphaType at)

#In Constructors
#Line # creates Image_Info with Native_Color_Type, sRGB Color_Space ##
Creates Image_Info marked as sRGB with kN32_SkColorType swizzle.

#Param width  incomplete ##
#Param height  incomplete ##
#Param at  incomplete ##

#Return incomplete ##

#Example
// incomplete
##

#SeeAlso incomplete

#Method ##

# ------------------------------------------------------------------------------

#Method static SkImageInfo MakeN32Premul(int width, int height, sk_sp<SkColorSpace> cs = nullptr)

#In Constructors
#Line # creates Image_Info with Native_Color_Type, kPremul_SkAlphaType ##
Sets colortype to kN32_SkColorType, and the alphatype to premul.

#Param width  incomplete ##
#Param height  incomplete ##
#Param cs  incomplete ##

#Return incomplete ##

#Example
// incomplete
##

#SeeAlso incomplete

#Method ##

# ------------------------------------------------------------------------------

#Method static SkImageInfo MakeN32Premul(const SkISize& size)

#In Constructors
#Param size  incomplete ##

#Return incomplete ##

#Example
// incomplete
##

#SeeAlso incomplete

#Method ##

# ------------------------------------------------------------------------------

#Method static SkImageInfo MakeA8(int width, int height)

#In Constructors
#Line # creates Image_Info with kAlpha_8_SkColorType, kPremul_SkAlphaType ##
#Param width  incomplete ##
#Param height  incomplete ##

#Return incomplete ##

#Example
// incomplete
##

#SeeAlso incomplete

#Method ##

# ------------------------------------------------------------------------------

#Method static SkImageInfo MakeUnknown(int width, int height)

#In Constructors
#Line # creates Image_Info with kUnknown_SkColorType, kUnknown_SkAlphaType ##
#Param width  incomplete ##
#Param height  incomplete ##

#Return incomplete ##

#Example
// incomplete
##

#SeeAlso incomplete

#Method ##

# ------------------------------------------------------------------------------

#Method static SkImageInfo MakeUnknown()

#In Constructors
#Return incomplete ##

#Example
// incomplete
##

#SeeAlso incomplete

#Method ##


# ------------------------------------------------------------------------------

#Method int width() const

#Line # incomplete ##
#Return incomplete ##

#Example
// incomplete
##

#SeeAlso incomplete

#Method ##

# ------------------------------------------------------------------------------

#Method int height() const

#Line # incomplete ##
#Return incomplete ##

#Example
// incomplete
##

#SeeAlso incomplete

#Method ##

# ------------------------------------------------------------------------------

#Method SkColorType colorType() const

#Line # incomplete ##
#Return incomplete ##

#Example
// incomplete
##

#SeeAlso incomplete

#Method ##

# ------------------------------------------------------------------------------

#Method SkAlphaType alphaType() const

#Line # incomplete ##
#Return incomplete ##

#Example
// incomplete
##

#SeeAlso incomplete

#Method ##

# ------------------------------------------------------------------------------

#Method SkColorSpace* colorSpace() const

#Line # incomplete ##
#Return incomplete ##

#Example
// incomplete
##

#SeeAlso incomplete

#Method ##

# ------------------------------------------------------------------------------

#Method sk_sp<SkColorSpace> refColorSpace() const

#Line # incomplete ##
#Return incomplete ##

#Example
// incomplete
##

#SeeAlso incomplete

#Method ##

# ------------------------------------------------------------------------------

#Method bool isEmpty() const

#Line # incomplete ##
#Return incomplete ##

#Example
// incomplete
##

#SeeAlso incomplete

#Method ##

# ------------------------------------------------------------------------------

#Method bool isOpaque() const

#Line # incomplete ##
#Return incomplete ##

#Example
// incomplete
##

#SeeAlso incomplete

#Method ##

# ------------------------------------------------------------------------------

#Method SkISize dimensions() const

#Line # incomplete ##
#Return incomplete ##

#Example
// incomplete
##

#SeeAlso incomplete

#Method ##

# ------------------------------------------------------------------------------

#Method SkIRect bounds() const

#Line # incomplete ##
#Return incomplete ##

#Example
// incomplete
##

#SeeAlso incomplete

#Method ##

# ------------------------------------------------------------------------------

#Method bool gammaCloseToSRGB() const

#Line # incomplete ##
#Return incomplete ##

#Example
// incomplete
##

#SeeAlso incomplete

#Method ##

# ------------------------------------------------------------------------------

#Method SkImageInfo makeWH(int newWidth, int newHeight) const

#Line # creates Image_Info with changed dimensions ##
Creates Image_Info with the same colortype and alphatype as this info,
but with the specified width and height.

#Param newWidth  incomplete ##
#Param newHeight  incomplete ##

#Return incomplete ##

#Example
// incomplete
##

#SeeAlso incomplete

#Method ##

# ------------------------------------------------------------------------------

#Method SkImageInfo makeAlphaType(SkAlphaType newAlphaType) const

#Line # creates Image_Info with changed Alpha_Type ##
#Param newAlphaType  incomplete ##

#Return incomplete ##

#Example
// incomplete
##

#SeeAlso incomplete

#Method ##

# ------------------------------------------------------------------------------

#Method SkImageInfo makeColorType(SkColorType newColorType) const

#Line # creates Image_Info with changed Color_Type ##
#Param newColorType  incomplete ##

#Return incomplete ##

#Example
// incomplete
##

#SeeAlso incomplete

#Method ##

# ------------------------------------------------------------------------------

#Method SkImageInfo makeColorSpace(sk_sp<SkColorSpace> cs) const

#Line # creates Image_Info with changed Color_Space ##
#Param cs  incomplete ##

#Return incomplete ##

#Example
// incomplete
##

#SeeAlso incomplete

#Method ##

# ------------------------------------------------------------------------------

#Method int bytesPerPixel() const

#Line # incomplete ##
#Return incomplete ##

#Example
// incomplete
##

#SeeAlso incomplete

#Method ##

# ------------------------------------------------------------------------------

#Method int shiftPerPixel() const

#Line # incomplete ##
#Return incomplete ##

#Example
// incomplete
##

#SeeAlso incomplete

#Method ##

# ------------------------------------------------------------------------------

#Method uint64_t minRowBytes64() const

#Line # incomplete ##
#Return incomplete ##

#Example
// incomplete
##

#SeeAlso incomplete

#Method ##

# ------------------------------------------------------------------------------

#Method size_t minRowBytes() const

#Line # incomplete ##
#Return incomplete ##

#Example
// incomplete
##

#SeeAlso incomplete

#Method ##

# ------------------------------------------------------------------------------

#Method size_t computeOffset(int x, int y, size_t rowBytes) const

#Line # incomplete ##
#Param x  incomplete ##
#Param y  incomplete ##
#Param rowBytes  incomplete ##

#Return incomplete ##

#Example
// incomplete
##

#SeeAlso incomplete

#Method ##

# ------------------------------------------------------------------------------

#Method bool operator==(const SkImageInfo& other)_const

#Line # incomplete ##
#Param other  incomplete ##

#Return incomplete ##

#Example
// incomplete
##

#SeeAlso incomplete

#Method ##

# ------------------------------------------------------------------------------

#Method bool operator!=(const SkImageInfo& other)_const

#Line # incomplete ##
#Param other  incomplete ##

#Return incomplete ##

#Example
// incomplete
##

#SeeAlso incomplete

#Method ##

# ------------------------------------------------------------------------------

#Method void unflatten(SkReadBuffer& buffer)

#Line # incomplete ##
#Param buffer  incomplete ##

#Example
// incomplete
##

#SeeAlso incomplete

#Method ##

# ------------------------------------------------------------------------------

#Method void flatten(SkWriteBuffer& buffer) const

#Line # incomplete ##
#Param buffer  incomplete ##

#Example
// incomplete
##

#SeeAlso incomplete

#Method ##

# ------------------------------------------------------------------------------

#Method size_t computeByteSize(size_t rowBytes) const

#Line # incomplete ##
Returns the size (in bytes) of the image buffer that this info needs, given the specified
rowBytes. The rowBytes must be >= this->minRowBytes().
if (height == 0) {
return 0;
} else {
return (height - 1) * rowBytes + width * bytes_per_pixel.

If the calculation overflows this returns SK_MaxSizeT.

#Param rowBytes  incomplete ##

#Return incomplete ##

#Example
// incomplete
##

#SeeAlso incomplete

#Method ##

# ------------------------------------------------------------------------------

#Method size_t computeMinByteSize() const

#Line # incomplete ##
Returns the minimum size (in bytes) of the image buffer that this info needs.
If the calculation overflows, or if the height is 0, this returns 0.

#Return incomplete ##

#Example
// incomplete
##

#SeeAlso incomplete

#Method ##

# ------------------------------------------------------------------------------

#Method static bool ByteSizeOverflowed(size_t byteSize)

#Line # incomplete ##
Returns true if the result of computeByteSize (or computeMinByteSize) overflowed

#Param byteSize  incomplete ##

#Return incomplete ##

#Example
// incomplete
##

#SeeAlso incomplete

#Method ##

# ------------------------------------------------------------------------------

#Method bool validRowBytes(size_t rowBytes) const

#Line # incomplete ##
#Param rowBytes  incomplete ##

#Return incomplete ##

#Example
// incomplete
##

#SeeAlso incomplete

#Method ##

# ------------------------------------------------------------------------------

#Method void reset()

#Line # incomplete ##
#Example
// incomplete
##

#SeeAlso incomplete

#Method ##

# ------------------------------------------------------------------------------

#Method void validate() const

#Line # incomplete ##
#Example
// incomplete
##

#SeeAlso incomplete

#Method ##

#Struct SkImageInfo ##

#Topic Image_Info ##