+void MainThread::app_created(void *data)
+{
+ reinterpret_cast<MainThread *>(data)->resume_startup();
+}
+
+void MainThread::native_window_created(ANativeActivity *activity, ANativeWindow *window)
+{
+ reinterpret_cast<MainThread *>(activity->instance)->signal_native_window_created.emit(window);
+}
+
+void MainThread::native_window_resized(ANativeActivity *activity, ANativeWindow *window)
+{
+ reinterpret_cast<MainThread *>(activity->instance)->signal_native_window_resized.emit(window);
+}
+
+void MainThread::native_window_destroyed(ANativeActivity *activity, ANativeWindow *window)
+{
+ reinterpret_cast<MainThread *>(activity->instance)->signal_native_window_destroyed.emit(window);
+}
+
+void MainThread::input_queue_created(ANativeActivity *activity, AInputQueue *queue)
+{
+ reinterpret_cast<MainThread *>(activity->instance)->signal_input_queue_created.emit(queue);
+}
+
+void MainThread::input_queue_destroyed(ANativeActivity *activity, AInputQueue *queue)
+{
+ reinterpret_cast<MainThread *>(activity->instance)->signal_input_queue_destroyed.emit(queue);
+}
+