Skip to content

Commit a910997

Browse files
committed
Harmony port: entrypoint
1 parent 0f2b280 commit a910997

File tree

1 file changed

+23
-0
lines changed

1 file changed

+23
-0
lines changed

src/core/ohos/SDL_ohos.c

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
1+
#include "SDL3/SDL_log.h"
12
#include "SDL_internal.h"
23
#include <EGL/egl.h>
34
#include <EGL/eglplatform.h>
5+
#include <dlfcn.h>
46
#include <js_native_api.h>
57
#include <js_native_api_types.h>
68
#include <node_api.h>
@@ -189,7 +191,28 @@ static napi_value sdlCallbackInit(napi_env env, napi_callback_info info)
189191

190192
static napi_value sdlLaunchMain(napi_env env, napi_callback_info info)
191193
{
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);
192207

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;
193216
}
194217

195218
static void OnSurfaceCreatedCB(OH_NativeXComponent *component, void *window)

0 commit comments

Comments
 (0)