Use minimal awt_xawt stub

This commit is contained in:
khanhduytran0 2021-02-02 19:15:49 +07:00
parent 4f0a781e00
commit 24f162f9ee
17 changed files with 120 additions and 24 deletions

View File

@ -32,13 +32,21 @@ include $(BUILD_SHARED_LIBRARY)
# LOCAL_SRC_FILES := thread_helper.cpp
# include $(BUILD_SHARED_LIBRARY)
# fake lib for linker
include $(CLEAR_VARS)
LOCAL_MODULE := awt_headless
include $(BUILD_SHARED_LIBRARY)
# libawt_xawt without X11, used to get Caciocavallo working
LOCAL_PATH := $(HERE_PATH)/awt_xawt
include $(CLEAR_VARS)
LOCAL_MODULE := awt_xawt
# LOCAL_CFLAGS += -DHEADLESS
LOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH)
LOCAL_SRC_FILES := \
LOCAL_SHARED_LIBRARIES := awt_headless
LOCAL_SRC_FILES := xawt_fake.c
# commented out
LOCAL_SRC_FILES_ALL := \
xawt_fake.c \
awt_AWTEvent.c \
awt_Event.c \
@ -53,3 +61,6 @@ LOCAL_SRC_FILES := \
XToolkit.c
include $(BUILD_SHARED_LIBRARY)
# delete fake libs after linked
$(info $(shell (rm $(HERE_PATH)/../jniLibs/*/libawt_headless.so)))

View File

@ -1,30 +1,85 @@
#include <jni.h>
#include <stdlib.h>
#include "jni.h"
#include "awt_global.h"
jint JNI_OnLoad(JavaVM* vm, void* reserved) {
GLOBAL_WIDTH = atoi(getenv("AWTSTUB_WIDTH"));
GLOBAL_HEIGHT = atoi(getenv("AWTSTUB_HEIGHT"));
JNIEXPORT void JNICALL
Java_java_awt_Component_initIDs
(JNIEnv *env, jclass cls)
{
return JNI_VERSION_1_4;
}
JNIEXPORT void JNICALL Java_java_awt_Font_initIDs(JNIEnv *env, jclass cls) {}
JNIEXPORT void JNICALL Java_sun_awt_X11_XWindow_initIDs(JNIEnv *env, jclass cls) {}
JNIEXPORT void JNICALL Java_sun_font_SunFontManager_initIDs(JNIEnv *env, jclass cls) {}
JNIEXPORT void JNICALL
Java_java_awt_Container_initIDs
(JNIEnv *env, jclass cls)
{
}
JNIEXPORT void JNICALL Java_sun_java2d_x11_X11SurfaceData_initIDs(JNIEnv *env, jclass cls) {}
JNIEXPORT void JNICALL Java_sun_java2d_x11_X11SurfaceData_initSurface(JNIEnv *env, jclass cls, jint depth, jint width, jint height, jlong drawable) {
// Any ideas to implement?
JNIEXPORT void JNICALL
Java_java_awt_Window_initIDs
(JNIEnv *env, jclass cls)
{
}
JNIEXPORT jboolean JNICALL Java_sun_java2d_x11_X11SurfaceData_isDgaAvailable(JNIEnv *env, jclass cls) {
return JNI_FALSE;
}
JNIEXPORT jboolean JNICALL Java_sun_java2d_x11_X11SurfaceData_isShmPMAvailable(JNIEnv *env, jclass cls) {
return JNI_FALSE;
}
JNIEXPORT void JNICALL Java_sun_java2d_x11_X11SurfaceData_XSetCopyMode(JNIEnv *env, jclass cls, jlong xgc) {}
JNIEXPORT void JNICALL Java_sun_java2d_x11_X11SurfaceData_XSetXorMode(JNIEnv *env, jclass cls, jlong xgv) {}
JNIEXPORT void JNICALL Java_sun_java2d_x11_X11SurfaceData_XSetForeground(JNIEnv *env, jclass cls, jlong xgc, jint pixel) {}
JNIEXPORT void JNICALL
Java_java_awt_Frame_initIDs
(JNIEnv *env, jclass cls)
{
}
JNIEXPORT void JNICALL
Java_java_awt_Insets_initIDs
(JNIEnv *env, jclass cls)
{
}
JNIEXPORT void JNICALL
Java_java_awt_KeyboardFocusManager_initIDs
(JNIEnv *env, jclass cls)
{
}
JNIEXPORT void JNICALL
Java_java_awt_AWTEvent_initIDs
(JNIEnv *env, jclass cls)
{
}
JNIEXPORT void JNICALL
Java_java_awt_Cursor_initIDs
(JNIEnv *env, jclass cls)
{
}
JNIEXPORT void JNICALL
Java_java_awt_Dialog_initIDs
(JNIEnv *env, jclass cls)
{
}
JNIEXPORT void JNICALL
Java_java_awt_event_InputEvent_initIDs
(JNIEnv *env, jclass cls)
{
}
JNIEXPORT void JNICALL
Java_java_awt_event_KeyEvent_initIDs
(JNIEnv *env, jclass cls)
{
}
JNIEXPORT void JNICALL
Java_sun_awt_SunToolkit_closeSplashScreen
(JNIEnv *env, jclass cls)
{
}

View File

@ -0,0 +1,30 @@
#include <jni.h>
#include <stdlib.h>
#include "awt_global.h"
jint JNI_OnLoad(JavaVM* vm, void* reserved) {
GLOBAL_WIDTH = atoi(getenv("AWTSTUB_WIDTH"));
GLOBAL_HEIGHT = atoi(getenv("AWTSTUB_HEIGHT"));
return JNI_VERSION_1_4;
}
JNIEXPORT void JNICALL Java_java_awt_Font_initIDs(JNIEnv *env, jclass cls) {}
JNIEXPORT void JNICALL Java_sun_awt_X11_XWindow_initIDs(JNIEnv *env, jclass cls) {}
JNIEXPORT void JNICALL Java_sun_font_SunFontManager_initIDs(JNIEnv *env, jclass cls) {}
JNIEXPORT void JNICALL Java_sun_java2d_x11_X11SurfaceData_initIDs(JNIEnv *env, jclass cls) {}
JNIEXPORT void JNICALL Java_sun_java2d_x11_X11SurfaceData_initSurface(JNIEnv *env, jclass cls, jint depth, jint width, jint height, jlong drawable) {
// Any ideas to implement?
}
JNIEXPORT jboolean JNICALL Java_sun_java2d_x11_X11SurfaceData_isDgaAvailable(JNIEnv *env, jclass cls) {
return JNI_FALSE;
}
JNIEXPORT jboolean JNICALL Java_sun_java2d_x11_X11SurfaceData_isShmPMAvailable(JNIEnv *env, jclass cls) {
return JNI_FALSE;
}
JNIEXPORT void JNICALL Java_sun_java2d_x11_X11SurfaceData_XSetCopyMode(JNIEnv *env, jclass cls, jlong xgc) {}
JNIEXPORT void JNICALL Java_sun_java2d_x11_X11SurfaceData_XSetXorMode(JNIEnv *env, jclass cls, jlong xgv) {}
JNIEXPORT void JNICALL Java_sun_java2d_x11_X11SurfaceData_XSetForeground(JNIEnv *env, jclass cls, jlong xgc, jint pixel) {}