@predy-js/render-interface 0.1.61-beta.20 → 0.1.61-beta.22
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +94 -79
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +94 -80
- package/dist/index.mjs.map +1 -1
- package/dist/src/render/MarsGeometry.d.ts +4 -3
- package/dist/src/webgl/GLGPUBuffer.d.ts +2 -4
- package/dist/src/webgl/GLGPURenderer.d.ts +2 -0
- package/dist/src/webgl/GLGeometry.d.ts +6 -2
- package/dist/statistic.js +1 -1
- package/dist/types/GPUBuffer.d.ts +14 -14
- package/dist/types/Geometry.d.ts +9 -4
- package/dist/types/native/GPUBufferInternal.d.ts +1 -1
- package/package.json +1 -1
- package/types/GPUBuffer.ts +16 -19
- package/types/Geometry.ts +11 -4
- package/types/native/GPUBufferInternal.ts +1 -2
@@ -26,7 +26,7 @@ export declare class MarsGeometry implements Geometry {
|
|
26
26
|
_dirtyFlags: {
|
27
27
|
[key: string]: BufferDirtyFlag;
|
28
28
|
};
|
29
|
-
_index?:
|
29
|
+
_index?: Uint16Array | Uint32Array;
|
30
30
|
_indexReleasable: boolean;
|
31
31
|
readonly internal: GLGeometry;
|
32
32
|
readonly options?: GeometryOptions;
|
@@ -35,6 +35,7 @@ export declare class MarsGeometry implements Geometry {
|
|
35
35
|
protected _drawStart: number;
|
36
36
|
protected _mode: number;
|
37
37
|
protected _isDestroyed: boolean;
|
38
|
+
indexDataType: number;
|
38
39
|
get isDestroyed(): boolean;
|
39
40
|
get mode(): number;
|
40
41
|
set mode(n: number);
|
@@ -52,8 +53,8 @@ export declare class MarsGeometry implements Geometry {
|
|
52
53
|
setAttributeData(name: string, data: TypedArray): void;
|
53
54
|
getAttributeData(name: string): TypedArray | undefined;
|
54
55
|
setAttributeSubData(name: string, offset: number, data: TypedArray): void;
|
55
|
-
getIndexData():
|
56
|
-
setIndexData(data:
|
56
|
+
getIndexData(): Uint16Array | Uint32Array | undefined;
|
57
|
+
setIndexData(data: Uint16Array | Uint32Array | undefined): void;
|
57
58
|
setIndexSubData(offset: number, data: TypedArray): void;
|
58
59
|
getAttributeStride(name: string): number;
|
59
60
|
getAttributeDataLength(name: string): number;
|
@@ -3,18 +3,15 @@ import type { GLGPURenderer } from './GLGPURenderer';
|
|
3
3
|
import type { TypedArray } from '../../types/type';
|
4
4
|
import type { MarsRenderer } from '../render/MarsRenderer';
|
5
5
|
export declare class GLGPUBuffer implements GPUBuffer {
|
6
|
-
readonly bytesPerElement: number;
|
7
|
-
readonly target: GPUBufferTarget;
|
8
|
-
readonly type: WebGLRenderingContext['FLOAT'] | WebGLRenderingContext['INT'] | WebGLRenderingContext['SHORT'];
|
9
6
|
readonly usage: WebGLRenderingContext['STATIC_DRAW'] | WebGLRenderingContext['DYNAMIC_DRAW'] | WebGLRenderingContext['STREAM_DRAW'];
|
10
7
|
readonly renderer?: GLGPURenderer;
|
11
8
|
readonly glBuffer: WebGLBuffer | null;
|
9
|
+
readonly target: GPUBufferTarget;
|
12
10
|
private _byteLength;
|
13
11
|
private _isDestroyed;
|
14
12
|
readonly name: string;
|
15
13
|
get byteLength(): number;
|
16
14
|
get isBuffer(): boolean;
|
17
|
-
get elementCount(): number;
|
18
15
|
get level(): number;
|
19
16
|
get isDestroyed(): boolean;
|
20
17
|
constructor(options: GPUBufferOptions, renderer: GLGPURenderer);
|
@@ -23,5 +20,6 @@ export declare class GLGPUBuffer implements GPUBuffer {
|
|
23
20
|
bufferSubData(elementOffset: number, typedArray: TypedArray): void;
|
24
21
|
destroy(): void;
|
25
22
|
readSubData(elementOffset: number, typedArray: TypedArray): boolean;
|
23
|
+
getElementCount(bytePerElement: number): number;
|
26
24
|
assignRenderer(renderer: MarsRenderer): GLGPUBuffer;
|
27
25
|
}
|
@@ -26,6 +26,8 @@ export declare class GLGPURenderer implements GPURenderer {
|
|
26
26
|
private _isDestroyed;
|
27
27
|
extension: RendererExtensions;
|
28
28
|
constructor(gl: WebGLRenderingContext | WebGL2RenderingContext);
|
29
|
+
requestAnimationFrame(cb: FrameRequestCallback): number;
|
30
|
+
cancelAnimationFrame(id: number): void;
|
29
31
|
get isDestroyed(): boolean;
|
30
32
|
onContextLose: (e: Event) => void;
|
31
33
|
copy2(source: GLTexture, target: GLTexture): void;
|
@@ -7,6 +7,9 @@ import type { GLVertexArrayObject } from './GLVertexArrayObject';
|
|
7
7
|
export declare const INDEX_TYPE_MAP: {
|
8
8
|
[x: number]: number;
|
9
9
|
};
|
10
|
+
export declare const TYPE_BYTE_MAP: {
|
11
|
+
[x: number]: number;
|
12
|
+
};
|
10
13
|
export type GLGeometryOptions = {
|
11
14
|
drawStart: number;
|
12
15
|
drawCount: number;
|
@@ -31,6 +34,7 @@ export declare class GLGeometry {
|
|
31
34
|
drawStart: number;
|
32
35
|
drawCount: number;
|
33
36
|
mode: GLenum;
|
37
|
+
indexBufferType: GLenum;
|
34
38
|
attributes: {
|
35
39
|
[key: string]: AttributeWithType;
|
36
40
|
};
|
@@ -42,8 +46,8 @@ export declare class GLGeometry {
|
|
42
46
|
constructor(option: GLGeometryOptions | GLGeometry, renderer: GLGPURenderer);
|
43
47
|
createVao(name: string): GLVertexArrayObject;
|
44
48
|
destroyVao(name: string): void;
|
45
|
-
setIndexBuffer(buffer: GLGPUBuffer): void;
|
46
|
-
createIndexBuffer(data: Uint16Array | Uint32Array | Uint8Array, renderer: GLGPURenderer): GLGPUBuffer;
|
49
|
+
setIndexBuffer(buffer: GLGPUBuffer, indexBufferType: GLenum): void;
|
50
|
+
createIndexBuffer(data: Uint16Array | Uint32Array | Uint8Array, renderer: GLGPURenderer): [buffer: GLGPUBuffer, type: GLenum];
|
47
51
|
getGPUBuffer(name: string | number): GLGPUBuffer | null;
|
48
52
|
destroy(): void;
|
49
53
|
setAttributeBuffer(name: string, buffer: GPUBuffer): void;
|
package/dist/statistic.js
CHANGED
@@ -1,17 +1,22 @@
|
|
1
1
|
import type { TypedArray } from './type';
|
2
2
|
import type { IGPUResource, IGPURenderer } from './IGPURenderer';
|
3
3
|
import type { GPURenderer } from './Renderer';
|
4
|
+
export declare const GPUBufferOptionsMemoryShared: number;
|
4
5
|
export type GPUBufferTarget = WebGLRenderingContext['ARRAY_BUFFER'] | WebGLRenderingContext['ELEMENT_ARRAY_BUFFER'] | WebGL2RenderingContext['COPY_READ_BUFFER'] | WebGL2RenderingContext['COPY_WRITE_BUFFER'] | WebGL2RenderingContext['TRANSFORM_FEEDBACK_BUFFER'] | WebGL2RenderingContext['UNIFORM_BUFFER'] | WebGL2RenderingContext['PIXEL_PACK_BUFFER'] | WebGL2RenderingContext['PIXEL_UNPACK_BUFFER'];
|
5
|
-
type GPUBufferType = WebGLRenderingContext['FLOAT'] | WebGLRenderingContext['INT'] | WebGLRenderingContext['SHORT'];
|
6
6
|
export interface GPUBufferOptions {
|
7
7
|
name?: string;
|
8
|
-
target?: GPUBufferTarget;
|
9
|
-
type?: GPUBufferType;
|
10
8
|
/**
|
11
|
-
*
|
9
|
+
* 数据长度,如果提供了data,忽略此参数
|
12
10
|
*/
|
13
|
-
|
11
|
+
byteLength?: number;
|
14
12
|
data?: TypedArray;
|
13
|
+
/**
|
14
|
+
* GL需要设置,Vulkan和Metal此属性忽略
|
15
|
+
*/
|
16
|
+
target?: GPUBufferTarget;
|
17
|
+
/**
|
18
|
+
* GL需要设置,Vulkan和Metal此属性忽略
|
19
|
+
*/
|
15
20
|
usage?: WebGLRenderingContext['STATIC_DRAW'] | WebGLRenderingContext['DYNAMIC_DRAW'];
|
16
21
|
}
|
17
22
|
/**
|
@@ -23,16 +28,11 @@ export declare class GPUBuffer implements IGPUResource {
|
|
23
28
|
readonly renderer?: IGPURenderer;
|
24
29
|
readonly isDestroyed: boolean;
|
25
30
|
readonly level: number;
|
26
|
-
readonly target: GPUBufferTarget;
|
27
|
-
readonly type: GPUBufferOptions['type'];
|
28
31
|
readonly byteLength: number;
|
29
|
-
readonly
|
30
|
-
|
32
|
+
readonly target: GPUBufferTarget;
|
33
|
+
readonly usage?: WebGLRenderingContext['STATIC_DRAW'] | WebGLRenderingContext['DYNAMIC_DRAW'];
|
31
34
|
constructor(options: GPUBufferOptions, renderer?: IGPURenderer);
|
32
|
-
|
33
|
-
* 数据元素的总量
|
34
|
-
*/
|
35
|
-
readonly elementCount: number;
|
35
|
+
getElementCount(bytePerElement: number): number;
|
36
36
|
/**
|
37
37
|
* 根据TypedArray容量,重新分配Buffer内存
|
38
38
|
* @param typedArray
|
@@ -52,5 +52,5 @@ export declare class GPUBuffer implements IGPUResource {
|
|
52
52
|
*/
|
53
53
|
readSubData(elementOffset: number, typedArray: TypedArray, elementCount?: number): boolean;
|
54
54
|
assignRenderer(renderer: GPURenderer): GPUBuffer;
|
55
|
+
destroy(): void;
|
55
56
|
}
|
56
|
-
export {};
|
package/dist/types/Geometry.d.ts
CHANGED
@@ -62,7 +62,7 @@ export interface GeometryOptions {
|
|
62
62
|
[key: string]: Attribute;
|
63
63
|
};
|
64
64
|
index?: {
|
65
|
-
data:
|
65
|
+
data: GeometryIndexData;
|
66
66
|
releasable?: boolean;
|
67
67
|
};
|
68
68
|
mode?: GeometryDrawMode;
|
@@ -70,6 +70,10 @@ export interface GeometryOptions {
|
|
70
70
|
drawStart?: number;
|
71
71
|
bufferUsage?: GLenum;
|
72
72
|
}
|
73
|
+
/**
|
74
|
+
* 不兼容Uint8的Index,只能使用Uin16和Uin32
|
75
|
+
*/
|
76
|
+
export type GeometryIndexData = Uint16Array | Uint32Array;
|
73
77
|
export declare class Geometry implements IGPUResource {
|
74
78
|
readonly renderer?: IGPURenderer;
|
75
79
|
/**
|
@@ -80,6 +84,7 @@ export declare class Geometry implements IGPUResource {
|
|
80
84
|
}>;
|
81
85
|
readonly isDestroyed: boolean;
|
82
86
|
readonly options?: Immutable<GeometryOptions>;
|
87
|
+
indexDataType?: WebGLRenderingContext['UNSIGNED_INT'] | WebGLRenderingContext['UNSIGNED_SHORT'];
|
83
88
|
drawStart: number;
|
84
89
|
drawCount: number;
|
85
90
|
mode: number;
|
@@ -96,8 +101,8 @@ export declare class Geometry implements IGPUResource {
|
|
96
101
|
setAttributeData(name: string, data: TypedArray): void;
|
97
102
|
getAttributeData(name: string): TypedArray | undefined;
|
98
103
|
setAttributeSubData(name: string, offset: number, data: TypedArray): void;
|
99
|
-
getIndexData():
|
100
|
-
setIndexData(data:
|
104
|
+
getIndexData(): GeometryIndexData | undefined;
|
105
|
+
setIndexData(data: GeometryIndexData | undefined): void;
|
101
106
|
setIndexSubData(offset: number, data: TypedArray): void;
|
102
107
|
/**
|
103
108
|
* 获取Attribute的数据内存长度
|
@@ -119,7 +124,7 @@ export interface SharedGeometryOptions {
|
|
119
124
|
drawCount?: number;
|
120
125
|
mode?: number;
|
121
126
|
index?: {
|
122
|
-
data:
|
127
|
+
data: GeometryIndexData;
|
123
128
|
releasable?: boolean;
|
124
129
|
};
|
125
130
|
geometry: Geometry;
|
@@ -1,6 +1,6 @@
|
|
1
1
|
import type { ResourceInternal } from './ResourceInternal';
|
2
2
|
import type { TypedArray } from '../type';
|
3
|
-
|
3
|
+
import type { GPUBufferOptionsMemoryShared } from '../GPUBuffer';
|
4
4
|
export interface GPUBufferInternalOptions {
|
5
5
|
data?: TypedArray;
|
6
6
|
options?: typeof GPUBufferOptionsMemoryShared;
|
package/package.json
CHANGED
package/types/GPUBuffer.ts
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
import type { TypedArray } from './type';
|
2
2
|
import type { IGPUResource, IGPURenderer } from './IGPURenderer';
|
3
3
|
import type { GPURenderer } from './Renderer';
|
4
|
-
|
4
|
+
export const GPUBufferOptionsMemoryShared = 1 << 1;
|
5
5
|
export type GPUBufferTarget =
|
6
6
|
| WebGLRenderingContext['ARRAY_BUFFER']
|
7
7
|
| WebGLRenderingContext['ELEMENT_ARRAY_BUFFER']
|
@@ -12,20 +12,23 @@ export type GPUBufferTarget =
|
|
12
12
|
| WebGL2RenderingContext['PIXEL_PACK_BUFFER']
|
13
13
|
| WebGL2RenderingContext['PIXEL_UNPACK_BUFFER'];
|
14
14
|
|
15
|
-
type GPUBufferType = WebGLRenderingContext['FLOAT'] | WebGLRenderingContext['INT'] | WebGLRenderingContext['SHORT'];
|
16
15
|
export interface GPUBufferOptions {
|
17
16
|
name?: string,
|
18
|
-
|
19
|
-
target?: GPUBufferTarget,
|
20
|
-
|
21
|
-
type?: GPUBufferType,
|
22
17
|
/**
|
23
|
-
*
|
18
|
+
* 数据长度,如果提供了data,忽略此参数
|
24
19
|
*/
|
25
|
-
|
20
|
+
byteLength?: number,
|
26
21
|
|
27
22
|
data?: TypedArray,
|
28
23
|
|
24
|
+
/**
|
25
|
+
* GL需要设置,Vulkan和Metal此属性忽略
|
26
|
+
*/
|
27
|
+
target?: GPUBufferTarget,
|
28
|
+
|
29
|
+
/**
|
30
|
+
* GL需要设置,Vulkan和Metal此属性忽略
|
31
|
+
*/
|
29
32
|
usage?: WebGLRenderingContext['STATIC_DRAW'] | WebGLRenderingContext['DYNAMIC_DRAW'],
|
30
33
|
}
|
31
34
|
|
@@ -41,23 +44,15 @@ export declare class GPUBuffer implements IGPUResource {
|
|
41
44
|
|
42
45
|
readonly level: number;
|
43
46
|
|
44
|
-
readonly target: GPUBufferTarget;
|
45
|
-
|
46
|
-
readonly type: GPUBufferOptions['type'];
|
47
|
-
|
48
47
|
readonly byteLength: number;
|
49
48
|
|
50
|
-
readonly
|
49
|
+
readonly target: GPUBufferTarget;
|
51
50
|
|
52
|
-
|
51
|
+
readonly usage?: WebGLRenderingContext['STATIC_DRAW'] | WebGLRenderingContext['DYNAMIC_DRAW'];
|
53
52
|
|
54
53
|
constructor (options: GPUBufferOptions, renderer?: IGPURenderer);
|
55
54
|
|
56
|
-
|
57
|
-
* 数据元素的总量
|
58
|
-
*/
|
59
|
-
readonly elementCount: number;
|
60
|
-
|
55
|
+
getElementCount (bytePerElement: number): number;
|
61
56
|
/**
|
62
57
|
* 根据TypedArray容量,重新分配Buffer内存
|
63
58
|
* @param typedArray
|
@@ -81,5 +76,7 @@ export declare class GPUBuffer implements IGPUResource {
|
|
81
76
|
readSubData (elementOffset: number, typedArray: TypedArray, elementCount?: number): boolean;
|
82
77
|
|
83
78
|
assignRenderer (renderer: GPURenderer): GPUBuffer;
|
79
|
+
|
80
|
+
destroy (): void;
|
84
81
|
}
|
85
82
|
|
package/types/Geometry.ts
CHANGED
@@ -81,7 +81,7 @@ export interface GeometryOptions {
|
|
81
81
|
|
82
82
|
attributes: { [key: string]: Attribute },
|
83
83
|
|
84
|
-
index?: { data:
|
84
|
+
index?: { data: GeometryIndexData, releasable?: boolean },
|
85
85
|
|
86
86
|
mode?: GeometryDrawMode,
|
87
87
|
|
@@ -92,6 +92,11 @@ export interface GeometryOptions {
|
|
92
92
|
bufferUsage?: GLenum,
|
93
93
|
}
|
94
94
|
|
95
|
+
/**
|
96
|
+
* 不兼容Uint8的Index,只能使用Uin16和Uin32
|
97
|
+
*/
|
98
|
+
export type GeometryIndexData = Uint16Array | Uint32Array;
|
99
|
+
|
95
100
|
export declare class Geometry implements IGPUResource {
|
96
101
|
|
97
102
|
readonly renderer?: IGPURenderer;
|
@@ -105,6 +110,8 @@ export declare class Geometry implements IGPUResource {
|
|
105
110
|
|
106
111
|
readonly options?: Immutable<GeometryOptions>;
|
107
112
|
|
113
|
+
indexDataType?: WebGLRenderingContext['UNSIGNED_INT'] | WebGLRenderingContext['UNSIGNED_SHORT'];
|
114
|
+
|
108
115
|
drawStart: number;
|
109
116
|
|
110
117
|
drawCount: number;
|
@@ -133,9 +140,9 @@ export declare class Geometry implements IGPUResource {
|
|
133
140
|
|
134
141
|
setAttributeSubData (name: string, offset: number, data: TypedArray): void;
|
135
142
|
|
136
|
-
getIndexData ():
|
143
|
+
getIndexData (): GeometryIndexData | undefined;
|
137
144
|
|
138
|
-
setIndexData (data:
|
145
|
+
setIndexData (data: GeometryIndexData | undefined,): void;
|
139
146
|
|
140
147
|
setIndexSubData (offset: number, data: TypedArray): void;
|
141
148
|
|
@@ -167,7 +174,7 @@ export interface SharedGeometryOptions {
|
|
167
174
|
|
168
175
|
mode?: number,
|
169
176
|
|
170
|
-
index?: { data:
|
177
|
+
index?: { data: GeometryIndexData, releasable?: boolean },
|
171
178
|
|
172
179
|
geometry: Geometry,
|
173
180
|
}
|
@@ -1,7 +1,6 @@
|
|
1
1
|
import type { ResourceInternal } from './ResourceInternal';
|
2
2
|
import type { TypedArray } from '../type';
|
3
|
-
|
4
|
-
export const GPUBufferOptionsMemoryShared = 1 << 1;
|
3
|
+
import type { GPUBufferOptionsMemoryShared } from '../GPUBuffer';
|
5
4
|
|
6
5
|
export interface GPUBufferInternalOptions {
|
7
6
|
data?: TypedArray,
|