| Index: samples/android_sample/jni/dart_host.cc
|
| ===================================================================
|
| --- samples/android_sample/jni/dart_host.cc (revision 0)
|
| +++ samples/android_sample/jni/dart_host.cc (revision 0)
|
| @@ -0,0 +1,126 @@
|
| +#include "jni/dart_host.h"
|
| +
|
| +#include <math.h>
|
| +#include <unistd.h>
|
| +
|
| +#include "bin/eventhandler.h"
|
| +#include "bin/isolate_data.h"
|
| +#include "bin/log.h"
|
| +#include "bin/platform.h"
|
| +#include "bin/process.h"
|
| +#include "vm/flags.h"
|
| +
|
| +DartHost::DartHost(Context *context)
|
| + : input_handler_(context->input_handler),
|
| + timer_(context->timer),
|
| + graphics_(context->graphics),
|
| + vm_glue_(context->vm_glue),
|
| + active_(false) {
|
| + Log::Print("Creating DartHost");
|
| +}
|
| +
|
| +DartHost::~DartHost() {
|
| + Log::Print("Freeing DartHost");
|
| +}
|
| +
|
| +int32_t DartHost::OnActivate() {
|
| + return Activate();
|
| +}
|
| +
|
| +int32_t DartHost::Activate() {
|
| + if (!active_) {
|
| + Log::Print("Activating DartHost");
|
| + if (graphics_->Start() != 0) {
|
| + return -1;
|
| + }
|
| + if (input_handler_->Start() != 0) {
|
| + return -1;
|
| + }
|
| + timer_->reset();
|
| + Log::Print("Starting main isolate");
|
| + int result = vm_glue_->StartMainIsolate();
|
| + if (result != 0) {
|
| + Log::PrintErr("startMainIsolate returned %d", result);
|
| + return -1;
|
| + }
|
| + active_ = true;
|
| + vm_glue_->CallSetup();
|
| + }
|
| + return 0;
|
| +}
|
| +
|
| +void DartHost::OnDeactivate() {
|
| + Deactivate();
|
| +}
|
| +
|
| +void DartHost::Deactivate() {
|
| + if (active_) {
|
| + active_ = false;
|
| + vm_glue_->FinishMainIsolate();
|
| + Log::Print("Deactivating DartHost");
|
| + graphics_->Stop();
|
| + }
|
| +}
|
| +
|
| +int32_t DartHost::OnStep() {
|
| + timer_->update();
|
| + vm_glue_->CallUpdate();
|
| + if (graphics_->Update() != 0) {
|
| + return -1;
|
| + }
|
| + return 0;
|
| +}
|
| +
|
| +void DartHost::OnStart() {
|
| + Log::Print("Starting DartHost");
|
| +}
|
| +
|
| +void DartHost::OnResume() {
|
| + Log::Print("Resuming DartHost");
|
| +}
|
| +
|
| +void DartHost::OnPause() {
|
| + Log::Print("Pausing DartHost");
|
| +}
|
| +
|
| +void DartHost::OnStop() {
|
| + Log::Print("Stopping DartHost");
|
| +}
|
| +
|
| +void DartHost::OnDestroy() {
|
| + Log::Print("Destroying DartHost");
|
| +}
|
| +
|
| +void DartHost::OnSaveState(void** data, size_t size) {
|
| + Log::Print("Saving DartHost state");
|
| +}
|
| +
|
| +void DartHost::OnConfigurationChanged() {
|
| + Log::Print("DartHost config changed");
|
| +}
|
| +
|
| +void DartHost::OnLowMemory() {
|
| + Log::Print("DartHost low on memory");
|
| +}
|
| +
|
| +void DartHost::OnCreateWindow() {
|
| + Log::Print("DartHost creating window");
|
| +}
|
| +
|
| +void DartHost::OnDestroyWindow() {
|
| + Log::Print("DartHost destroying window");
|
| +}
|
| +
|
| +void DartHost::OnGainedFocus() {
|
| + Log::Print("DartHost gained focus");
|
| +}
|
| +
|
| +void DartHost::OnLostFocus() {
|
| + Log::Print("DartHost lost focus");
|
| +}
|
| +
|
| +void DartHost::Clear() {
|
| + memset(window_buffer_.bits, 0,
|
| + window_buffer_.stride * window_buffer_.height * sizeof(int32_t));
|
| +}
|
| +
|
|
|