Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(127)

Side by Side Diff: experimental/SkiaExamples/SkExample.h

Issue 18574002: SkiaExamples improvements. (Closed) Base URL: https://skia.googlecode.com/svn/trunk
Patch Set: Support for multiple SkExamples Created 7 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « experimental/SkiaExamples/HelloSkiaExample.cpp ('k') | experimental/SkiaExamples/SkExample.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright 2013 Google Inc. 2 * Copyright 2013 Google Inc.
3 * 3 *
4 * 4 *
5 * Use of this source code is governed by a BSD-style license that can be 5 * Use of this source code is governed by a BSD-style license that can be
6 * found in the LICENSE file. 6 * found in the LICENSE file.
7 * 7 *
8 */ 8 */
9 9
10 #ifndef BaseExample_DEFINED 10 #ifndef SkExample_DEFINED
11 #define BaseExample_DEFINED 11 #define SkExample_DEFINED
12 12
13 #include "SkWindow.h" 13 #include "SkWindow.h"
14 #include "SkTRegistry.h"
14 15
15 class GrContext; 16 class GrContext;
16 struct GrGLInterface; 17 struct GrGLInterface;
17 class GrRenderTarget; 18 class GrRenderTarget;
18 class SkCanvas; 19 class SkCanvas;
20 class SkExampleWindow;
19 21
20 class BaseExample : public SkOSWindow { 22 class SkExample : public SkNoncopyable {
23 public:
24 SkExample(SkExampleWindow* window) : fWindow(window) {}
25
26 // Your class should override this method to do its thing.
27 virtual void draw(SkCanvas* canvas) = 0;
28
29 SkString getName() { return fName; };
30 // Use this public registry to tell the world about your sample.
31 typedef SkTRegistry<SkExample*, SkExampleWindow*> Registry;
32
33 protected:
34 SkExampleWindow* fWindow;
35 SkString fName;
36 };
37
38 class SkExampleWindow : public SkOSWindow {
21 public: 39 public:
22 enum DeviceType { 40 enum DeviceType {
23 kRaster_DeviceType, 41 kRaster_DeviceType,
24 kGPU_DeviceType, 42 kGPU_DeviceType,
25 }; 43 };
26 BaseExample(void* hWnd, int argc, char** argv); 44 SkExampleWindow(void* hwnd);
27 45
28 // Changes the device type of the object. 46 // Changes the device type of the object.
29 bool setupBackend(DeviceType type); 47 bool setupBackend(DeviceType type);
30 void tearDownBackend(); 48 void tearDownBackend();
31 49
32 DeviceType getDeviceType() const { return fType; } 50 DeviceType getDeviceType() const { return fType; }
33 51
34 protected: 52 protected:
35 // Your class should override this method to do its thing.
36 virtual void draw(SkCanvas* canvas) SK_OVERRIDE; 53 virtual void draw(SkCanvas* canvas) SK_OVERRIDE;
37 54
38 virtual void onSizeChange() SK_OVERRIDE; 55 virtual void onSizeChange() SK_OVERRIDE;
39 56
40 #ifdef SK_BUILD_FOR_WIN 57 #ifdef SK_BUILD_FOR_WIN
41 virtual void onHandleInval(const SkIRect&) SK_OVERRIDE; 58 virtual void onHandleInval(const SkIRect&) SK_OVERRIDE;
42 #endif 59 #endif
43 60
44 SkCanvas* createCanvas() SK_OVERRIDE; 61 SkCanvas* createCanvas() SK_OVERRIDE;
45 62
46 private: 63 private:
64 bool findNextMatch(); // Set example to the first one that matches FLAGS_ma tch.
47 void setupRenderTarget(); 65 void setupRenderTarget();
66 bool onHandleChar(SkUnichar unichar) SK_OVERRIDE;
48 67
49 DeviceType fType; 68 DeviceType fType;
50 69
70 SkExample* fCurrExample;
71 const SkExample::Registry* fRegistry;
72 SkTDArray<const char*> fMatchStrs;
51 GrContext* fContext; 73 GrContext* fContext;
52 GrRenderTarget* fRenderTarget; 74 GrRenderTarget* fRenderTarget;
53 AttachmentInfo fAttachmentInfo; 75 AttachmentInfo fAttachmentInfo;
54 const GrGLInterface* fInterface; 76 const GrGLInterface* fInterface;
77
55 typedef SkOSWindow INHERITED; 78 typedef SkOSWindow INHERITED;
56 }; 79 };
80
57 #endif 81 #endif
82
OLDNEW
« no previous file with comments | « experimental/SkiaExamples/HelloSkiaExample.cpp ('k') | experimental/SkiaExamples/SkExample.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698