1d5fa1a455aad61f3e99081fe7a9b065cb3b115c6reed/* 2d5fa1a455aad61f3e99081fe7a9b065cb3b115c6reed * Copyright 2014 Google Inc. 3d5fa1a455aad61f3e99081fe7a9b065cb3b115c6reed * 4d5fa1a455aad61f3e99081fe7a9b065cb3b115c6reed * Use of this source code is governed by a BSD-style license that can be 5d5fa1a455aad61f3e99081fe7a9b065cb3b115c6reed * found in the LICENSE file. 6d5fa1a455aad61f3e99081fe7a9b065cb3b115c6reed */ 7d5fa1a455aad61f3e99081fe7a9b065cb3b115c6reed 8d5fa1a455aad61f3e99081fe7a9b065cb3b115c6reed#ifndef SkCanvasPriv_DEFINED 9d5fa1a455aad61f3e99081fe7a9b065cb3b115c6reed#define SkCanvasPriv_DEFINED 10d5fa1a455aad61f3e99081fe7a9b065cb3b115c6reed 11d5fa1a455aad61f3e99081fe7a9b065cb3b115c6reed#include "SkCanvas.h" 12d5fa1a455aad61f3e99081fe7a9b065cb3b115c6reed 137c9c9e4239b6e9dfec3469326312e4c9a2c164f9Mike Reedclass SkReadBuffer; 147c9c9e4239b6e9dfec3469326312e4c9a2c164f9Mike Reedclass SkWriteBuffer; 157c9c9e4239b6e9dfec3469326312e4c9a2c164f9Mike Reed 16d5fa1a455aad61f3e99081fe7a9b065cb3b115c6reedclass SkAutoCanvasMatrixPaint : SkNoncopyable { 17d5fa1a455aad61f3e99081fe7a9b065cb3b115c6reedpublic: 18a8d7f0b13cd4c6d773fcf055fe17db75d260fa05robertphillips SkAutoCanvasMatrixPaint(SkCanvas*, const SkMatrix*, const SkPaint*, const SkRect& bounds); 19d5fa1a455aad61f3e99081fe7a9b065cb3b115c6reed ~SkAutoCanvasMatrixPaint(); 20d5fa1a455aad61f3e99081fe7a9b065cb3b115c6reed 21d5fa1a455aad61f3e99081fe7a9b065cb3b115c6reedprivate: 22d5fa1a455aad61f3e99081fe7a9b065cb3b115c6reed SkCanvas* fCanvas; 23d5fa1a455aad61f3e99081fe7a9b065cb3b115c6reed int fSaveCount; 24d5fa1a455aad61f3e99081fe7a9b065cb3b115c6reed}; 25d5fa1a455aad61f3e99081fe7a9b065cb3b115c6reed 267c9c9e4239b6e9dfec3469326312e4c9a2c164f9Mike Reedclass SkCanvasPriv { 277c9c9e4239b6e9dfec3469326312e4c9a2c164f9Mike Reedpublic: 287c9c9e4239b6e9dfec3469326312e4c9a2c164f9Mike Reed // The lattice has pointers directly into the readbuffer 297c9c9e4239b6e9dfec3469326312e4c9a2c164f9Mike Reed static bool ReadLattice(SkReadBuffer&, SkCanvas::Lattice*); 307c9c9e4239b6e9dfec3469326312e4c9a2c164f9Mike Reed 317c9c9e4239b6e9dfec3469326312e4c9a2c164f9Mike Reed static void WriteLattice(SkWriteBuffer&, const SkCanvas::Lattice&); 327c9c9e4239b6e9dfec3469326312e4c9a2c164f9Mike Reed 337c9c9e4239b6e9dfec3469326312e4c9a2c164f9Mike Reed // return the byte-size of the lattice, even if the buffer is null 347c9c9e4239b6e9dfec3469326312e4c9a2c164f9Mike Reed // storage must be 4-byte aligned 357c9c9e4239b6e9dfec3469326312e4c9a2c164f9Mike Reed static size_t WriteLattice(void* storage, const SkCanvas::Lattice&); 367c9c9e4239b6e9dfec3469326312e4c9a2c164f9Mike Reed}; 377c9c9e4239b6e9dfec3469326312e4c9a2c164f9Mike Reed 38d5fa1a455aad61f3e99081fe7a9b065cb3b115c6reed#endif 39