// public static bool duk_rebind_this(IntPtr ctx, Matrix4x4 o) // { // DuktapeDLL.duk_push_this(ctx); // DuktapeDLL.duk_unity_put16f(ctx, -1, ...); // DuktapeDLL.duk_pop(ctx); // return true; // } public static bool duk_get_native_refid(IntPtr ctx, int idx, out int id) { if (!DuktapeDLL.duk_is_null_or_undefined(ctx, idx)) { if (DuktapeDLL.duk_unity_get_refid(ctx, idx, out id)) { id = DuktapeDLL.duk_get_int(ctx, -1); return(true); } } id = 0; return(false); }
public static bool duk_rebind_native(IntPtr ctx, int idx, object o) { if (DuktapeDLL.duk_is_null_or_undefined(ctx, idx)) // or check for object? { return(true); } int id; if (DuktapeDLL.duk_unity_get_refid(ctx, idx, out id)) { return(DuktapeVM.GetObjectCache(ctx).ReplaceObject(id, o)); } return(false); }
// public static bool duk_rebind_this(IntPtr ctx, Matrix4x4 o) // { // DuktapeDLL.duk_push_this(ctx); // DuktapeDLL.duk_unity_put16f(ctx, -1, ...); // DuktapeDLL.duk_pop(ctx); // return true; // } public static bool duk_get_native_refid(IntPtr ctx, int idx, out int id) { if (!DuktapeDLL.duk_is_null_or_undefined(ctx, idx)) { if (DuktapeDLL.duk_get_prop_string(ctx, idx, DuktapeVM.OBJ_PROP_NATIVE)) { id = DuktapeDLL.duk_get_int(ctx, -1); return(true); } DuktapeDLL.duk_pop(ctx); // pop OBJ_PROP_NATIVE } id = 0; return(false); }
public static int IsNull(IntPtr ctx) { object o; var res = DuktapeDLL.duk_is_null_or_undefined(ctx, 0); if (!res && duk_get_classvalue(ctx, 0, out o) && o != null && (!(o is UnityEngine.Object) || (o as UnityEngine.Object) != null)) { res = false; } DuktapeDLL.duk_push_boolean(ctx, res); return(1); }
public static bool duk_rebind_native(IntPtr ctx, int idx, object o) { if (DuktapeDLL.duk_is_null_or_undefined(ctx, idx)) // or check for object? { return(true); } if (DuktapeDLL.duk_get_prop_string(ctx, idx, DuktapeVM.OBJ_PROP_NATIVE)) { var id = DuktapeDLL.duk_get_int(ctx, -1); DuktapeDLL.duk_pop(ctx); // pop OBJ_PROP_NATIVE return(DuktapeVM.GetObjectCache(ctx).ReplaceObject(id, o)); } else { DuktapeDLL.duk_pop(ctx); } return(false); }
public static bool duk_get_object(IntPtr ctx, int idx, out object o) { if (DuktapeDLL.duk_is_null_or_undefined(ctx, idx)) // or check for object? { o = null; return(true); } var jstype = DuktapeDLL.duk_get_type(ctx, idx); switch (jstype) { case duk_type_t.DUK_TYPE_STRING: o = DuktapeDLL.duk_get_string(ctx, idx); return(true); default: break; } return(duk_get_cached_object(ctx, idx, out o)); }