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(); 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 }; 31 32 void release(); 33 bool attach(SkBackEndTypes attachType, int msaaSampleCount, bool deepColor, 34 AttachmentInfo*); 35 void present(); 36 37 bool makeFullscreen(); 38 void closeWindow(); 39 void setVsync(bool); 40 protected: 41 // overrides from SkEventSink 42 virtual bool onEvent(const SkEvent& evt); 43 // overrides from SkWindow 44 virtual void onHandleInval(const SkIRect&); 45 // overrides from SkView 46 virtual void onAddMenu(const SkOSMenu*); 47 virtual void onUpdateMenu(const SkOSMenu*); 48 virtual void onSetTitle(const char[]); 49 50 private: 51 void* fHWND; 52 bool fInvalEventIsPending; 53 void* fNotifier; 54 #if SK_SUPPORT_GPU 55 void* fGLContext; 56 #endif 57 typedef SkWindow INHERITED; 58 }; 59 60 #endif 61