Esempio n. 1
0
 private JSTypedArray(JavaScriptTypedArrayType type, uint position, uint unitCount, Action <SharedMemoryBuffer> init) : base(SharedBufferSourceEnum.CreateInJavascript, unitCount * GetUnitByteSizeByArrayType(type))
 {
     ArrayType = type;
     Position  = position;
     UnitSize  = GetUnitByteSizeByArrayType(type);
     UnitCount = unitCount;
 }
Esempio n. 2
0
        public static uint GetUnitByteSizeByArrayType(JavaScriptTypedArrayType type)
        {
            switch (type)
            {
            case JavaScriptTypedArrayType.Int8:
            case JavaScriptTypedArrayType.Uint8:
            case JavaScriptTypedArrayType.Uint8Clamped:
                return(1);

            case JavaScriptTypedArrayType.Int16:
            case JavaScriptTypedArrayType.Uint16:
                return(2);

            case JavaScriptTypedArrayType.Int32:
            case JavaScriptTypedArrayType.Uint32:
            case JavaScriptTypedArrayType.Float32:
                return(4);

            case JavaScriptTypedArrayType.Float64:
                return(8);

            default:
                throw new ArgumentException("not a valid TypedArrayType", nameof(ArrayType));
            }
        }
Esempio n. 3
0
        public static JSTypedArray CreateFromArrayBuffer(JavaScriptTypedArrayType type, JSArrayBuffer source, uint position, uint unitCount)
        {
            JSTypedArray result = new JSTypedArray(type, source, position, unitCount);

            result.InitWindow(source.Buffer, position);
            return(result);
        }
Esempio n. 4
0
        internal static JSTypedArray CreateFromJS(JavaScriptTypedArrayType type, IntPtr data, uint unitCount, JavaScriptValue source, IContextSwitchService context)
        {
            JSTypedArray result = new JSTypedArray(type, 0, unitCount);

            result.SetJSSource(source, context);
            result.InitWindow(data, false);
            return(result);
        }
Esempio n. 5
0
 private JSTypedArray(JavaScriptTypedArrayType type, JSArrayBuffer source, uint position, uint unitCount) : base(SharedBufferSourceEnum.CreateByDotnet, unitCount * GetUnitByteSizeByArrayType(type))
 {
     ArrayType   = type;
     Position    = position;
     UnitSize    = GetUnitByteSizeByArrayType(type);
     UnitCount   = unitCount;
     ArrayBuffer = source;
 }
Esempio n. 6
0
        public static JSTypedArray CreateInJS(JavaScriptTypedArrayType type, uint unitCount, Action <SharedMemoryBuffer> init)
        {
            var result = new JSTypedArray(type, 0, unitCount, init);

            if (init != null)
            {
                result.SetupInitValueAction(init);
            }
            return(result);
        }
 internal static extern JavaScriptErrorCode JsGetTypedArrayInfo(JavaScriptValue typedArray, out JavaScriptTypedArrayType arrayType, out JavaScriptValue arrayBuffer, out uint byteOffset, out uint byteLength);
 internal static extern JavaScriptErrorCode JsGetIndexedPropertiesExternalData(JavaScriptValue obj, IntPtr data, out JavaScriptTypedArrayType arrayType, out uint elementLength);
 internal static extern JavaScriptErrorCode JsGetTypedArrayStorage(JavaScriptValue typedArray, out byte[] buffer, out uint bufferLength, out JavaScriptTypedArrayType arrayType, out int elementSize);
 internal static extern JavaScriptErrorCode JsCreateTypedArray(JavaScriptTypedArrayType arrayType, JavaScriptValue arrayBuffer, uint byteOffset,
                                                               uint elementLength, out JavaScriptValue result);
Esempio n. 11
0
 internal static extern JsErrorCode JsSetIndexedPropertiesToExternalData(JsValue obj,
                                                                         IntPtr data,
                                                                         JavaScriptTypedArrayType arrayType,
                                                                         uint elementLength);
Esempio n. 12
0
 internal static extern JavaScriptErrorCode JsGetTypedArrayStorage(JavaScriptValue typedArray, out byte[] buffer, out uint bufferLength, out JavaScriptTypedArrayType arrayType, out int elementSize);
Esempio n. 13
0
 public static void GetTypedArrayStorage(JavaScriptValue typedArray, out IntPtr data, out uint bufferLength, out JavaScriptTypedArrayType arrayType, out int elementSize)
 {
     Native.ThrowIfError(Native.JsGetTypedArrayStorage(typedArray, out IntPtr _data, out uint _bufferLength, out JavaScriptTypedArrayType _arrayType, out int _elementSize));
     data         = _data;
     bufferLength = _bufferLength;
     arrayType    = _arrayType;
     elementSize  = _elementSize;
 }
Esempio n. 14
0
 public static JavaScriptValue CreateTypedArray(JavaScriptTypedArrayType arrayType, JavaScriptValue arrayBuffer, uint byteOffset, uint elementLength)
 {
     Native.ThrowIfError(Native.JsCreateTypedArray(arrayType, arrayBuffer, byteOffset, elementLength, out JavaScriptValue result));
     return(result);
 }
Esempio n. 15
0
 internal static extern JavaScriptErrorCode JsGetTypedArrayInfo(JavaScriptValue typedArray, out JavaScriptTypedArrayType arrayType, out JavaScriptValue arrayBuffer, out uint byteOffset, out uint byteLength);
Esempio n. 16
0
 internal static extern JavaScriptErrorCode JsCreateTypedArray(JavaScriptTypedArrayType arrayType, JavaScriptValue arrayBuffer, uint byteOffset,
     uint elementLength, out JavaScriptValue result);
Esempio n. 17
0
 public static extern JavaScriptErrorCode JsGetTypedArrayStorage(JavaScriptValue typedArray, out IntPtr data, out uint bufferLength, out JavaScriptTypedArrayType arrayType, out int elementSize);
Esempio n. 18
0
 internal static extern JavaScriptErrorCode JsGetIndexedPropertiesExternalData(JavaScriptValue obj, IntPtr data, out JavaScriptTypedArrayType arrayType, out uint elementLength);
Esempio n. 19
0
 internal static extern JsErrorCode JsGetTypedArrayStorage(JsValue typedArray,
                                                           out IntPtr buffer,
                                                           out uint bufferLength,
                                                           out JavaScriptTypedArrayType arrayType,
                                                           out int elementSize);