1/*
2 * Copyright 2011 Google Inc.
3 *
4 * Use of this source code is governed by a BSD-style license that can be
5 * found in the LICENSE file.
6 */
7
8#ifndef SkPixelInfo_DEFINED
9#define SkPixelInfo_DEFINED
10
11#include "SkImageInfo.h"
12
13struct SkPixelInfo {
14    SkColorType fColorType;
15    SkAlphaType fAlphaType;
16    size_t      fRowBytes;
17
18    static bool CopyPixels(const SkImageInfo& dstInfo, void* dstPixels, size_t dstRowBytes,
19                           const SkImageInfo& srcInfo, const void* srcPixels, size_t srcRowBytes,
20                           SkColorTable* srcCTable = NULL);
21};
22
23struct SkDstPixelInfo : SkPixelInfo {
24    void* fPixels;
25};
26
27struct SkSrcPixelInfo : SkPixelInfo {
28    const void* fPixels;
29
30    // Guaranteed to work even if src.fPixels and dst.fPixels are the same
31    // (but not if they overlap partially)
32    bool convertPixelsTo(SkDstPixelInfo* dst, int width, int height) const;
33};
34
35#endif
36