1fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot/*
2fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot * Copyright 2014 Google Inc.
3fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot *
4fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot * Use of this source code is governed by a BSD-style license that can be
5fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot * found in the LICENSE file.
6fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot */
7fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot
8fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot#ifndef SkCanvasPriv_DEFINED
9fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot#define SkCanvasPriv_DEFINED
10fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot
11fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot#include "SkCanvas.h"
12fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot
13fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robotclass SkReadBuffer;
14fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robotclass SkWriteBuffer;
15fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot
16fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robotclass SkAutoCanvasMatrixPaint : SkNoncopyable {
17fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robotpublic:
18fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot    SkAutoCanvasMatrixPaint(SkCanvas*, const SkMatrix*, const SkPaint*, const SkRect& bounds);
19fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot    ~SkAutoCanvasMatrixPaint();
20fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot
21fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robotprivate:
22fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot    SkCanvas*   fCanvas;
23fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot    int         fSaveCount;
24fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot};
25fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot
26fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robotclass SkCanvasPriv {
27fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robotpublic:
28fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot    // The lattice has pointers directly into the readbuffer
29fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot    static bool ReadLattice(SkReadBuffer&, SkCanvas::Lattice*);
30fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot
31fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot    static void WriteLattice(SkWriteBuffer&, const SkCanvas::Lattice&);
32fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot
33fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot    // return the byte-size of the lattice, even if the buffer is null
34fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot    // storage must be 4-byte aligned
35fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot    static size_t WriteLattice(void* storage, const SkCanvas::Lattice&);
36fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot};
37fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot
38fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot#endif
39