summaryrefslogtreecommitdiffstats
path: root/Common/NativeApp/include/Android
diff options
context:
space:
mode:
authorEgor <egor.yusov@gmail.com>2018-02-18 08:23:05 +0000
committerEgor <egor.yusov@gmail.com>2018-02-18 08:23:05 +0000
commitf6ffee9ce5e80ae849bb2d55d9b4dbbcc1dcc532 (patch)
treedc873496bbddeb9bcd2fcc6564604cadebaa21f7 /Common/NativeApp/include/Android
parentFew minor updates to lua test scripts (diff)
downloadDiligentEngine-f6ffee9ce5e80ae849bb2d55d9b4dbbcc1dcc532.tar.gz
DiligentEngine-f6ffee9ce5e80ae849bb2d55d9b4dbbcc1dcc532.zip
Improved device orientation/resize handling on Android
Diffstat (limited to 'Common/NativeApp/include/Android')
-rw-r--r--Common/NativeApp/include/Android/AndroidAppBase.h24
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;