| |
| /* |
| * Copyright 2006 The Android Open Source Project |
| * |
| * Use of this source code is governed by a BSD-style license that can be |
| * found in the LICENSE file. |
| */ |
| |
| |
| #ifndef SkOSWindow_SDL_DEFINED |
| #define SkOSWindow_SDL_DEFINED |
| |
| #include "SDL.h" |
| #include "SDL_opengl.h" |
| #include "SkWindow.h" |
| |
| |
| class SkOSWindow : public SkWindow { |
| public: |
| SkOSWindow(void* screen); |
| virtual ~SkOSWindow(); |
| |
| static bool PostEvent(SkEvent* evt, SkEventSinkID, SkMSec delay) { SkFAIL("not implemented\n"); |
| return false; |
| } |
| |
| enum SkBackEndTypes { |
| kNone_BackEndType, |
| kNativeGL_BackEndType, |
| #if SK_ANGLE |
| kANGLE_BackEndType, |
| #endif // SK_ANGLE |
| #if SK_COMMAND_BUFFER |
| kCommandBuffer_BackEndType, |
| #endif // SK_COMMAND_BUFFER |
| }; |
| |
| void detach(); |
| bool attach(SkBackEndTypes attachType, int msaaSampleCount, AttachmentInfo*); |
| void present(); |
| bool makeFullscreen(); |
| void setVsync(bool); |
| void closeWindow(); |
| void loop() { |
| while (!fQuit) { |
| this->handleEvents(); |
| this->update(nullptr); |
| } |
| } |
| |
| protected: |
| void onSetTitle(const char title[]) override; |
| |
| private: |
| void handleEvents(); |
| bool fQuit; |
| SDL_Window* fWindow; |
| SDL_GLContext fGLContext; |
| |
| typedef SkWindow INHERITED; |
| }; |
| |
| #endif |