| Index: src/pipe/SkGPipePriv.h
|
| diff --git a/src/pipe/SkGPipePriv.h b/src/pipe/SkGPipePriv.h
|
| deleted file mode 100644
|
| index 1820a4941aee9521489d6349897834a714512220..0000000000000000000000000000000000000000
|
| --- a/src/pipe/SkGPipePriv.h
|
| +++ /dev/null
|
| @@ -1,313 +0,0 @@
|
| -
|
| -/*
|
| - * Copyright 2011 Google Inc.
|
| - *
|
| - * Use of this source code is governed by a BSD-style license that can be
|
| - * found in the LICENSE file.
|
| - */
|
| -
|
| -
|
| -
|
| -#ifndef SkGPipePriv_DEFINED
|
| -#define SkGPipePriv_DEFINED
|
| -
|
| -#include "SkTypes.h"
|
| -
|
| -#define UNIMPLEMENTED
|
| -
|
| -// these must be contiguous, 0...N-1
|
| -enum PaintFlats {
|
| - kColorFilter_PaintFlat,
|
| - kDrawLooper_PaintFlat,
|
| - kImageFilter_PaintFlat,
|
| - kMaskFilter_PaintFlat,
|
| - kPathEffect_PaintFlat,
|
| - kRasterizer_PaintFlat,
|
| - kShader_PaintFlat,
|
| - kXfermode_PaintFlat,
|
| -
|
| - kLast_PaintFlat = kXfermode_PaintFlat
|
| -};
|
| -#define kCount_PaintFlats (kLast_PaintFlat + 1)
|
| -
|
| -enum DrawOps {
|
| - kSkip_DrawOp, // skip an addition N bytes (N == data)
|
| -
|
| - // these match Canvas apis
|
| - kClipPath_DrawOp,
|
| - kClipRegion_DrawOp,
|
| - kClipRect_DrawOp,
|
| - kClipRRect_DrawOp,
|
| - kConcat_DrawOp,
|
| - kDrawAtlas_DrawOp,
|
| - kDrawBitmap_DrawOp,
|
| - kDrawBitmapNine_DrawOp,
|
| - kDrawBitmapRect_DrawOp,
|
| - kDrawDRRect_DrawOp,
|
| - kDrawImage_DrawOp,
|
| - kDrawImageRect_DrawOp,
|
| - kDrawImageNine_DrawOp,
|
| - kDrawOval_DrawOp,
|
| - kDrawPaint_DrawOp,
|
| - kDrawPatch_DrawOp,
|
| - kDrawPath_DrawOp,
|
| - kDrawPicture_DrawOp,
|
| - kDrawPoints_DrawOp,
|
| - kDrawPosText_DrawOp,
|
| - kDrawPosTextH_DrawOp,
|
| - kDrawRect_DrawOp,
|
| - kDrawRRect_DrawOp,
|
| - kDrawText_DrawOp,
|
| - kDrawTextBlob_DrawOp,
|
| - kDrawTextOnPath_DrawOp,
|
| - kDrawVertices_DrawOp,
|
| - kRestore_DrawOp,
|
| - kRotate_DrawOp,
|
| - kSave_DrawOp,
|
| - kSaveLayer_DrawOp,
|
| - kScale_DrawOp,
|
| - kSetMatrix_DrawOp,
|
| - kSkew_DrawOp,
|
| - kTranslate_DrawOp,
|
| -
|
| - kPaintOp_DrawOp,
|
| - kSetTypeface_DrawOp,
|
| - kSetAnnotation_DrawOp,
|
| -
|
| - kDef_Typeface_DrawOp,
|
| - kDef_Flattenable_DrawOp,
|
| - kDef_Bitmap_DrawOp,
|
| - kDef_Factory_DrawOp,
|
| -
|
| - // these are signals to playback, not drawing verbs
|
| - kReportFlags_DrawOp,
|
| - kShareBitmapHeap_DrawOp,
|
| - kShareImageHeap_DrawOp,
|
| - kDone_DrawOp,
|
| -};
|
| -
|
| -/**
|
| - * DrawOp packs into a 32bit int as follows
|
| - *
|
| - * DrawOp:8 - Flags:4 - Data:20
|
| - *
|
| - * Flags and Data are called out separately, so we can reuse Data between
|
| - * different Ops that might have different Flags. e.g. Data might be a Paint
|
| - * index for both drawRect (no flags) and saveLayer (does have flags).
|
| - *
|
| - * All Ops that take a SkPaint use their Data field to store the index to
|
| - * the paint (previously defined with kPaintOp_DrawOp).
|
| - */
|
| -
|
| -#define DRAWOPS_OP_BITS 8
|
| -#define DRAWOPS_FLAG_BITS 4
|
| -#define DRAWOPS_DATA_BITS 20
|
| -
|
| -#define DRAWOPS_OP_MASK ((1 << DRAWOPS_OP_BITS) - 1)
|
| -#define DRAWOPS_FLAG_MASK ((1 << DRAWOPS_FLAG_BITS) - 1)
|
| -#define DRAWOPS_DATA_MASK ((1 << DRAWOPS_DATA_BITS) - 1)
|
| -
|
| -static inline unsigned DrawOp_unpackOp(uint32_t op32) {
|
| - return (op32 >> (DRAWOPS_FLAG_BITS + DRAWOPS_DATA_BITS));
|
| -}
|
| -
|
| -static inline unsigned DrawOp_unpackFlags(uint32_t op32) {
|
| - return (op32 >> DRAWOPS_DATA_BITS) & DRAWOPS_FLAG_MASK;
|
| -}
|
| -
|
| -static inline unsigned DrawOp_unpackData(uint32_t op32) {
|
| - return op32 & DRAWOPS_DATA_MASK;
|
| -}
|
| -
|
| -static inline uint32_t DrawOp_packOpFlagData(DrawOps op, unsigned flags, unsigned data) {
|
| - SkASSERT(0 == (op & ~DRAWOPS_OP_MASK));
|
| - SkASSERT(0 == (flags & ~DRAWOPS_FLAG_MASK));
|
| - SkASSERT(0 == (data & ~DRAWOPS_DATA_MASK));
|
| -
|
| - return (op << (DRAWOPS_FLAG_BITS + DRAWOPS_DATA_BITS)) |
|
| - (flags << DRAWOPS_DATA_BITS) |
|
| - data;
|
| -}
|
| -
|
| -/** DrawOp specific flag bits
|
| - */
|
| -
|
| -enum {
|
| - kSaveLayer_HasBounds_DrawOpFlag = 1 << 0,
|
| - kSaveLayer_HasPaint_DrawOpFlag = 1 << 1,
|
| -};
|
| -enum {
|
| - kDrawTextOnPath_HasMatrix_DrawOpFlag = 1 << 0
|
| -};
|
| -enum {
|
| - kDrawVertices_HasTexs_DrawOpFlag = 1 << 0,
|
| - kDrawVertices_HasColors_DrawOpFlag = 1 << 1,
|
| - kDrawVertices_HasIndices_DrawOpFlag = 1 << 2,
|
| - kDrawVertices_HasXfermode_DrawOpFlag = 1 << 3,
|
| -};
|
| -enum {
|
| - kDrawAtlas_HasPaint_DrawOpFlag = 1 << 0,
|
| - kDrawAtlas_HasColors_DrawOpFlag = 1 << 1,
|
| - kDrawAtlas_HasCull_DrawOpFlag = 1 << 2,
|
| -};
|
| -// These are shared between drawbitmap and drawimage
|
| -enum {
|
| - kDrawBitmap_HasPaint_DrawOpFlag = 1 << 0,
|
| - // Specific to drawBitmapRect, but needs to be different from HasPaint,
|
| - // which is used for all drawBitmap calls, so include it here.
|
| - kDrawBitmap_HasSrcRect_DrawOpFlag = 1 << 1,
|
| - // SkCanvas::DrawBitmapRectFlags::kBleed_DrawBitmapRectFlag is
|
| - // converted into and out of this flag to save space
|
| - kDrawBitmap_Bleed_DrawOpFlag = 1 << 2,
|
| -};
|
| -enum {
|
| - kClip_HasAntiAlias_DrawOpFlag = 1 << 0,
|
| -};
|
| -///////////////////////////////////////////////////////////////////////////////
|
| -
|
| -class BitmapInfo : SkNoncopyable {
|
| -public:
|
| - BitmapInfo(SkBitmap* bitmap, uint32_t genID, int toBeDrawnCount)
|
| - : fBitmap(bitmap)
|
| - , fGenID(genID)
|
| - , fBytesAllocated(0)
|
| - , fMoreRecentlyUsed(nullptr)
|
| - , fLessRecentlyUsed(nullptr)
|
| - , fToBeDrawnCount(toBeDrawnCount)
|
| - {}
|
| -
|
| - ~BitmapInfo() {
|
| - SkASSERT(0 == fToBeDrawnCount);
|
| - delete fBitmap;
|
| - }
|
| -
|
| - void addDraws(int drawsToAdd) {
|
| - if (0 == fToBeDrawnCount) {
|
| - // The readers will only ever decrement the count, so once the
|
| - // count is zero, the writer will be the only one modifying it,
|
| - // so it does not need to be an atomic operation.
|
| - fToBeDrawnCount = drawsToAdd;
|
| - } else {
|
| - sk_atomic_add(&fToBeDrawnCount, drawsToAdd);
|
| - }
|
| - }
|
| -
|
| - void decDraws() {
|
| - sk_atomic_dec(&fToBeDrawnCount);
|
| - }
|
| -
|
| - int drawCount() const {
|
| - return fToBeDrawnCount;
|
| - }
|
| -
|
| - SkBitmap* fBitmap;
|
| - // Store the generation ID of the original bitmap, since copying does
|
| - // not copy this field, so fBitmap's generation ID will not be useful
|
| - // for comparing.
|
| - // FIXME: Is it reasonable to make copying a bitmap/pixelref copy the
|
| - // generation ID?
|
| - uint32_t fGenID;
|
| - // Keep track of the bytes allocated for this bitmap. When replacing the
|
| - // bitmap or removing this BitmapInfo we know how much memory has been
|
| - // reclaimed.
|
| - size_t fBytesAllocated;
|
| - // TODO: Generalize the LRU caching mechanism
|
| - BitmapInfo* fMoreRecentlyUsed;
|
| - BitmapInfo* fLessRecentlyUsed;
|
| -private:
|
| - int fToBeDrawnCount;
|
| -};
|
| -
|
| -static inline bool shouldFlattenBitmaps(uint32_t flags) {
|
| - return SkToBool(flags & SkGPipeWriter::kCrossProcess_Flag
|
| - && !(flags & SkGPipeWriter::kSharedAddressSpace_Flag));
|
| -}
|
| -
|
| -class SkImageHeap : public SkRefCnt {
|
| -public:
|
| - SkImageHeap();
|
| - virtual ~SkImageHeap();
|
| -
|
| - size_t bytesInCache() const { return fBytesInCache; }
|
| - void reset();
|
| - // slot must be "valid" -- 0 is never valid
|
| - const SkImage* get(int32_t slot) const;
|
| - // returns 0 if not found, else returns slot
|
| - int32_t find(const SkImage*) const;
|
| - // returns non-zero value for where the image was stored
|
| - int32_t insert(const SkImage*);
|
| -
|
| -private:
|
| - SkTDArray<const SkImage*> fArray;
|
| - size_t fBytesInCache;
|
| -};
|
| -
|
| -///////////////////////////////////////////////////////////////////////////////
|
| -
|
| -enum PaintOps {
|
| - kReset_PaintOp, // no arg
|
| -
|
| - kFlags_PaintOp, // arg inline
|
| - kColor_PaintOp, // arg 32
|
| - kFilterLevel_PaintOp, // arg inline
|
| - kStyle_PaintOp, // arg inline
|
| - kJoin_PaintOp, // arg inline
|
| - kCap_PaintOp, // arg inline
|
| - kWidth_PaintOp, // arg scalar
|
| - kMiter_PaintOp, // arg scalar
|
| -
|
| - kEncoding_PaintOp, // arg inline - text
|
| - kHinting_PaintOp, // arg inline - text
|
| - kAlign_PaintOp, // arg inline - text
|
| - kTextSize_PaintOp, // arg scalar - text
|
| - kTextScaleX_PaintOp,// arg scalar - text
|
| - kTextSkewX_PaintOp, // arg scalar - text
|
| - kTypeface_PaintOp, // arg inline (index) - text
|
| -
|
| - kFlatIndex_PaintOp, // flags=paintflat, data=index
|
| -};
|
| -
|
| -#define PAINTOPS_OP_BITS 8
|
| -#define PAINTOPS_FLAG_BITS 4
|
| -#define PAINTOPS_DATA_BITS 20
|
| -
|
| -#define PAINTOPS_OP_MASK ((1 << PAINTOPS_OP_BITS) - 1)
|
| -#define PAINTOPS_FLAG_MASK ((1 << PAINTOPS_FLAG_BITS) - 1)
|
| -#define PAINTOPS_DATA_MASK ((1 << PAINTOPS_DATA_BITS) - 1)
|
| -
|
| -static inline unsigned PaintOp_unpackOp(uint32_t op32) {
|
| - return (op32 >> (PAINTOPS_FLAG_BITS + PAINTOPS_DATA_BITS));
|
| -}
|
| -
|
| -static inline unsigned PaintOp_unpackFlags(uint32_t op32) {
|
| - return (op32 >> PAINTOPS_DATA_BITS) & PAINTOPS_FLAG_MASK;
|
| -}
|
| -
|
| -static inline unsigned PaintOp_unpackData(uint32_t op32) {
|
| - return op32 & PAINTOPS_DATA_MASK;
|
| -}
|
| -
|
| -static inline uint32_t PaintOp_packOp(PaintOps op) {
|
| - SkASSERT(0 == (op & ~PAINTOPS_OP_MASK));
|
| -
|
| - return op << (PAINTOPS_FLAG_BITS + PAINTOPS_DATA_BITS);
|
| -}
|
| -
|
| -static inline uint32_t PaintOp_packOpData(PaintOps op, unsigned data) {
|
| - SkASSERT(0 == (op & ~PAINTOPS_OP_MASK));
|
| - SkASSERT(0 == (data & ~PAINTOPS_DATA_MASK));
|
| -
|
| - return (op << (PAINTOPS_FLAG_BITS + PAINTOPS_DATA_BITS)) | data;
|
| -}
|
| -
|
| -static inline uint32_t PaintOp_packOpFlagData(PaintOps op, unsigned flags, unsigned data) {
|
| - SkASSERT(0 == (op & ~PAINTOPS_OP_MASK));
|
| - SkASSERT(0 == (flags & ~PAINTOPS_FLAG_MASK));
|
| - SkASSERT(0 == (data & ~PAINTOPS_DATA_MASK));
|
| -
|
| - return (op << (PAINTOPS_FLAG_BITS + PAINTOPS_DATA_BITS)) |
|
| - (flags << PAINTOPS_DATA_BITS) |
|
| - data;
|
| -}
|
| -
|
| -#endif
|
|
|