diff --git a/include.xml b/include.xml index a07bd5234..a6eca10c1 100644 --- a/include.xml +++ b/include.xml @@ -29,7 +29,7 @@ - + diff --git a/lime/tools/platforms/IOSPlatform.hx b/lime/tools/platforms/IOSPlatform.hx index e494a8327..251acb261 100644 --- a/lime/tools/platforms/IOSPlatform.hx +++ b/lime/tools/platforms/IOSPlatform.hx @@ -568,6 +568,12 @@ class IOSPlatform extends PlatformTarget { } + if (project.targetFlags.exists ("xcode") && PlatformHelper.hostPlatform == Platform.MAC && command == "update") { + + ProcessHelper.runCommand ("", "open", [ targetDirectory + "/" + project.app.file + ".xcodeproj" ] ); + + } + } diff --git a/project/Build.xml b/project/Build.xml index 8617be66a..a7e5659aa 100644 --- a/project/Build.xml +++ b/project/Build.xml @@ -141,6 +141,7 @@ + @@ -156,7 +157,7 @@ - + diff --git a/project/src/backend/sdl/SDLApplication.cpp b/project/src/backend/sdl/SDLApplication.cpp index 1d69d3a17..3cdf803f8 100644 --- a/project/src/backend/sdl/SDLApplication.cpp +++ b/project/src/backend/sdl/SDLApplication.cpp @@ -413,7 +413,7 @@ namespace lime { SDL_Event event; event.type = -1; - #if (!defined (EMSCRIPTEN) && !defined (IPHONE)) + #if (!defined (IPHONE) && !defined (EMSCRIPTEN)) if (active && (firstTime || SDL_WaitEvent (&event))) { @@ -424,15 +424,37 @@ namespace lime { if (!active) return active; - if (SDL_PollEvent (&event)) { + #endif + + while (SDL_PollEvent (&event)) { HandleEvent (&event); event.type = -1; + if (!active) + return active; } currentUpdate = SDL_GetTicks (); + #if defined (IPHONE) + + if (currentUpdate >= nextUpdate) { + + event.type = SDL_USEREVENT; + HandleEvent (&event); + event.type = -1; + + } + + #elif defined (EMSCRIPTEN) + + event.type = SDL_USEREVENT; + HandleEvent (&event); + event.type = -1; + + #else + if (currentUpdate >= nextUpdate) { SDL_RemoveTimer (timerID); @@ -447,19 +469,6 @@ namespace lime { } - #else - - while (SDL_PollEvent (&event)) { - - HandleEvent (&event); - event.type = -1; - - } - - event.type = SDL_USEREVENT; - HandleEvent (&event); - event.type = -1; - #endif return active; @@ -476,7 +485,7 @@ namespace lime { void SDLApplication::UpdateFrame (void*) { - currentApplication->Update (); + UpdateFrame (); } diff --git a/templates/emscripten/cpp/Main.cpp b/templates/emscripten/cpp/Main.cpp index ac42910c2..1ba99afcb 100644 --- a/templates/emscripten/cpp/Main.cpp +++ b/templates/emscripten/cpp/Main.cpp @@ -12,33 +12,29 @@ extern "C" void hxcpp_set_top_of_stack (); extern "C" int zlib_register_prims (); extern "C" int lime_openal_register_prims (); -::foreach ndlls::::if (registerStatics)::extern "C" int ::name::_register_prims();::end:: +::foreach ndlls::::if (registerStatics)::extern "C" int ::name::_register_prims ();::end:: ::end:: -extern "C" int main(int argc, char *argv[]) { +extern "C" int main (int argc, char *argv[]) { - //printf("Starting ...\n" ); hxcpp_set_top_of_stack (); zlib_register_prims (); lime_openal_register_prims (); - ::foreach ndlls::::if (registerStatics)::::name::_register_prims();::end:: + ::foreach ndlls::::if (registerStatics)::::name::_register_prims ();::end:: ::end:: - //printf("Running\n"); - const char *err = NULL; err = hxRunLibrary (); if (err) { - printf(" Error %s\n", err ); + printf (" Error %s\n", err); return -1; } - //printf("Done!\n"); return 0; } \ No newline at end of file diff --git a/templates/iphone/PROJ/Classes/Main.mm b/templates/iphone/PROJ/Classes/Main.mm index c6ab66805..726b98d68 100644 --- a/templates/iphone/PROJ/Classes/Main.mm +++ b/templates/iphone/PROJ/Classes/Main.mm @@ -7,35 +7,36 @@ #include -extern "C" const char *hxRunLibrary(); -extern "C" void hxcpp_set_top_of_stack(); - -::foreach ndlls:: - ::if (registerStatics):: - extern "C" int ::name::_register_prims(); - ::end:: +extern "C" const char *hxRunLibrary (); +extern "C" void hxcpp_set_top_of_stack (); + +extern "C" int zlib_register_prims (); +extern "C" int lime_openal_register_prims (); +::foreach ndlls::::if (registerStatics)::extern "C" int ::name::_register_prims ();::end:: ::end:: - -extern "C" int main(int argc, char *argv[]) -{ - //printf("Starting ...\n" ); - hxcpp_set_top_of_stack(); - ::foreach ndlls:: - ::if (registerStatics):: - ::name::_register_prims(); - ::end:: - ::end:: - - //printf("Running\n"); +extern "C" int main (int argc, char *argv[]) { + + printf("Top of stack\n"); + + hxcpp_set_top_of_stack (); + printf("Top of stack2\n"); + zlib_register_prims (); + lime_openal_register_prims (); + ::foreach ndlls::::if (registerStatics)::::name::_register_prims ();::end:: + ::end:: + printf("prims\n"); const char *err = NULL; - err = hxRunLibrary(); + err = hxRunLibrary (); + if (err) { - printf(" Error %s\n", err ); + + printf (" Error %s\n", err); return -1; + } - - //printf("Done!\n"); + return 0; -} + +} \ No newline at end of file