1/* 2* Copyright 2016 Google Inc. 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 Window_mac_DEFINED 9#define Window_mac_DEFINED 10 11#include "../Window.h" 12#include "SkChecksum.h" 13#include "SkTDynamicHash.h" 14 15#include "SDL.h" 16 17namespace sk_app { 18 19class Window_mac : public Window { 20public: 21 Window_mac() 22 : INHERITED() 23 , fWindow(nullptr) 24 , fWindowID(0) 25 , fMSAASampleCount(0) {} 26 ~Window_mac() override { this->closeWindow(); } 27 28 bool initWindow(); 29 30 void setTitle(const char*) override; 31 void show() override; 32 33 bool attach(BackendType) override; 34 35 void onInval() override; 36 37 static bool HandleWindowEvent(const SDL_Event& event); 38 39 static const Uint32& GetKey(const Window_mac& w) { 40 return w.fWindowID; 41 } 42 43 static uint32_t Hash(const Uint32& winID) { 44 return winID; 45 } 46 47private: 48 bool handleEvent(const SDL_Event& event); 49 50 void closeWindow(); 51 52 static SkTDynamicHash<Window_mac, Uint32> gWindowMap; 53 54 SDL_Window* fWindow; 55 Uint32 fWindowID; 56 57 int fMSAASampleCount; 58 59 typedef Window INHERITED; 60}; 61 62} // namespace sk_app 63 64#endif 65