Skip to content

Commit 34df9c0

Browse files
committed
fix: new 8.2.0 methods
1 parent 0799074 commit 34df9c0

File tree

3 files changed

+27
-10
lines changed

3 files changed

+27
-10
lines changed

src/canvas.android.ts

Lines changed: 15 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -53,8 +53,15 @@ export function supportsDirectArrayBuffers() {
5353
return _supportsDirectArrayBuffers;
5454
}
5555

56+
export function createArrayBufferOrNativeArray(length: number, useInts = false) {
57+
if (!supportsDirectArrayBuffers()) {
58+
return createNativeArray(length, useInts);
59+
} else {
60+
return createArrayBuffer(length, useInts);
61+
}
62+
}
5663
export function createArrayBuffer(length: number, useInts = false) {
57-
if (global.isAndroid && !supportsDirectArrayBuffers()) {
64+
if (!supportsDirectArrayBuffers()) {
5865
let bb: java.nio.ByteBuffer;
5966
if (useInts) {
6067
bb = java.nio.ByteBuffer.allocateDirect(length);
@@ -67,7 +74,7 @@ export function createArrayBuffer(length: number, useInts = false) {
6774
return useInts ? new Int8Array(length) : new Float32Array(length);
6875
}
6976
export function pointsFromBuffer(typedArray: Float32Array | Int8Array, useInts = false) {
70-
if (global.isAndroid && !supportsDirectArrayBuffers()) {
77+
if (!supportsDirectArrayBuffers()) {
7178
if (useInts) {
7279
const buffer = typedArray.buffer;
7380
return ((buffer as any).nativeObject as java.nio.ByteBuffer).array();
@@ -92,8 +99,8 @@ export function arrayToNativeArray(array, useInts = false) {
9299
}
93100

94101
// export const nativeArrayToArray = profile('nativeArrayToArray', function(array) {
95-
export function nativeArrayToArray(array) {
96-
if (global.isAndroid && !supportsDirectArrayBuffers()) {
102+
export function nativeArrayToArray(array): number[] {
103+
if (!supportsDirectArrayBuffers()) {
97104
const result = [];
98105
for (let index = 0; index < array.length; index++) {
99106
result[index] = array[index];
@@ -103,12 +110,12 @@ export function nativeArrayToArray(array) {
103110
}
104111
return array;
105112
}
106-
export function createNativeArray(length) {
107-
if (global.isAndroid) {
113+
export function createNativeArray(length, useInts = false): number[] {
114+
if (useInts) {
115+
return Array.create('int', length);
116+
} else {
108117
return Array.create('float', length);
109118
}
110-
// At least, set length to use it for iterations
111-
return new Array(length);
112119
}
113120

114121
export function parseDashEffect(value: string) {

src/canvas.d.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -331,9 +331,11 @@ declare class CanvasView extends View {
331331
export function createImage(options: { width: number; height: number; scale?: number; config?: any }): ImageSource;
332332
export function releaseImage(image: ImageSource);
333333

334-
335334
export type FloatArray = Float32Array | Float64Array | Uint8Array;
336335
export type TypedArray = FloatArray | Uint8Array;
337336
export function createArrayBuffer(length: number, useInts?): TypedArray;
337+
export function createNativeArray(length: number, useInts?): number[];
338338
export function pointsFromBuffer(typedArray: TypedArray, useInts?): number[] | TypedArray;
339339
export function arrayToNativeArray(array, useInts?): number[];
340+
export function createArrayBufferOrNativeArray(length: number, useInts?: boolean): number[] | TypedArray;
341+
export function nativeArrayToArray(array): number[];

src/canvas.ios.ts

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2239,7 +2239,9 @@ export class StaticLayout {
22392239
return result;
22402240
}
22412241
}
2242-
2242+
export function createArrayBufferOrNativeArray(length: number, useInts = false) {
2243+
return createArrayBuffer(length, useInts);
2244+
}
22432245
export function createArrayBuffer(length: number, useInts = false) {
22442246
if (useInts) {
22452247
return new Int8Array(length);
@@ -2253,3 +2255,9 @@ export function pointsFromBuffer(typedArray: Float32Array | Int8Array, useInts =
22532255
export function arrayToNativeArray(array, useInts = false) {
22542256
return array;
22552257
}
2258+
export function nativeArrayToArray(array): number[] {
2259+
return array;
2260+
}
2261+
export function createNativeArray(length: number, useInts?): number[] {
2262+
return new Array(length);
2263+
}

0 commit comments

Comments
 (0)