Exemplo n.º 1
0
        // 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);
        }
Exemplo n.º 2
0
        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);
        }
Exemplo n.º 4
0
        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));
        }