dlangui/3rdparty/android/android_native_app_glue.d

85 lines
2.1 KiB
D

/* dstep -I/path/to/ndk-r9d/platforms/android-9/arch-x86/usr/include -I/path/to/ndk-r9d/toolchains/llvm-3.4/prebuilt/linux-x86/lib/clang/3.4/include /path/to/ndk-r9d/sources/android/native_app_glue/android_native_app_glue.h -o android_native_app_glue.d */
module android.android_native_app_glue;
import core.sys.posix.pthread;
import android.input, android.native_window, android.rect;
import android.configuration, android.looper, android.native_activity;
version (Android):
extern (C):
@system:
nothrow:
@nogc:
enum
{
LOOPER_ID_MAIN = 1,
LOOPER_ID_INPUT = 2,
LOOPER_ID_USER = 3
}
enum
{
APP_CMD_INPUT_CHANGED,
APP_CMD_INIT_WINDOW,
APP_CMD_TERM_WINDOW,
APP_CMD_WINDOW_RESIZED,
APP_CMD_WINDOW_REDRAW_NEEDED,
APP_CMD_CONTENT_RECT_CHANGED,
APP_CMD_GAINED_FOCUS,
APP_CMD_LOST_FOCUS,
APP_CMD_CONFIG_CHANGED,
APP_CMD_LOW_MEMORY,
APP_CMD_START,
APP_CMD_RESUME,
APP_CMD_SAVE_STATE,
APP_CMD_PAUSE,
APP_CMD_STOP,
APP_CMD_DESTROY
}
struct android_poll_source
{
int id;
android_app* app;
void function(android_app*, android_poll_source*) process;
}
struct android_app
{
void* userData;
void function(android_app*, int) onAppCmd;
int function(android_app*, AInputEvent*) onInputEvent;
ANativeActivity* activity;
AConfiguration* config;
void* savedState;
size_t savedStateSize;
ALooper* looper;
AInputQueue* inputQueue;
ANativeWindow* window;
ARect contentRect;
int activityState;
int destroyRequested;
pthread_mutex_t mutex;
pthread_cond_t cond;
int msgread;
int msgwrite;
pthread_t thread;
android_poll_source cmdPollSource;
android_poll_source inputPollSource;
int running;
int stateSaved;
int destroyed;
int redrawNeeded;
AInputQueue* pendingInputQueue;
ANativeWindow* pendingWindow;
ARect pendingContentRect;
}
byte android_app_read_cmd(android_app* android_app);
void android_app_pre_exec_cmd(android_app* android_app, byte cmd);
void android_app_post_exec_cmd(android_app* android_app, byte cmd);
void app_dummy();
void android_main(android_app* app);