您最多选择25个主题 主题必须以字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符
 
 
 

102 行
2.1 KiB

  1. //
  2. // Lol Engine
  3. //
  4. // Copyright: (c) 2010-2011 Sam Hocevar <sam@hocevar.net>
  5. // This program is free software; you can redistribute it and/or
  6. // modify it under the terms of the Do What The Fuck You Want To
  7. // Public License, Version 2, as published by Sam Hocevar. See
  8. // http://sam.zoy.org/projects/COPYING.WTFPL for more details.
  9. //
  10. #if defined HAVE_CONFIG_H
  11. # include "config.h"
  12. #endif
  13. #include <jni.h>
  14. #include <android/log.h>
  15. #include "core.h"
  16. #include "lolgl.h"
  17. #include "loldebug.h"
  18. using namespace lol;
  19. #include "interface.h"
  20. namespace lol
  21. {
  22. jobject g_ctx;
  23. JNIEnv *g_env;
  24. };
  25. extern "C" void
  26. Java_org_zoy_LolEngine_LolActivity_nativeInit(JNIEnv* env, jobject thiz)
  27. {
  28. env->NewGlobalRef(thiz); /* FIXME: never released! */
  29. g_ctx = thiz;
  30. }
  31. extern "C" void
  32. Java_org_zoy_LolEngine_LolRenderer_nativeInit(JNIEnv* env)
  33. {
  34. g_env = env;
  35. __android_log_print(ANDROID_LOG_INFO, "LOL", "init");
  36. Ticker::Setup(30.0f);
  37. Video::Setup(320, 200);
  38. new Interface();
  39. new DebugFps(20, 20);
  40. }
  41. extern "C" void
  42. Java_org_zoy_LolEngine_LolRenderer_nativeResize(JNIEnv* env, jobject thiz,
  43. jint w, jint h)
  44. {
  45. __android_log_print(ANDROID_LOG_INFO, "LOL", "resize w=%d h=%d", w, h);
  46. Video::Setup(w, h);
  47. }
  48. extern "C" void
  49. Java_org_zoy_LolEngine_LolRenderer_nativeDone(JNIEnv* env)
  50. {
  51. /* FIXME: clean up */
  52. }
  53. extern "C" void
  54. Java_org_zoy_LolEngine_LolView_nativePause(JNIEnv* env)
  55. {
  56. /* TODO: unimplemented */
  57. }
  58. extern "C" void
  59. Java_org_zoy_LolEngine_LolView_nativeDown(JNIEnv* env)
  60. {
  61. Input::SetMouseButton(0);
  62. }
  63. extern "C" void
  64. Java_org_zoy_LolEngine_LolView_nativeUp(JNIEnv* env)
  65. {
  66. Input::UnsetMouseButton(0);
  67. }
  68. extern "C" void
  69. Java_org_zoy_LolEngine_LolView_nativeMove(JNIEnv* env, jobject thiz,
  70. jint x, jint y)
  71. {
  72. vec2i pos(x * 640 / Video::GetWidth(),
  73. 480 - 1 - y * 480 / Video::GetHeight());
  74. Input::SetMousePos(pos);
  75. }
  76. /* Call to render the next GL frame */
  77. extern "C" void
  78. Java_org_zoy_LolEngine_LolRenderer_nativeRender(JNIEnv* env)
  79. {
  80. Ticker::ClampFps();
  81. Ticker::TickGame();
  82. Ticker::TickDraw();
  83. }