90c00c4b4570b0aacb2fbcdda07cbcd8981d9be4
[platform/upstream/libSkiaSharp.git] / src / image / SkSurface_Gpu.h
1 /*
2  * Copyright 2014 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 SkSurface_Gpu_DEFINED
9 #define SkSurface_Gpu_DEFINED
10
11 #include "SkSurface_Base.h"
12
13 #if SK_SUPPORT_GPU
14
15 class SkGpuDevice;
16
17 class SkSurface_Gpu : public SkSurface_Base {
18 public:
19     SK_DECLARE_INST_COUNT(SkSurface_Gpu)
20
21     SkSurface_Gpu(SkGpuDevice*);
22     virtual ~SkSurface_Gpu();
23
24     SkCanvas* onNewCanvas() SK_OVERRIDE;
25     SkSurface* onNewSurface(const SkImageInfo&) SK_OVERRIDE;
26     SkImage* onNewImageSnapshot(Budgeted) SK_OVERRIDE;
27     virtual void onDraw(SkCanvas*, SkScalar x, SkScalar y,
28                         const SkPaint*) SK_OVERRIDE;
29     void onCopyOnWrite(ContentChangeMode) SK_OVERRIDE;
30     void onDiscard() SK_OVERRIDE;
31
32     SkGpuDevice* getDevice() { return fDevice; }
33
34 private:
35     SkGpuDevice* fDevice;
36
37     typedef SkSurface_Base INHERITED;
38 };
39
40 #endif // SK_SUPPORT_GPU
41
42 #endif // SkSurface_Gpu_DEFINED