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 14class SkOSWindow : public SkWindow { 15public: 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#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); 42protected: 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 52private: 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