diff options
Diffstat (limited to 'tools/sk_app/mac/main_mac.cpp')
-rw-r--r-- | tools/sk_app/mac/main_mac.cpp | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/tools/sk_app/mac/main_mac.cpp b/tools/sk_app/mac/main_mac.cpp new file mode 100644 index 0000000000..6dcf5b93f7 --- /dev/null +++ b/tools/sk_app/mac/main_mac.cpp @@ -0,0 +1,58 @@ +/* +* Copyright 2016 Google Inc. +* +* Use of this source code is governed by a BSD-style license that can be +* found in the LICENSE file. +*/ + +#include "SkTypes.h" +#include "SkTHash.h" +#include "SDL.h" +#include "Timer.h" +#include "Window_mac.h" +#include "../Application.h" + +using sk_app::Application; + +int main(int argc, char* argv[]) { + if (SDL_Init(SDL_INIT_VIDEO | SDL_INIT_EVENTS) != 0) { + SkDebugf("Could not initialize SDL!\n"); + return 1; + } + + Application* app = Application::Create(argc, argv, nullptr); + + SDL_Event event; + bool done = false; + while (!done) { + while (SDL_PollEvent(&event)) { + switch (event.type) { + // events handled by the windows + case SDL_WINDOWEVENT: + case SDL_MOUSEMOTION: + case SDL_MOUSEBUTTONDOWN: + case SDL_MOUSEBUTTONUP: + case SDL_MOUSEWHEEL: + case SDL_KEYDOWN: + case SDL_KEYUP: + case SDL_TEXTINPUT: + done = sk_app::Window_mac::HandleWindowEvent(event); + break; + + case SDL_QUIT: + done = true; + break; + + default: + break; + } + } + + app->onIdle(); + } + delete app; + + SDL_Quit(); + + return 0; +} |