#ifndef JS_raylib_core_GUARD #define JS_raylib_core_GUARD #include #include #include #include #include #ifndef countof #define countof(x) (sizeof(x) / sizeof((x)[0])) #endif static JSValue js_setWindowTitle(JSContext * ctx, JSValueConst this_val, int argc, JSValueConst * argv) { const char * title = JS_ToCString(ctx, argv[0]); if(title == NULL) return JS_EXCEPTION; SetWindowTitle(title); JS_FreeCString(ctx, title); return JS_UNDEFINED; } static JSValue js_setWindowPosition(JSContext * ctx, JSValueConst this_val, int argc, JSValueConst * argv) { int x; JS_ToInt32(ctx, &x, argv[0]); int y; JS_ToInt32(ctx, &y, argv[1]); SetWindowPosition(x, y); return JS_UNDEFINED; } static JSValue js_beginDrawing(JSContext * ctx, JSValueConst this_val, int argc, JSValueConst * argv) { BeginDrawing(); return JS_UNDEFINED; } static JSValue js_endDrawing(JSContext * ctx, JSValueConst this_val, int argc, JSValueConst * argv) { EndDrawing(); return JS_UNDEFINED; } static const JSCFunctionListEntry js_raylib_core_funcs[] = { JS_CFUNC_DEF("setWindowTitle",1,js_setWindowTitle), JS_CFUNC_DEF("setWindowPosition",2,js_setWindowPosition), JS_CFUNC_DEF("beginDrawing",0,js_beginDrawing), JS_CFUNC_DEF("endDrawing",0,js_endDrawing), }; static int js_raylib_core_init(JSContext * ctx, JSModuleDef * m) { JS_SetModuleExportList(ctx, m,js_raylib_core_funcs,countof(js_raylib_core_funcs)); return 0; } JSModuleDef * js_init_module_raylib_core(JSContext * ctx, const char * module_name) { JSModuleDef *m; m = JS_NewCModule(ctx, module_name, js_raylib_core_init); if(!m) return NULL; JS_AddModuleExportList(ctx, m, js_raylib_core_funcs, countof(js_raylib_core_funcs)); return m; } #endif // JS_raylib_core_GUARD