Home | History | Annotate | Download | only in views
      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 #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