Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(549)

Unified Diff: runtime/embedders/openglui/common/dart_host.h

Issue 11883013: Refactored OpenGL embedder that works on Android, Mac or Linux. (Closed) Base URL: http://dart.googlecode.com/svn/branches/bleeding_edge/dart/
Patch Set: Created 7 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « runtime/embedders/openglui/common/context.h ('k') | runtime/embedders/openglui/common/dart_host.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: runtime/embedders/openglui/common/dart_host.h
===================================================================
--- runtime/embedders/openglui/common/dart_host.h (revision 0)
+++ runtime/embedders/openglui/common/dart_host.h (revision 0)
@@ -0,0 +1,58 @@
+// Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+#ifndef EMBEDDERS_OPENGLUI_COMMON_DART_HOST_H_
+#define EMBEDDERS_OPENGLUI_COMMON_DART_HOST_H_
+
+#include "embedders/openglui/common/context.h"
+#include "embedders/openglui/common/graphics_handler.h"
+#include "embedders/openglui/common/input_handler.h"
+#include "embedders/openglui/common/lifecycle_handler.h"
+#include "embedders/openglui/common/sound_handler.h"
+#include "embedders/openglui/common/timer.h"
+#include "embedders/openglui/common/vm_glue.h"
+#include "include/dart_api.h"
+
+// Currently the life cycle management is very crude. We conservatively
+// shutdown the main isolate when we lose focus and create a new one when
+// we resume. This needs to be improved later when we understand this better,
+// and we need some hooks to tell the Dart script to save/restore state
+// (and an API that will support that).
+
+class DartHost : public LifeCycleHandler {
+ public:
+ explicit DartHost(Context* context);
+ virtual ~DartHost();
+
+ void OnStart();
+ void OnResume();
+ void OnPause();
+ void OnStop();
+ void OnDestroy();
+ void OnSaveState(void** data, size_t* size);
+ void OnConfigurationChanged();
+ void OnLowMemory();
+ void OnCreateWindow();
+ void OnDestroyWindow();
+ void OnGainedFocus();
+ void OnLostFocus();
+ int32_t OnActivate();
+ void OnDeactivate();
+ int32_t OnStep();
+
+ private:
+ void Clear();
+ int32_t Activate();
+ void Deactivate();
+
+ GraphicsHandler* graphics_handler_;
+ InputHandler* input_handler_;
+ SoundHandler* sound_handler_;
+ Timer* timer_;
+ VMGlue* vm_glue_;
+ bool active_;
+};
+
+#endif // EMBEDDERS_OPENGLUI_COMMON_DART_HOST_H_
+
« no previous file with comments | « runtime/embedders/openglui/common/context.h ('k') | runtime/embedders/openglui/common/dart_host.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698