| Index: src/image/SkImage_Gpu.h
|
| diff --git a/src/image/SkImage_Gpu.h b/src/image/SkImage_Gpu.h
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..f20625a29e8ab8bc360388a8602ed01cb440918d
|
| --- /dev/null
|
| +++ b/src/image/SkImage_Gpu.h
|
| @@ -0,0 +1,55 @@
|
| +/*
|
| + * Copyright 2015 Google Inc.
|
| + *
|
| + * Use of this source code is governed by a BSD-style license that can be
|
| + * found in the LICENSE file.
|
| + */
|
| +
|
| +#ifndef SkImage_Gpu_DEFINED
|
| +#define SkImage_Gpu_DEFINED
|
| +
|
| +#include "GrTexture.h"
|
| +#include "GrGpuResourceCacheAccess.h"
|
| +#include "SkBitmap.h"
|
| +#include "SkImage_Base.h"
|
| +#include "SkImagePriv.h"
|
| +#include "SkSurface.h"
|
| +
|
| +class SkImage_Gpu : public SkImage_Base {
|
| +public:
|
| + SK_DECLARE_INST_COUNT(SkImage_Gpu)
|
| +
|
| + SkImage_Gpu(const SkBitmap&, int sampleCountForNewSurfaces, SkSurface::Budgeted);
|
| +
|
| + void onDraw(SkCanvas*, SkScalar x, SkScalar y, const SkPaint*) const SK_OVERRIDE;
|
| + void onDrawRect(SkCanvas*, const SkRect* src, const SkRect& dst,
|
| + const SkPaint*) const SK_OVERRIDE;
|
| + SkSurface* onNewSurface(const SkImageInfo&, const SkSurfaceProps&) const SK_OVERRIDE;
|
| + GrTexture* onGetTexture() const SK_OVERRIDE;
|
| + bool getROPixels(SkBitmap*) const SK_OVERRIDE;
|
| +
|
| + GrTexture* getTexture() const { return fBitmap.getTexture(); }
|
| +
|
| + SkShader* onNewShader(SkShader::TileMode,
|
| + SkShader::TileMode,
|
| + const SkMatrix* localMatrix) const SK_OVERRIDE;
|
| +
|
| + bool isOpaque() const SK_OVERRIDE;
|
| +
|
| + void applyBudgetDecision() const {
|
| + if (fBudgeted) {
|
| + fBitmap.getTexture()->cacheAccess().makeBudgeted();
|
| + } else {
|
| + fBitmap.getTexture()->cacheAccess().makeUnbudgeted();
|
| + }
|
| + }
|
| +
|
| +private:
|
| + SkBitmap fBitmap;
|
| + const int fSampleCountForNewSurfaces; // 0 if we don't know
|
| + SkSurface::Budgeted fBudgeted;
|
| +
|
| + typedef SkImage_Base INHERITED;
|
| +};
|
| +
|
| +#endif
|
|
|