blob: 354f02bbd8c25e41729d5b10a93029c7ac4c16f1 [file] [log] [blame]
commit-bot@chromium.org7fa22f32013-06-18 15:37:27 +00001/*
2 * Copyright 2013 Google Inc.
3 *
4 *
5 * Use of this source code is governed by a BSD-style license that can be
6 * found in the LICENSE file.
7 *
8 */
9
10#ifndef BaseExample_DEFINED
11#define BaseExample_DEFINED
12
13#include "SkWindow.h"
14
15class GrContext;
16struct GrGLInterface;
17class GrRenderTarget;
18class SkCanvas;
19
20class BaseExample : public SkOSWindow {
21public:
22 enum DeviceType {
23 kRaster_DeviceType,
24 kGPU_DeviceType,
25 };
26 BaseExample(void* hWnd, int argc, char** argv);
27
28 // Changes the device type of the object.
29 bool setupBackend(DeviceType type);
30 void tearDownBackend();
31
32 DeviceType getDeviceType() const { return fType; }
33
34protected:
35 // Your class should override this method to do its thing.
36 virtual void draw(SkCanvas* canvas) SK_OVERRIDE;
37
38 virtual void onSizeChange() SK_OVERRIDE;
39
40#ifdef SK_BUILD_FOR_WIN
41 virtual void onHandleInval(const SkIRect&) SK_OVERRIDE;
42#endif
43
44 SkCanvas* createCanvas() SK_OVERRIDE;
45
46private:
47 void setupRenderTarget();
48
49 DeviceType fType;
50
51 GrContext* fContext;
52 GrRenderTarget* fRenderTarget;
53 AttachmentInfo fAttachmentInfo;
54 const GrGLInterface* fInterface;
55 typedef SkOSWindow INHERITED;
56};
57#endif
58