C++11 override should now be supported by all of {bots,Chrome,Android,Mozilla}
[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() override;
25     SkSurface* onNewSurface(const SkImageInfo&) override;
26     SkImage* onNewImageSnapshot(Budgeted) override;
27     virtual void onDraw(SkCanvas*, SkScalar x, SkScalar y,
28                         const SkPaint*) override;
29     void onCopyOnWrite(ContentChangeMode) override;
30     void onDiscard() 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