diff --git a/core/jni/android_app_NativeActivity.cpp b/core/jni/android_app_NativeActivity.cpp
index 49b9609..dab1dba 100644
--- a/core/jni/android_app_NativeActivity.cpp
+++ b/core/jni/android_app_NativeActivity.cpp
@@ -362,8 +362,12 @@
         sp<ANativeWindow> oldNativeWindow = code->nativeWindow;
         code->setSurface(surface);
         if (oldNativeWindow != code->nativeWindow) {
-            if (code->nativeWindow != NULL && code->callbacks.onNativeWindowChanged != NULL) {
-                code->callbacks.onNativeWindowChanged(&code->activity,
+            if (oldNativeWindow != NULL && code->callbacks.onNativeWindowDestroyed != NULL) {
+                code->callbacks.onNativeWindowDestroyed(&code->activity,
+                        oldNativeWindow.get());
+            }
+            if (code->nativeWindow != NULL && code->callbacks.onNativeWindowCreated != NULL) {
+                code->callbacks.onNativeWindowCreated(&code->activity,
                         code->nativeWindow.get());
             }
         }
diff --git a/native/android/native_window.cpp b/native/android/native_window.cpp
index 7a6eb6d..448cbfc 100644
--- a/native/android/native_window.cpp
+++ b/native/android/native_window.cpp
@@ -39,3 +39,9 @@
 int32_t ANativeWindow_getFormat(ANativeWindow* window) {
     return getWindowProp(window, NATIVE_WINDOW_FORMAT);
 }
+
+int32_t ANativeWindow_setBuffersGeometry(ANativeWindow* window, int32_t width,
+        int32_t height, int32_t format) {
+    native_window_set_buffers_geometry(window, width, height, format);
+    return 0;
+}
diff --git a/native/include/android/native_activity.h b/native/include/android/native_activity.h
index d23e40f..bf5c641 100644
--- a/native/include/android/native_activity.h
+++ b/native/include/android/native_activity.h
@@ -132,14 +132,6 @@
     void (*onNativeWindowCreated)(ANativeActivity* activity, ANativeWindow* window);
 
     /**
-     * The drawing window for this native activity has changed.  During this time,
-     * old ANativeWindow object is still valid but no longer active and drawing
-     * should switch to the new ANativeWindow given here.  After returning from
-     * this function, you must not touch the old window.
-     */
-    void (*onNativeWindowChanged)(ANativeActivity* activity, ANativeWindow* window);
-
-    /**
      * The drawing window for this native activity is going to be destroyed.
      * You MUST ensure that you do not touch the window object after returning
      * from this function: in the common case of drawing to the window from
diff --git a/native/include/android/native_window.h b/native/include/android/native_window.h
index b3f47b2..678ba3d 100644
--- a/native/include/android/native_window.h
+++ b/native/include/android/native_window.h
@@ -22,6 +22,15 @@
 extern "C" {
 #endif
 
+/*
+ * Pixel formats that a window can use.
+ */
+enum {
+    WINDOW_FORMAT_RGBA_8888          = 1,
+    WINDOW_FORMAT_RGBX_8888          = 2,
+    WINDOW_FORMAT_RGB_565            = 4,
+};
+
 struct ANativeWindow;
 typedef struct ANativeWindow ANativeWindow;
 
@@ -43,6 +52,22 @@
  */
 int32_t ANativeWindow_getFormat(ANativeWindow* window);
 
+/*
+ * Change the format and size of the window buffers.
+ *
+ * The width and height control the number of pixels in the buffers, not the
+ * dimensions of the window on screen.  If these are different than the
+ * window's physical size, then it buffer will be scaled to match that size
+ * when compositing it to the screen.
+ *
+ * The format may be one of the window format constants above.
+ *
+ * For all of these parameters, if 0 is supplied than the window's base
+ * value will come back in force.
+ */
+int32_t ANativeWindow_setBuffersGeometry(ANativeWindow* window, int32_t width,
+        int32_t height, int32_t format);
+
 #ifdef __cplusplus
 };
 #endif
