diff options
| author | Matthias Melcher <fltk@matthiasm.com> | 2018-03-05 21:26:51 +0000 |
|---|---|---|
| committer | Matthias Melcher <fltk@matthiasm.com> | 2018-03-05 21:26:51 +0000 |
| commit | 8c51282770f86800ea609fda8bddb0d54a84ec62 (patch) | |
| tree | 047ce2b209563cb97fd28e24ebeca3d50dccbf80 /Android/HelloAndroid/app/src/main/cpp/HelloAndroid.cxx | |
| parent | 900457f0b443945731a728b84fbd6aaa72a39267 (diff) | |
Android: more cleanup. Trying to solve the problem of undefined screen buffer content. Moved gradlew.bat into gradlew.zip to make some svn's happy.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12709 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
Diffstat (limited to 'Android/HelloAndroid/app/src/main/cpp/HelloAndroid.cxx')
| -rw-r--r-- | Android/HelloAndroid/app/src/main/cpp/HelloAndroid.cxx | 41 |
1 files changed, 12 insertions, 29 deletions
diff --git a/Android/HelloAndroid/app/src/main/cpp/HelloAndroid.cxx b/Android/HelloAndroid/app/src/main/cpp/HelloAndroid.cxx index 120f85596..6209a1217 100644 --- a/Android/HelloAndroid/app/src/main/cpp/HelloAndroid.cxx +++ b/Android/HelloAndroid/app/src/main/cpp/HelloAndroid.cxx @@ -21,7 +21,7 @@ #include <FL/Fl_Window.H> #include <FL/Fl_Button.H> - +#include <FL/Enumerations.H> Fl_Window *win; Fl_Button *btn; @@ -52,29 +52,14 @@ struct engine { struct engine engine = { 0 }; -ANativeWindow_Buffer* gAGraphicsBuffer = 0; - -static int64_t start_ms; static void engine_draw_frame() { - if (Fl_Android_Application::get_native_window() == NULL) { - // No window. - return; - } - - ANativeWindow_Buffer buffer; - if (ANativeWindow_lock(Fl_Android_Application::get_native_window(), &buffer, NULL) < 0) { - LOGW("Unable to lock window buffer"); - return; - } - - gAGraphicsBuffer = &buffer; + //if (Fl_Android_Application::lock_screen()) { Fl::damage(FL_DAMAGE_ALL); win->redraw(); Fl::flush(); - - ANativeWindow_unlockAndPost(Fl_Android_Application::get_native_window()); - gAGraphicsBuffer = 0L; + // Fl_Android_Application::unlock_and_post_screen(); + //} } static void engine_term_display() { @@ -84,8 +69,8 @@ static void engine_term_display() { static int32_t engine_handle_input(AInputEvent* event) { if (AInputEvent_getType(event) == AINPUT_EVENT_TYPE_MOTION) { engine.animating = 1; - Fl::e_x = Fl::e_x_root = AMotionEvent_getX(event, 0) * 600 / ANativeWindow_getWidth(Fl_Android_Application::get_native_window()); - Fl::e_y = Fl::e_y_root = AMotionEvent_getY(event, 0) * 800 / ANativeWindow_getHeight(Fl_Android_Application::get_native_window()); + Fl::e_x = Fl::e_x_root = AMotionEvent_getX(event, 0) * 600 / ANativeWindow_getWidth(Fl_Android_Application::native_window()); + Fl::e_y = Fl::e_y_root = AMotionEvent_getY(event, 0) * 800 / ANativeWindow_getHeight(Fl_Android_Application::native_window()); Fl::e_state = FL_BUTTON1; Fl::e_keysym = FL_Button+1; if (AMotionEvent_getAction(event)==AMOTION_EVENT_ACTION_DOWN) { @@ -113,10 +98,10 @@ static void engine_handle_cmd(int32_t cmd) { static int32_t format = WINDOW_FORMAT_RGB_565; switch (cmd) { case APP_CMD_INIT_WINDOW: - if (Fl_Android_Application::get_native_window() != NULL) { + if (Fl_Android_Application::native_window() != NULL) { // fill_plasma() assumes 565 format, get it here - format = ANativeWindow_getFormat(Fl_Android_Application::get_native_window()); - ANativeWindow_setBuffersGeometry(Fl_Android_Application::get_native_window(), + format = ANativeWindow_getFormat(Fl_Android_Application::native_window()); + ANativeWindow_setBuffersGeometry(Fl_Android_Application::native_window(), #if 1 600, //ANativeWindow_getWidth(app->window), 800, //ANativeWindow_getHeight(app->window), @@ -130,7 +115,7 @@ static void engine_handle_cmd(int32_t cmd) { break; case APP_CMD_TERM_WINDOW: engine_term_display(); - ANativeWindow_setBuffersGeometry(Fl_Android_Application::get_native_window(), + ANativeWindow_setBuffersGeometry(Fl_Android_Application::native_window(), #if 1 600, //ANativeWindow_getWidth(app->window), 800, //ANativeWindow_getHeight(app->window), @@ -157,12 +142,9 @@ int main(int argc, char **argv) Fl_Android_Application::set_on_app_cmd(engine_handle_cmd); Fl_Android_Application::set_on_input_event(engine_handle_input); - struct timespec now; - clock_gettime(CLOCK_MONOTONIC, &now); - start_ms = (((int64_t)now.tv_sec)*1000000000LL + now.tv_nsec)/1000000; - win = new Fl_Window(10, 10, 600, 400, "Hallo"); btn = new Fl_Button(190, 200, 280, 35, "Hello, Android!"); + btn->color(FL_LIGHT2); win->show(); @@ -192,6 +174,7 @@ int main(int argc, char **argv) return 0; } } + //Fl::flush(); if (engine.animating) { engine_draw_frame(); |
