1 /* 2 * Copyright 2011 Skia 3 * 4 * Use of this source code is governed by a BSD-style license that can be 5 * found in the LICENSE file. 6 */ 7 8 #ifndef SkOSWindow_Android_DEFINED 9 #define SkOSWindow_Android_DEFINED 10 11 #include "SkWindow.h" 12 13 #include <EGL/egl.h> 14 15 struct SkAndroidWindow { 16 EGLDisplay fDisplay; 17 EGLSurface fSurface; 18 EGLContext fContext; 19 }; 20 21 class SkOSWindow : public SkWindow { 22 public: 23 SkOSWindow(void*); 24 ~SkOSWindow(); 25 26 enum SkBackEndTypes { 27 kNone_BackEndType, 28 kNativeGL_BackEndType, 29 }; 30 31 bool attach(SkBackEndTypes attachType, int msaaSampleCount, AttachmentInfo* info); 32 void detach(); 33 void present(); makeFullscreen()34 bool makeFullscreen() { return true; } 35 void closeWindow(); 36 void setVsync(bool); destroyRequested()37 bool destroyRequested() { return fDestroyRequested; } 38 39 protected: 40 // overrides from SkWindow 41 virtual void onHandleInval(const SkIRect&); 42 virtual void onSetTitle(const char title[]); 43 44 private: 45 SkAndroidWindow fWindow; 46 ANativeWindow* fNativeWindow; 47 bool fDestroyRequested; 48 49 typedef SkWindow INHERITED; 50 }; 51 52 #endif 53