@predy-js/render-interface 0.1.8 → 0.1.10
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 +99 -15
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +99 -16
- 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/webgl/GLGPUCapability.d.ts +5 -0
- package/dist/src/webgl/GLGPURenderer.d.ts +0 -2
- package/dist/src/webgl/constants.d.ts +2 -0
- package/dist/statistic.js +1 -1
- package/dist/types/Mesh.d.ts +11 -0
- package/dist/types/RenderFrame.d.ts +2 -1
- package/package.json +1 -1
- 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
|
+
}
|
|
@@ -7,6 +7,7 @@ interface GLGPUCapabilityDetail extends GPUCapabilityDetail {
|
|
|
7
7
|
floatLinear: boolean;
|
|
8
8
|
maxSample: number;
|
|
9
9
|
maxShaderTexCount: number;
|
|
10
|
+
instanceDraw: boolean;
|
|
10
11
|
}
|
|
11
12
|
export declare class GLGPUCapability implements GPUCapability {
|
|
12
13
|
readonly capability: Immutable<GLGPUCapabilityDetail>;
|
|
@@ -17,6 +18,7 @@ export declare class GLGPUCapability implements GPUCapability {
|
|
|
17
18
|
UNSIGNED_INT_24_8: number;
|
|
18
19
|
internalFormatDepth16: number;
|
|
19
20
|
internalFormatDepth24_stencil8: number;
|
|
21
|
+
instanceDrawExt?: ANGLE_instanced_arrays;
|
|
20
22
|
constructor(opt: {
|
|
21
23
|
glType?: 'webgl' | 'webgl2';
|
|
22
24
|
gl?: WebGLRenderingContext | WebGL2RenderingContext;
|
|
@@ -24,6 +26,9 @@ export declare class GLGPUCapability implements GPUCapability {
|
|
|
24
26
|
_setupCapability(gl?: WebGLRenderingContext | WebGL2RenderingContext): void;
|
|
25
27
|
checkLinearTextureFilter(gl: WebGL2RenderingContext, type: number): boolean;
|
|
26
28
|
framebufferTexture2D(gl: WebGLRenderingContext | WebGL2RenderingContext, target: GLenum, index: number, textarget: number, texture: WebGLTexture): void;
|
|
29
|
+
vertexAttribDivisor(gl: WebGLRenderingContext | WebGL2RenderingContext, loc: number, divisor: number): void;
|
|
30
|
+
drawElementsInstanced(gl: WebGLRenderingContext | WebGL2RenderingContext, mode: GLenum, count: GLsizei, type: GLenum, offset: GLintptr, instanceCount: GLsizei): void;
|
|
31
|
+
drawArraysInstanced(gl: WebGLRenderingContext | WebGL2RenderingContext, mode: GLenum, first: GLint, count: GLsizei, instanceCount: GLsizei): void;
|
|
27
32
|
drawBuffers(gl: WebGLRenderingContext | WebGL2RenderingContext, bufferStates: boolean[]): void;
|
|
28
33
|
setTextureAnisotropic(gl: WebGLRenderingContext | WebGL2RenderingContext, target: GLenum, level: number): void;
|
|
29
34
|
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
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
|
}
|
package/package.json
CHANGED
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 {};
|