|
| 1 | +#include "SDL3/SDL_log.h" |
1 | 2 | #include "SDL_internal.h"
|
2 | 3 | #include <EGL/egl.h>
|
3 | 4 | #include <EGL/eglplatform.h>
|
| 5 | +#include <dlfcn.h> |
4 | 6 | #include <js_native_api.h>
|
5 | 7 | #include <js_native_api_types.h>
|
6 | 8 | #include <node_api.h>
|
@@ -189,7 +191,28 @@ static napi_value sdlCallbackInit(napi_env env, napi_callback_info info)
|
189 | 191 |
|
190 | 192 | static napi_value sdlLaunchMain(napi_env env, napi_callback_info info)
|
191 | 193 | {
|
| 194 | + size_t argc = 2; |
| 195 | + napi_value args[2] = { NULL, NULL }; |
| 196 | + napi_get_cb_info(env, info, &argc, args, NULL, NULL); |
| 197 | + |
| 198 | + size_t libstringSize = 0; |
| 199 | + napi_get_value_string_utf8(env, args[0], NULL, 0, &libstringSize); |
| 200 | + char* libname = SDL_malloc(libstringSize + 1); |
| 201 | + napi_get_value_string_utf8(env, args[0], libname, libstringSize + 1, &libstringSize); |
| 202 | + |
| 203 | + size_t fstringSize = 0; |
| 204 | + napi_get_value_string_utf8(env, args[1], NULL, 0, &fstringSize); |
| 205 | + char* fname = SDL_malloc(fstringSize + 1); |
| 206 | + napi_get_value_string_utf8(env, args[1], libname, fstringSize + 1, &fstringSize); |
192 | 207 |
|
| 208 | + void* lib = dlopen(libname, RTLD_LAZY); |
| 209 | + void* func = dlsym(lib, fname); |
| 210 | + SDL_Log("Main func: %lld", (long long)func); |
| 211 | + dlclose(lib); |
| 212 | + |
| 213 | + napi_value result; |
| 214 | + napi_create_int32(env, 0, &result); |
| 215 | + return result; |
193 | 216 | }
|
194 | 217 |
|
195 | 218 | static void OnSurfaceCreatedCB(OH_NativeXComponent *component, void *window)
|
|
0 commit comments