aboutsummaryrefslogtreecommitdiffhomepage
path: root/tools/sk_app/mac/main_mac.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tools/sk_app/mac/main_mac.cpp')
-rw-r--r--tools/sk_app/mac/main_mac.cpp58
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;
+}