• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 
2 /*
3  * Copyright 2006 The Android Open Source Project
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 #ifndef SkOSWindow_MacCocoa_DEFINED
10 #define SkOSWindow_MacCocoa_DEFINED
11 
12 #include "SkWindow.h"
13 
14 class SkOSWindow : public SkWindow {
15 public:
16     SkOSWindow(void* hwnd);
17     ~SkOSWindow();
getHWND()18     void*   getHWND() const { return fHWND; }
19 
20     virtual bool onDispatchClick(int x, int y, Click::State state,
21                                  void* owner, unsigned modi);
22     enum SkBackEndTypes {
23         kNone_BackEndType,
24 #if SK_SUPPORT_GPU
25         kNativeGL_BackEndType,
26 #endif
27 #if SK_ANGLE
28         kANGLE_BackEndType,
29 #endif // SK_ANGLE
30 #if SK_COMMAND_BUFFER
31         kCommandBufferES2_BackEndType,
32 #endif // SK_COMMAND_BUFFER
33     };
34 
35     void    detach();
36     bool    attach(SkBackEndTypes attachType, int msaaSampleCount, AttachmentInfo*);
37     void    present();
38 
39     bool    makeFullscreen();
40     void    closeWindow();
41     void    setVsync(bool);
42 protected:
43     // overrides from SkEventSink
44     virtual bool onEvent(const SkEvent& evt);
45     // overrides from SkWindow
46     virtual void onHandleInval(const SkIRect&);
47     // overrides from SkView
48     virtual void onAddMenu(const SkOSMenu*);
49     virtual void onUpdateMenu(const SkOSMenu*);
50     virtual void onSetTitle(const char[]);
51 
52 private:
53     void*   fHWND;
54     bool    fInvalEventIsPending;
55     void*   fNotifier;
56 #if SK_SUPPORT_GPU
57     void*   fGLContext;
58 #endif
59     typedef SkWindow INHERITED;
60 };
61 
62 #endif
63