@predy-js/render-interface 0.1.8 → 0.1.11
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 +228 -39
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +228 -40
- package/dist/index.mjs.map +1 -1
- package/dist/src/index.d.ts +1 -1
- package/dist/src/render/MarsMesh.d.ts +7 -2
- package/dist/src/render/MarsRenderPass.d.ts +1 -0
- package/dist/src/render/MarsRenderPassColorAttachment.d.ts +1 -0
- package/dist/src/webgl/GLFrameBuffer.d.ts +5 -0
- package/dist/src/webgl/GLGPUCapability.d.ts +5 -1
- package/dist/src/webgl/GLGPURenderer.d.ts +0 -2
- package/dist/src/webgl/GLRenderBuffer.d.ts +1 -0
- package/dist/src/webgl/constants.d.ts +2 -0
- package/dist/statistic.js +1 -1
- package/dist/types/GPUCapability.d.ts +2 -0
- package/dist/types/Geometry.d.ts +0 -1
- package/dist/types/Mesh.d.ts +11 -0
- package/dist/types/RenderFrame.d.ts +2 -1
- package/dist/types/RenderPass.d.ts +2 -1
- package/package.json +2 -2
- package/dist/types/Scene.d.ts +0 -48
package/dist/src/index.d.ts
CHANGED
|
@@ -6,7 +6,7 @@ export { constants } from './webgl/constants';
|
|
|
6
6
|
export * from '../types/ShaderLibrary';
|
|
7
7
|
export { MarsRenderFrame as RenderFrame } from './render/MarsRenderFrame';
|
|
8
8
|
export { MarsRenderer as Renderer } from './render/MarsRenderer';
|
|
9
|
-
export { MarsMesh as Mesh } from './render/MarsMesh';
|
|
9
|
+
export { MarsMesh as Mesh, MarsInstancedMesh as InstancedMesh } from './render/MarsMesh';
|
|
10
10
|
export { MarsGeometry as Geometry } from './render/MarsGeometry';
|
|
11
11
|
export { MarsRenderPass as RenderPass } from './render/MarsRenderPass';
|
|
12
12
|
export { MarsTexture as Texture } from './render/MarsTexture';
|
|
@@ -1,10 +1,11 @@
|
|
|
1
|
-
import type { Mesh, MeshDestroyOptions, MeshOptions } from '../../types/Mesh';
|
|
1
|
+
import type { InstancedMeshOptions, Mesh, MeshDestroyOptions, MeshOptions } from '../../types/Mesh';
|
|
2
2
|
import { MarsMaterial } from './MarsMaterial';
|
|
3
3
|
import { MarsGeometry } from './MarsGeometry';
|
|
4
4
|
import type { Material, MaterialDestroyOptions, MaterialOptions } from '../../types/Material';
|
|
5
5
|
import type { MarsRenderer } from './MarsRenderer';
|
|
6
6
|
import type { mat4 } from '../../types';
|
|
7
7
|
import { DestroyOptions } from '../../types/constants';
|
|
8
|
+
import type { InstancedMesh } from '../../types/Mesh';
|
|
8
9
|
export declare class MarsMesh implements Mesh {
|
|
9
10
|
readonly material: MarsMaterial;
|
|
10
11
|
readonly geometries: MarsGeometry[];
|
|
@@ -16,9 +17,13 @@ export declare class MarsMesh implements Mesh {
|
|
|
16
17
|
private _isDestroyed;
|
|
17
18
|
get isDestroyed(): boolean;
|
|
18
19
|
get geometry(): MarsGeometry;
|
|
19
|
-
constructor(options: MeshOptions);
|
|
20
|
+
constructor(options: MeshOptions, renderer?: MarsRenderer);
|
|
20
21
|
setMaterial(mtl: Material | MaterialOptions, destroyMtl?: MaterialDestroyOptions | DestroyOptions.keep): void;
|
|
21
22
|
setGeometries(geos: MarsGeometry[], destroyGeometries?: DestroyOptions): void;
|
|
22
23
|
destroy(options?: MeshDestroyOptions): void;
|
|
23
24
|
assignRenderer(renderer: MarsRenderer): MarsMesh;
|
|
24
25
|
}
|
|
26
|
+
export declare class MarsInstancedMesh extends MarsMesh implements InstancedMesh {
|
|
27
|
+
instanceCount: number;
|
|
28
|
+
constructor(options: InstancedMeshOptions, renderer?: MarsRenderer);
|
|
29
|
+
}
|
|
@@ -26,6 +26,7 @@ export declare class MarsRenderPass implements RenderPass {
|
|
|
26
26
|
private _stencilTexture?;
|
|
27
27
|
private _attachments;
|
|
28
28
|
get isDestroyed(): boolean;
|
|
29
|
+
get multisample(): number;
|
|
29
30
|
get attachments(): MarsRenderPassColorAttachment[];
|
|
30
31
|
viewportScale: number;
|
|
31
32
|
private _isCustomViewport;
|
|
@@ -15,6 +15,7 @@ export declare class MarsRenderPassColorAttachment implements RenderPassColorAtt
|
|
|
15
15
|
readonly externalTexture: boolean;
|
|
16
16
|
textureOptions?: MarsRenderPassColorAttachmentTextureOptions;
|
|
17
17
|
private _isDestroyed;
|
|
18
|
+
multisample: number;
|
|
18
19
|
get isDestroyed(): boolean;
|
|
19
20
|
get storageType(): RenderPassAttachmentStorageType;
|
|
20
21
|
constructor(options: MarsRenderPassColorAttachmentOptions);
|
|
@@ -11,6 +11,7 @@ export interface GLFrameBufferOptions {
|
|
|
11
11
|
viewportScale?: number;
|
|
12
12
|
storeAction: RenderPassStoreAction;
|
|
13
13
|
name?: string;
|
|
14
|
+
multisample?: number;
|
|
14
15
|
}
|
|
15
16
|
export declare class GLFrameBuffer {
|
|
16
17
|
readonly renderer: GLGPURenderer;
|
|
@@ -27,7 +28,10 @@ export declare class GLFrameBuffer {
|
|
|
27
28
|
stencilTexture?: GLTexture;
|
|
28
29
|
colorTextures: GLTexture[];
|
|
29
30
|
fbo?: WebGLFramebuffer;
|
|
31
|
+
multisampleFbo?: WebGLFramebuffer;
|
|
32
|
+
multisampleRbs: GLRenderBuffer[];
|
|
30
33
|
viewportScale: number;
|
|
34
|
+
readonly multisample: number;
|
|
31
35
|
readonly _attachmentHandles: WebGLTexture[];
|
|
32
36
|
constructor(options: GLFrameBufferOptions, renderer: GLGPURenderer);
|
|
33
37
|
get stencilStorage(): RenderPassStorageObject | undefined;
|
|
@@ -37,6 +41,7 @@ export declare class GLFrameBuffer {
|
|
|
37
41
|
getStoreAttachments(storeAction: RenderPassStoreAction, separateDepthStencil: boolean): GLenum[] | undefined;
|
|
38
42
|
unbind(): void;
|
|
39
43
|
bind(): void;
|
|
44
|
+
resolveMultiSample(): void;
|
|
40
45
|
resetColorTextures(colors?: GLTexture[]): void;
|
|
41
46
|
destroy(opt?: {
|
|
42
47
|
depthStencilAttachment?: RenderPassDestroyAttachmentType;
|
|
@@ -5,8 +5,8 @@ interface GLGPUCapabilityDetail extends GPUCapabilityDetail {
|
|
|
5
5
|
standardDerivatives: boolean;
|
|
6
6
|
halfFloatLinear: boolean;
|
|
7
7
|
floatLinear: boolean;
|
|
8
|
-
maxSample: number;
|
|
9
8
|
maxShaderTexCount: number;
|
|
9
|
+
instanceDraw: boolean;
|
|
10
10
|
}
|
|
11
11
|
export declare class GLGPUCapability implements GPUCapability {
|
|
12
12
|
readonly capability: Immutable<GLGPUCapabilityDetail>;
|
|
@@ -17,6 +17,7 @@ export declare class GLGPUCapability implements GPUCapability {
|
|
|
17
17
|
UNSIGNED_INT_24_8: number;
|
|
18
18
|
internalFormatDepth16: number;
|
|
19
19
|
internalFormatDepth24_stencil8: number;
|
|
20
|
+
instanceDrawExt?: ANGLE_instanced_arrays;
|
|
20
21
|
constructor(opt: {
|
|
21
22
|
glType?: 'webgl' | 'webgl2';
|
|
22
23
|
gl?: WebGLRenderingContext | WebGL2RenderingContext;
|
|
@@ -24,6 +25,9 @@ export declare class GLGPUCapability implements GPUCapability {
|
|
|
24
25
|
_setupCapability(gl?: WebGLRenderingContext | WebGL2RenderingContext): void;
|
|
25
26
|
checkLinearTextureFilter(gl: WebGL2RenderingContext, type: number): boolean;
|
|
26
27
|
framebufferTexture2D(gl: WebGLRenderingContext | WebGL2RenderingContext, target: GLenum, index: number, textarget: number, texture: WebGLTexture): void;
|
|
28
|
+
vertexAttribDivisor(gl: WebGLRenderingContext | WebGL2RenderingContext, loc: number, divisor: number): void;
|
|
29
|
+
drawElementsInstanced(gl: WebGLRenderingContext | WebGL2RenderingContext, mode: GLenum, count: GLsizei, type: GLenum, offset: GLintptr, instanceCount: GLsizei): void;
|
|
30
|
+
drawArraysInstanced(gl: WebGLRenderingContext | WebGL2RenderingContext, mode: GLenum, first: GLint, count: GLsizei, instanceCount: GLsizei): void;
|
|
27
31
|
drawBuffers(gl: WebGLRenderingContext | WebGL2RenderingContext, bufferStates: boolean[]): void;
|
|
28
32
|
setTextureAnisotropic(gl: WebGLRenderingContext | WebGL2RenderingContext, target: GLenum, level: number): void;
|
|
29
33
|
setup(gl: WebGLRenderingContext): void;
|
|
@@ -4,7 +4,6 @@ import { GLShaderLibrary } from './GLShaderLibrary';
|
|
|
4
4
|
import type { GPURenderer, RendererExtensions } from '../../types';
|
|
5
5
|
import type { GPUBufferOptions } from '../../types/GPUBuffer';
|
|
6
6
|
import type { RenderFrame, RenderFrameOptions } from '../../types/RenderFrame';
|
|
7
|
-
import type { ParsedScene, SceneSchema } from '../../types/Scene';
|
|
8
7
|
import { GLGPUCapability } from './GLGPUCapability';
|
|
9
8
|
import { GLTexture } from './GLTexture';
|
|
10
9
|
import type { GLRenderBuffer } from './GLRenderBuffer';
|
|
@@ -34,7 +33,6 @@ export declare class GLGPURenderer implements GPURenderer {
|
|
|
34
33
|
createGLRenderBuffer(renderbuffer: GLRenderBuffer): WebGLRenderbuffer | null;
|
|
35
34
|
createPipeline(options?: RenderFrameOptions): RenderFrame;
|
|
36
35
|
createBuffer(options: GPUBufferOptions): GLGPUBuffer;
|
|
37
|
-
parseSceneSchema(schema: SceneSchema): ParsedScene;
|
|
38
36
|
resize(width: number, height: number): void;
|
|
39
37
|
_assignInspectorName(obj: any, name?: string, id?: string): void;
|
|
40
38
|
createGLFrameBuffer(frameBuffer: GLFrameBuffer, name?: string): WebGLFramebuffer | null;
|
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
import type { TypedArray } from '../../types/type';
|
|
2
|
+
import type { vec2 } from '@predy-js/specification';
|
|
2
3
|
export declare let constants: WebGL2RenderingContext;
|
|
3
4
|
export declare function createTypedArrayByGLType(type: number, elementCount: number | ArrayBuffer): TypedArray;
|
|
4
5
|
export declare function getBytesPerElementByGLType(type: number): number;
|
|
6
|
+
export declare function getMatAttrLocPair(type: number): vec2;
|
package/dist/statistic.js
CHANGED
|
@@ -3,6 +3,7 @@ export declare const COMPRESSED_TEXTURE_NONE = 0;
|
|
|
3
3
|
export declare const COMPRESSED_TEXTURE_PVRTC = 1;
|
|
4
4
|
export declare const COMPRESSED_TEXTURE_ASTC = 2;
|
|
5
5
|
export interface GPUCapabilityDetail {
|
|
6
|
+
maxSample: number;
|
|
6
7
|
floatTexture: number;
|
|
7
8
|
halfFloatTexture: number;
|
|
8
9
|
floatColorAttachment?: boolean;
|
|
@@ -33,6 +34,7 @@ export declare class GPUCapabilityEmpty implements GPUCapability {
|
|
|
33
34
|
type: 'webgl' | 'webgl2' | 'native-gl' | 'node-gl' | 'metal' | 'none';
|
|
34
35
|
level: number;
|
|
35
36
|
capability: {
|
|
37
|
+
maxSample: number;
|
|
36
38
|
floatTexture: number;
|
|
37
39
|
halfFloatTexture: number;
|
|
38
40
|
maxVertexUniforms: number;
|
package/dist/types/Geometry.d.ts
CHANGED
package/dist/types/Mesh.d.ts
CHANGED
|
@@ -47,4 +47,15 @@ export declare class Mesh implements IGPUResource {
|
|
|
47
47
|
destroy(options?: MeshDestroyOptions): void;
|
|
48
48
|
assignRenderer(renderer: GPURenderer): Mesh;
|
|
49
49
|
}
|
|
50
|
+
export interface InstancedGeometryMeshOptions extends GeometryMeshOptions {
|
|
51
|
+
instanceCount: number;
|
|
52
|
+
}
|
|
53
|
+
export interface InstancedGeometriesMeshOptions extends GeometriesMeshOptions {
|
|
54
|
+
instanceCount: number;
|
|
55
|
+
}
|
|
56
|
+
export type InstancedMeshOptions = InstancedGeometryMeshOptions | InstancedGeometriesMeshOptions;
|
|
57
|
+
export declare class InstancedMesh extends Mesh {
|
|
58
|
+
instanceCount: number;
|
|
59
|
+
constructor(options: InstancedMeshOptions, renderer?: IGPURenderer);
|
|
60
|
+
}
|
|
50
61
|
export {};
|
|
@@ -7,9 +7,10 @@ import type { vec4 } from './type';
|
|
|
7
7
|
import type { GPURenderer } from './index';
|
|
8
8
|
import type { IGPURenderer, IGPUResource } from './IGPURenderer';
|
|
9
9
|
import type { DestroyOptions } from './constants';
|
|
10
|
+
import type { InstancedMesh } from './Mesh';
|
|
10
11
|
export interface RenderState {
|
|
11
12
|
currentCamera: Camera;
|
|
12
|
-
currentMesh: Mesh;
|
|
13
|
+
currentMesh: Mesh | InstancedMesh;
|
|
13
14
|
currentFrame: RenderFrame;
|
|
14
15
|
currentPass: RenderPass;
|
|
15
16
|
}
|
|
@@ -46,7 +46,6 @@ export interface RenderPassColorAttachmentTextureOptions extends TextureFormatOp
|
|
|
46
46
|
export interface RenderPassColorAttachmentOptions {
|
|
47
47
|
texture?: Texture | RenderPassColorAttachmentTextureOptions;
|
|
48
48
|
storage?: RenderPassStorageObject;
|
|
49
|
-
multiSample?: number;
|
|
50
49
|
}
|
|
51
50
|
export interface RenderPassColorAttachment {
|
|
52
51
|
readonly storageType: RenderPassAttachmentStorageType;
|
|
@@ -81,6 +80,7 @@ export interface RenderPassAttachmentOptions {
|
|
|
81
80
|
depthStencilAttachment?: RenderPassDepthStencilAttachmentOptions;
|
|
82
81
|
viewport?: [x: number, y: number, width: number, height: number];
|
|
83
82
|
viewportScale?: number;
|
|
83
|
+
multiSample?: number;
|
|
84
84
|
}
|
|
85
85
|
export type SemanticGetter = UniformValue | SemanticFunc | GPUBuffer;
|
|
86
86
|
export interface RenderPassOptions extends RenderPassAttachmentOptions {
|
|
@@ -137,6 +137,7 @@ export declare class RenderPass implements IGPUResource {
|
|
|
137
137
|
readonly semantics: SemanticMap;
|
|
138
138
|
readonly storeAction: RenderPassStoreAction;
|
|
139
139
|
readonly clearAction: RenderPassClearAction;
|
|
140
|
+
readonly multisample: number;
|
|
140
141
|
delegate: RenderPassDelegate;
|
|
141
142
|
meshOrder: RenderPassMeshOrder;
|
|
142
143
|
constructor(options: RenderPassOptions, renderer?: IGPURenderer);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@predy-js/render-interface",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.11",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"module": "./dist/index.mjs",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -21,6 +21,7 @@
|
|
|
21
21
|
},
|
|
22
22
|
"scripts": {
|
|
23
23
|
"dev": "rollup -c --watch",
|
|
24
|
+
"test": "rollup -c --watch --test",
|
|
24
25
|
"prebuild": "npm run clean:all",
|
|
25
26
|
"build": "npm run build:dist",
|
|
26
27
|
"build:dist": "rollup -c",
|
|
@@ -29,7 +30,6 @@
|
|
|
29
30
|
"check:ts": "tsc -b ./tsconfig.check.json",
|
|
30
31
|
"clean:all": "npm run clean:dist",
|
|
31
32
|
"clean:dist": "rm -rf dist/**",
|
|
32
|
-
"test": "rollup -c --watch --test",
|
|
33
33
|
"prepublishOnly": "npm run build"
|
|
34
34
|
},
|
|
35
35
|
"devDependencies": {
|
package/dist/types/Scene.d.ts
DELETED
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
import type { Geometry, GeometryOptions } from './Geometry';
|
|
2
|
-
import type { Material, MaterialOptions, UniformValue } from './Material';
|
|
3
|
-
import type { Texture, TextureOptions } from './Texture';
|
|
4
|
-
import type { RenderPass, RenderPassOptions } from './RenderPass';
|
|
5
|
-
import type { Camera, CameraOptions } from './Camera';
|
|
6
|
-
import type { Mesh } from './Mesh';
|
|
7
|
-
type SceneNode = {
|
|
8
|
-
meshes: number[];
|
|
9
|
-
camera: number;
|
|
10
|
-
};
|
|
11
|
-
type SceneMaterial = MaterialOptions | {
|
|
12
|
-
extends: number;
|
|
13
|
-
vertexShader: string | number;
|
|
14
|
-
fragmentShader: string | number;
|
|
15
|
-
uniforms: {
|
|
16
|
-
[key: string]: UniformValue;
|
|
17
|
-
};
|
|
18
|
-
textures: {
|
|
19
|
-
[key: string]: number | number[];
|
|
20
|
-
};
|
|
21
|
-
};
|
|
22
|
-
type SceneMesh = {
|
|
23
|
-
name: string;
|
|
24
|
-
material: number;
|
|
25
|
-
geometries: number[];
|
|
26
|
-
};
|
|
27
|
-
type SceneRenderPass = RenderPassOptions | {
|
|
28
|
-
attachments: number[];
|
|
29
|
-
};
|
|
30
|
-
export interface SceneSchema {
|
|
31
|
-
texture: TextureOptions[];
|
|
32
|
-
geometries: GeometryOptions[];
|
|
33
|
-
materials: SceneMaterial[];
|
|
34
|
-
meshes: SceneMesh[];
|
|
35
|
-
nodes: SceneNode[];
|
|
36
|
-
renderPasses: SceneRenderPass[];
|
|
37
|
-
cameras: CameraOptions[];
|
|
38
|
-
shaders: string[];
|
|
39
|
-
}
|
|
40
|
-
export interface ParsedScene {
|
|
41
|
-
texture: Texture[];
|
|
42
|
-
geometries: Geometry[];
|
|
43
|
-
materials: Material[];
|
|
44
|
-
meshes: Mesh[];
|
|
45
|
-
renderPasses: RenderPass[];
|
|
46
|
-
cameras: Camera[];
|
|
47
|
-
}
|
|
48
|
-
export {};
|