diff options
| author | Egor <egor.yusov@gmail.com> | 2018-02-18 08:23:05 +0000 |
|---|---|---|
| committer | Egor <egor.yusov@gmail.com> | 2018-02-18 08:23:05 +0000 |
| commit | f6ffee9ce5e80ae849bb2d55d9b4dbbcc1dcc532 (patch) | |
| tree | dc873496bbddeb9bcd2fcc6564604cadebaa21f7 /Common/NativeApp/include/Android/AndroidAppBase.h | |
| parent | Few minor updates to lua test scripts (diff) | |
| download | DiligentEngine-f6ffee9ce5e80ae849bb2d55d9b4dbbcc1dcc532.tar.gz DiligentEngine-f6ffee9ce5e80ae849bb2d55d9b4dbbcc1dcc532.zip | |
Improved device orientation/resize handling on Android
Diffstat (limited to 'Common/NativeApp/include/Android/AndroidAppBase.h')
| -rw-r--r-- | Common/NativeApp/include/Android/AndroidAppBase.h | 24 |
1 files changed, 21 insertions, 3 deletions
diff --git a/Common/NativeApp/include/Android/AndroidAppBase.h b/Common/NativeApp/include/Android/AndroidAppBase.h index b291f0a..eeedf75 100644 --- a/Common/NativeApp/include/Android/AndroidAppBase.h +++ b/Common/NativeApp/include/Android/AndroidAppBase.h @@ -44,9 +44,25 @@ public: virtual void TermDisplay() = 0; static int32_t HandleInput( android_app* app, AInputEvent* event ); static void HandleCmd( struct android_app* app, int32_t cmd ); - + bool CheckWindowSizeChanged() + { + auto new_window_width_ = ANativeWindow_getWidth(app_->window); + auto new_window_height_ = ANativeWindow_getHeight(app_->window); + if(new_window_width_ != window_width_ || new_window_height_ != window_height_) + { + window_width_ = new_window_width_; + window_height_ = new_window_height_; + return true; + } + else + return false; + } protected: - virtual void Initialize(ANativeWindow* window) = 0; + virtual void Initialize(ANativeWindow* window) + { + CheckWindowSizeChanged(); + } + virtual int Resume(ANativeWindow* window) = 0; virtual int32_t HandleInput(AInputEvent* event ){return 0;} @@ -79,7 +95,9 @@ private: android_app* app_ = nullptr; bool initialized_resources_ = false; bool has_focus_ = false; - + int32_t window_width_ = 0; + int32_t window_height_ = 0; + ASensorManager* sensor_manager_ = nullptr; const ASensor* accelerometer_sensor_ = nullptr; ASensorEventQueue* sensor_event_queue_ = nullptr; |
