blob: 9e0fcab0e2e96bd4338776cc9d1e1df605757801 [file] [log] [blame]
/*
* Copyright 2013 Google Inc.
*
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
#ifndef SkAlpha_DEFINED
#define SkAlpha_DEFINED
#include "SkTypes.h"
/**
* Describes how to interpret the alpha compoent of a pixel.
*/
enum SkAlphaType {
/**
* All pixels should be treated as opaque, regardless of the value stored
* in their alpha field. Used for legacy images that wrote 0 or garbarge
* in their alpha field, but intended the RGB to be treated as opaque.
*/
kIgnore_SkAlphaType,
/**
* All pixels are stored as opaque. This differs slightly from kIgnore in
* that kOpaque has correct "opaque" values stored in the pixels, while
* kIgnore may not, but in both cases the caller should treat the pixels
* as opaque.
*/
kOpaque_SkAlphaType,
/**
* All pixels have their alpha premultiplied in their color components.
* This is the natural format for the rendering target pixels.
*/
kPremul_SkAlphaType,
/**
* All pixels have their color components stored without any regard to the
* alpha. e.g. this is the default configuration for PNG images.
*
* This alpha-type is ONLY supported for input images. Rendering cannot
* generate this on output.
*/
kUnpremul_SkAlphaType,
kLastEnum_SkAlphaType = kUnpremul_SkAlphaType
};
#endif