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_ |
+ |