Plugin fixes
This commit is contained in:
+28
-28
@@ -439,8 +439,8 @@ VOID_FN_CB(context_set_viewport_shader)
|
||||
|
||||
void node_shader_add_constant(void *p, char *s0, char *s1, bool b);
|
||||
FN(node_shader_add_constant) {
|
||||
int64_t p;
|
||||
JS_ToInt64(ctx, &p, argv[0]);
|
||||
uint64_t p;
|
||||
JS_ToBigUint64(ctx, &p, argv[0]);
|
||||
char *s0 = (char *)JS_ToCString(ctx, argv[1]);
|
||||
char *s1 = (char *)JS_ToCString(ctx, argv[2]);
|
||||
node_shader_add_constant((void *)p, s0, s1, false);
|
||||
@@ -458,8 +458,8 @@ FN(gpu_create_texture_from_bytes) {
|
||||
JS_ToInt64(ctx, &w, argv[1]);
|
||||
int64_t h;
|
||||
JS_ToInt64(ctx, &h, argv[2]);
|
||||
int64_t result = (int64_t)gpu_create_texture_from_bytes(&b, w, h, 0);
|
||||
return JS_NewInt64(ctx, result);
|
||||
uint64_t result = (uint64_t)gpu_create_texture_from_bytes(&b, w, h, 0);
|
||||
return JS_NewBigUint64(ctx, result);
|
||||
}
|
||||
|
||||
extern char *project_filepath;
|
||||
@@ -474,14 +474,14 @@ FN(project_save) {
|
||||
}
|
||||
|
||||
FN(ui_handle_create) {
|
||||
int64_t result = (int64_t)ui_handle_create();
|
||||
uint64_t result = (uint64_t)ui_handle_create();
|
||||
any_array_push(plugin_gc, (void *)result);
|
||||
return JS_NewInt64(ctx, result);
|
||||
return JS_NewBigUint64(ctx, result);
|
||||
}
|
||||
|
||||
FN(ui_handle_set_value) {
|
||||
int64_t p;
|
||||
JS_ToInt64(ctx, &p, argv[0]);
|
||||
uint64_t p;
|
||||
JS_ToBigUint64(ctx, &p, argv[0]);
|
||||
ui_handle_t *h = (ui_handle_t *)p;
|
||||
double d;
|
||||
JS_ToFloat64(ctx, &d, argv[1]);
|
||||
@@ -490,15 +490,15 @@ FN(ui_handle_set_value) {
|
||||
}
|
||||
|
||||
FN(ui_handle_get_value) {
|
||||
int64_t p;
|
||||
JS_ToInt64(ctx, &p, argv[0]);
|
||||
uint64_t p;
|
||||
JS_ToBigUint64(ctx, &p, argv[0]);
|
||||
ui_handle_t *h = (ui_handle_t *)p;
|
||||
return JS_NewFloat64(ctx, h->value);
|
||||
}
|
||||
|
||||
FN(ui_panel) {
|
||||
int64_t p;
|
||||
JS_ToInt64(ctx, &p, argv[0]);
|
||||
uint64_t p;
|
||||
JS_ToBigUint64(ctx, &p, argv[0]);
|
||||
char *s = (char *)JS_ToCString(ctx, argv[1]);
|
||||
bool result = ui_panel((void *)p, s, false, false);
|
||||
return JS_NewBool(ctx, result);
|
||||
@@ -517,16 +517,16 @@ FN(ui_text) {
|
||||
}
|
||||
|
||||
FN(ui_text_input) {
|
||||
int64_t p;
|
||||
JS_ToInt64(ctx, &p, argv[0]);
|
||||
uint64_t p;
|
||||
JS_ToBigUint64(ctx, &p, argv[0]);
|
||||
char *s = (char *)JS_ToCString(ctx, argv[1]);
|
||||
ui_text_input((void *)p, s, UI_ALIGN_LEFT, true, false);
|
||||
return JS_UNDEFINED;
|
||||
}
|
||||
|
||||
FN(ui_slider) {
|
||||
int64_t p;
|
||||
JS_ToInt64(ctx, &p, argv[0]);
|
||||
uint64_t p;
|
||||
JS_ToBigUint64(ctx, &p, argv[0]);
|
||||
char *s = (char *)JS_ToCString(ctx, argv[1]);
|
||||
double from = 0.0;
|
||||
double to = 1.0;
|
||||
@@ -549,16 +549,16 @@ FN(ui_slider) {
|
||||
}
|
||||
|
||||
FN(ui_check) {
|
||||
int64_t p;
|
||||
JS_ToInt64(ctx, &p, argv[0]);
|
||||
uint64_t p;
|
||||
JS_ToBigUint64(ctx, &p, argv[0]);
|
||||
char *s = (char *)JS_ToCString(ctx, argv[1]);
|
||||
ui_check((void *)p, s, "");
|
||||
return JS_UNDEFINED;
|
||||
}
|
||||
|
||||
FN(ui_radio) {
|
||||
int64_t p;
|
||||
JS_ToInt64(ctx, &p, argv[0]);
|
||||
uint64_t p;
|
||||
JS_ToBigUint64(ctx, &p, argv[0]);
|
||||
int32_t pos;
|
||||
JS_ToInt32(ctx, &pos, argv[1]);
|
||||
char *s = (char *)JS_ToCString(ctx, argv[2]);
|
||||
@@ -582,8 +582,8 @@ FN(ui_row) {
|
||||
}
|
||||
|
||||
FN(ui_combo) {
|
||||
int64_t p;
|
||||
JS_ToInt64(ctx, &p, argv[0]);
|
||||
uint64_t p;
|
||||
JS_ToBigUint64(ctx, &p, argv[0]);
|
||||
|
||||
JSValue val_len = JS_GetPropertyStr(ctx, argv[1], "length");
|
||||
int len;
|
||||
@@ -639,13 +639,13 @@ FN(parser_material_custom_nodes_delete) {
|
||||
|
||||
extern void *parser_material_kong;
|
||||
FN(parser_material_kong_get) {
|
||||
return JS_NewInt64(ctx, (int64_t)parser_material_kong);
|
||||
return JS_NewBigUint64(ctx, (uint64_t)parser_material_kong);
|
||||
}
|
||||
|
||||
char *parser_material_parse_value_input(void *inp, bool vector_as_grayscale);
|
||||
FN(parser_material_parse_value_input) {
|
||||
int64_t *node;
|
||||
JS_ToInt64(ctx, &node, argv[0]);
|
||||
uint64_t *node;
|
||||
JS_ToBigUint64(ctx, &node, argv[0]);
|
||||
int64_t i;
|
||||
JS_ToInt64(ctx, &i, argv[1]);
|
||||
char *s = parser_material_parse_value_input(((ui_node_t *)node)->inputs->buffer[i], false);
|
||||
@@ -771,13 +771,13 @@ FN(plugin_api_make_raw_mesh) {
|
||||
JS_ToFloat64(ctx, &d, argv[4]);
|
||||
mesh->scale_pos = d;
|
||||
mesh->scale_tex = 1.0;
|
||||
return JS_NewInt64(ctx, (int64_t)mesh);
|
||||
return JS_NewBigUint64(ctx, (uint64_t)mesh);
|
||||
}
|
||||
|
||||
void transform_rotate(void *raw, vec4_t axis, float f);
|
||||
FN(transform_rotate) {
|
||||
int64_t p;
|
||||
JS_ToInt64(ctx, &p, argv[0]);
|
||||
uint64_t p;
|
||||
JS_ToBigUint64(ctx, &p, argv[0]);
|
||||
vec4_t axis;
|
||||
axis.x = 0.0;
|
||||
axis.y = 0.0;
|
||||
|
||||
@@ -7,9 +7,9 @@
|
||||
|
||||
extern JSRuntime *js_runtime;
|
||||
extern JSContext *js_ctx;
|
||||
void js_eval(const char *s);
|
||||
void js_call(void *p);
|
||||
void js_call_arg(void *p, int argc, void *argv);
|
||||
float js_eval(const char *s);
|
||||
char *js_call(void *p);
|
||||
JSValue js_call_arg(void *p, int argc, void *argv);
|
||||
|
||||
// ██████╗ ███████╗███████╗██╗███╗ ██╗███████╗███████╗
|
||||
// ██╔══██╗██╔════╝██╔════╝██║████╗ ██║██╔════╝██╔════╝
|
||||
@@ -31,8 +31,8 @@ void js_call_arg(void *p, int argc, void *argv);
|
||||
#define PTR_FN(name)\
|
||||
void *name();\
|
||||
FN(name) {\
|
||||
int64_t result = (int64_t)name();\
|
||||
return JS_NewInt64(ctx, result);\
|
||||
uint64_t result = (uint64_t)name();\
|
||||
return JS_NewBigUint64(ctx, result);\
|
||||
}
|
||||
|
||||
#define VOID_FN_STR(name)\
|
||||
@@ -46,8 +46,8 @@ void js_call_arg(void *p, int argc, void *argv);
|
||||
#define VOID_FN_PTR_STR(name)\
|
||||
void name(void *p, char *s);\
|
||||
FN(name) {\
|
||||
int64_t p;\
|
||||
JS_ToInt64(ctx, &p, argv[0]);\
|
||||
uint64_t p;\
|
||||
JS_ToBigUint64(ctx, &p, argv[0]);\
|
||||
char *s = (char *)JS_ToCString(ctx, argv[1]);\
|
||||
name((void *)p, s);\
|
||||
return JS_UNDEFINED;\
|
||||
@@ -67,8 +67,8 @@ void js_call_arg(void *p, int argc, void *argv);
|
||||
#define VOID_FN_PTR_CB(name)\
|
||||
void name(void *p0, void *p1);\
|
||||
FN(name) {\
|
||||
int64_t p0;\
|
||||
JS_ToInt64(ctx, &p0, argv[0]);\
|
||||
uint64_t p0;\
|
||||
JS_ToBigUint64(ctx, &p0, argv[0]);\
|
||||
JSValue *p1 = malloc(sizeof(JSValue));\
|
||||
JSValue dup = JS_DupValue(ctx, argv[1]);\
|
||||
memcpy(p1, &dup, sizeof(JSValue));\
|
||||
|
||||
+11
-13
@@ -92,49 +92,47 @@ float js_eval(const char *js) {
|
||||
return d;
|
||||
}
|
||||
|
||||
JSValue js_call_result;
|
||||
|
||||
JSValue *js_call_arg(void *p, int argc, JSValue *argv) {
|
||||
JSValue js_call_arg(void *p, int argc, JSValue *argv) {
|
||||
if (js_runtime == NULL) {
|
||||
js_init();
|
||||
}
|
||||
JSValue fn = *(JSValue *)p;
|
||||
JSValue global_obj = JS_GetGlobalObject(js_ctx);
|
||||
js_call_result = JS_Call(js_ctx, fn, global_obj, argc, argv);
|
||||
JSValue js_call_result = JS_Call(js_ctx, fn, global_obj, argc, argv);
|
||||
if (JS_IsException(js_call_result)) {
|
||||
js_std_dump_error(js_ctx);
|
||||
JS_ResetUncatchableError(js_ctx);
|
||||
}
|
||||
JS_FreeValue(js_ctx, global_obj);
|
||||
return &js_call_result;
|
||||
return js_call_result;
|
||||
}
|
||||
|
||||
char *js_call_ptr(void *p, void *arg) {
|
||||
JSValue argv[] = { JS_NewInt64(js_ctx, (int64_t)arg) };
|
||||
return (char *)JS_ToCString(js_ctx, *js_call_arg(p, 1, argv));
|
||||
JSValue argv[] = { JS_NewBigUint64(js_ctx, (uint64_t)arg) };
|
||||
return (char *)JS_ToCString(js_ctx, js_call_arg(p, 1, argv));
|
||||
}
|
||||
|
||||
char *js_call_ptr_str(void *p, void *arg0, char *arg1) {
|
||||
JSValue argv[] = { JS_NewInt64(js_ctx, (int64_t)arg0), JS_NewString(js_ctx, arg1) };
|
||||
return (char *)JS_ToCString(js_ctx, *js_call_arg(p, 2, argv));
|
||||
JSValue argv[] = { JS_NewBigUint64(js_ctx, (uint64_t)arg0), JS_NewString(js_ctx, arg1) };
|
||||
return (char *)JS_ToCString(js_ctx, js_call_arg(p, 2, argv));
|
||||
}
|
||||
|
||||
void *js_pcall_str(void *p, char *arg0) {
|
||||
JSValue argv[] = { JS_NewString(js_ctx, arg0) };
|
||||
int64_t result;
|
||||
JS_ToInt64(js_ctx, &result, *js_call_arg(p, 1, argv));
|
||||
uint64_t result;
|
||||
JS_ToBigUint64(js_ctx, &result, js_call_arg(p, 1, argv));
|
||||
return (void *)result;
|
||||
}
|
||||
|
||||
char *js_call(void *p) {
|
||||
return (char *)JS_ToCString(js_ctx, *js_call_arg(p, 0, NULL));
|
||||
return (char *)JS_ToCString(js_ctx, js_call_arg(p, 0, NULL));
|
||||
}
|
||||
|
||||
#else
|
||||
|
||||
void js_init() {}
|
||||
float js_eval(const char *js) { return 0.0; }
|
||||
void *js_call_arg(void *p, int argc, void *argv) { return NULL; }
|
||||
void js_call_arg(void *p, int argc, void *argv) { return NULL; }
|
||||
char *js_call_ptr(void *p, void *arg) { return NULL; }
|
||||
char *js_call_ptr_str(void *p, void *arg0, char *arg1) { return NULL; }
|
||||
void *js_pcall_str(void *p, char *arg0) { return NULL; }
|
||||
|
||||
Reference in New Issue
Block a user