@predy-js/render-interface 0.1.61-beta.8 → 0.1.61
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 +102 -82
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +102 -83
- 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/DataBlockInternal.d.ts +3 -0
- package/dist/types/native/GPUBufferInternal.d.ts +1 -1
- package/dist/types/native/MaterialInternal.d.ts +0 -9
- package/dist/types/native/RenderFrameInternal.d.ts +4 -0
- package/dist/types/native/TextureInternal.d.ts +1 -0
- package/package.json +1 -1
- package/types/GPUBuffer.ts +16 -19
- package/types/Geometry.ts +11 -4
- package/types/native/DataBlockInternal.ts +5 -0
- package/types/native/GPUBufferInternal.ts +1 -2
- package/types/native/MaterialInternal.ts +0 -11
- package/types/native/RenderFrameInternal.ts +4 -0
- package/types/native/TextureInternal.ts +1 -0
@@ -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: Geometry['indexDataType'];
|
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,5 +1,6 @@
|
|
1
1
|
import type { ResourceInternal } from './ResourceInternal';
|
2
2
|
import type { TypedArray } from '../type';
|
3
|
+
import type { TextureInternal } from './TextureInternal';
|
3
4
|
export interface DataBlockInternalOptions {
|
4
5
|
name: string;
|
5
6
|
}
|
@@ -26,4 +27,6 @@ export declare abstract class DataBlockInternal implements ResourceInternal {
|
|
26
27
|
* @param value
|
27
28
|
*/
|
28
29
|
abstract getUniformValue(name: string, value: TypedArray): boolean;
|
30
|
+
abstract setUniformTextures(uniformName: string, texture: TextureInternal[] | undefined): void;
|
31
|
+
abstract getUniformTextures(uniformName: string): TextureInternal[] | undefined;
|
29
32
|
}
|
@@ -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;
|
@@ -1,7 +1,6 @@
|
|
1
1
|
import type { ResourceInternal } from './ResourceInternal';
|
2
2
|
import type { MaterialRenderStates } from '../Material';
|
3
3
|
import type { DataBlockInternal } from './DataBlockInternal';
|
4
|
-
import type { TextureInternal } from './TextureInternal';
|
5
4
|
export interface MaterialInternalOptions {
|
6
5
|
states: MaterialRenderStates;
|
7
6
|
dataBlocks: DataBlockInternal[];
|
@@ -15,12 +14,4 @@ export declare abstract class MaterialInternal implements ResourceInternal {
|
|
15
14
|
dataBlocks: DataBlockInternal[];
|
16
15
|
protected constructor(options: MaterialInternalOptions);
|
17
16
|
abstract destroy(): void;
|
18
|
-
/**
|
19
|
-
* 对于 uniform sampler2D uTex
|
20
|
-
* 和 uniform sampler2D uTextures[4] 都使用此函数
|
21
|
-
* @param name
|
22
|
-
* @param value
|
23
|
-
*/
|
24
|
-
abstract setUniformTextures(name: string, value: TextureInternal[]): void;
|
25
|
-
abstract getUniformTextures(name: string): TextureInternal[];
|
26
17
|
}
|
@@ -16,6 +16,10 @@ export declare abstract class RenderFrameInternal implements ResourceInternal {
|
|
16
16
|
renderPasses: RenderPassInternal[];
|
17
17
|
protected constructor(options: RenderFrameInternalOptions);
|
18
18
|
abstract destroy(): void;
|
19
|
+
/**
|
20
|
+
* 代表此帧会在渲染队列的下一帧被渲染,调用此函数,也会调用renderer.invalid方法
|
21
|
+
* 由于渲染是异步的,此函数在Metal/Vulkan实现中,并不会直接绘制
|
22
|
+
*/
|
19
23
|
abstract render(): void;
|
20
24
|
abstract updateLoadAction(action: RenderPassLoadAction): void;
|
21
25
|
}
|
@@ -4,6 +4,7 @@ import type { TypedArray } from '../type';
|
|
4
4
|
import type { ImageBitmapInternal } from './ImageBitmapInternal';
|
5
5
|
export interface TextureInternalOptions extends TextureFormatOptions, Omit<TextureConfigOptionsBase, 'keepImageSource'> {
|
6
6
|
target: WebGLRenderingContext['TEXTURE_CUBE_MAP'] | WebGLRenderingContext['TEXTURE_2D'];
|
7
|
+
generateMipmap?: boolean;
|
7
8
|
}
|
8
9
|
export interface TextureInternalConstructOptions extends TextureInternalOptions {
|
9
10
|
width: number;
|
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,5 +1,6 @@
|
|
1
1
|
import type { ResourceInternal } from './ResourceInternal';
|
2
2
|
import type { TypedArray } from '../type';
|
3
|
+
import type { TextureInternal } from './TextureInternal';
|
3
4
|
|
4
5
|
export interface DataBlockInternalOptions {
|
5
6
|
name: string,
|
@@ -32,4 +33,8 @@ export abstract class DataBlockInternal implements ResourceInternal {
|
|
32
33
|
*/
|
33
34
|
abstract getUniformValue (name: string, value: TypedArray): boolean;
|
34
35
|
|
36
|
+
abstract setUniformTextures (uniformName: string, texture: TextureInternal[] | undefined): void;
|
37
|
+
|
38
|
+
abstract getUniformTextures (uniformName: string): TextureInternal[] | undefined;
|
39
|
+
|
35
40
|
}
|
@@ -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,
|
@@ -1,7 +1,6 @@
|
|
1
1
|
import type { ResourceInternal } from './ResourceInternal';
|
2
2
|
import type { MaterialRenderStates } from '../Material';
|
3
3
|
import type { DataBlockInternal } from './DataBlockInternal';
|
4
|
-
import type { TextureInternal } from './TextureInternal';
|
5
4
|
export interface MaterialInternalOptions {
|
6
5
|
states: MaterialRenderStates,
|
7
6
|
dataBlocks: DataBlockInternal[],
|
@@ -18,14 +17,4 @@ export abstract class MaterialInternal implements ResourceInternal {
|
|
18
17
|
protected constructor (options: MaterialInternalOptions) {
|
19
18
|
}
|
20
19
|
abstract destroy (): void;
|
21
|
-
|
22
|
-
/**
|
23
|
-
* 对于 uniform sampler2D uTex
|
24
|
-
* 和 uniform sampler2D uTextures[4] 都使用此函数
|
25
|
-
* @param name
|
26
|
-
* @param value
|
27
|
-
*/
|
28
|
-
abstract setUniformTextures (name: string, value: TextureInternal[]): void;
|
29
|
-
|
30
|
-
abstract getUniformTextures (name: string): TextureInternal[];
|
31
20
|
}
|
@@ -20,6 +20,10 @@ export abstract class RenderFrameInternal implements ResourceInternal {
|
|
20
20
|
}
|
21
21
|
abstract destroy (): void;
|
22
22
|
|
23
|
+
/**
|
24
|
+
* 代表此帧会在渲染队列的下一帧被渲染,调用此函数,也会调用renderer.invalid方法
|
25
|
+
* 由于渲染是异步的,此函数在Metal/Vulkan实现中,并不会直接绘制
|
26
|
+
*/
|
23
27
|
abstract render (): void;
|
24
28
|
|
25
29
|
abstract updateLoadAction (action: RenderPassLoadAction): void;
|
@@ -5,6 +5,7 @@ import type { ImageBitmapInternal } from './ImageBitmapInternal';
|
|
5
5
|
|
6
6
|
export interface TextureInternalOptions extends TextureFormatOptions, Omit<TextureConfigOptionsBase, 'keepImageSource'> {
|
7
7
|
target: WebGLRenderingContext['TEXTURE_CUBE_MAP'] | WebGLRenderingContext['TEXTURE_2D'],
|
8
|
+
generateMipmap?: boolean,
|
8
9
|
}
|
9
10
|
|
10
11
|
export interface TextureInternalConstructOptions extends TextureInternalOptions {
|