bg2e-js 2.3.11 → 2.3.13
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/bg2e-js.js +356 -326
- package/dist/bg2e-js.js.map +1 -1
- package/package.json +56 -56
- package/src/app/AppController.ts +39 -39
- package/src/app/Bg2KeyboardEvent.ts +54 -54
- package/src/app/Bg2MouseEvent.ts +82 -82
- package/src/app/Bg2TouchEvent.ts +18 -18
- package/src/app/Canvas.ts +108 -108
- package/src/app/EventBase.ts +10 -10
- package/src/app/MainLoop.ts +273 -273
- package/src/app/index.ts +24 -24
- package/src/base/Color.ts +134 -134
- package/src/base/Environment.ts +183 -183
- package/src/base/Light.ts +192 -192
- package/src/base/Material.ts +620 -620
- package/src/base/PolyList.ts +365 -365
- package/src/base/Texture.ts +620 -620
- package/src/base/index.ts +81 -81
- package/src/db/Bg2LoaderPlugin.ts +143 -143
- package/src/db/DBPluginApi.ts +48 -48
- package/src/db/Loader.ts +116 -116
- package/src/db/LoaderPlugin.ts +34 -34
- package/src/db/MtlParser.ts +7 -7
- package/src/db/ObjLoaderPlugin.ts +54 -54
- package/src/db/ObjParser.ts +252 -252
- package/src/db/ObjWriterPlugin.ts +18 -18
- package/src/db/VitscnjLoaderPlugin.ts +112 -112
- package/src/db/Writer.ts +52 -52
- package/src/db/WriterPlugin.ts +22 -22
- package/src/db/index.ts +44 -44
- package/src/debug/DebugRenderer.ts +173 -173
- package/src/debug/WebGLTextureViewer.ts +75 -75
- package/src/debug/index.ts +6 -6
- package/src/index.html +11 -11
- package/src/index.ts +33 -33
- package/src/manipulation/SelectionBuffer.ts +81 -81
- package/src/manipulation/SelectionHighlight.ts +105 -84
- package/src/manipulation/SelectionIdAssignVisitor.ts +96 -96
- package/src/manipulation/SelectionManager.ts +196 -188
- package/src/manipulation/SelectionMode.ts +6 -6
- package/src/math/Mat3.ts +259 -259
- package/src/math/Mat4.ts +710 -710
- package/src/math/MatrixStrategy.ts +25 -25
- package/src/math/Quat.ts +65 -65
- package/src/math/Vec.ts +753 -753
- package/src/math/constants.ts +46 -46
- package/src/math/functions.ts +103 -103
- package/src/math/index.ts +74 -74
- package/src/phsics/joint.ts +137 -137
- package/src/primitives/arrow.ts +57 -57
- package/src/primitives/cone.ts +138 -138
- package/src/primitives/cube.ts +60 -60
- package/src/primitives/cylinder.ts +216 -216
- package/src/primitives/index.ts +13 -13
- package/src/primitives/plane.ts +31 -31
- package/src/primitives/sphere.ts +809 -809
- package/src/react/useBg2e.ts +69 -69
- package/src/render/BRDFIntegrationMap.ts +4 -4
- package/src/render/Environment.ts +135 -135
- package/src/render/FrameBuffer.ts +35 -35
- package/src/render/MaterialRenderer.ts +34 -34
- package/src/render/Pipeline.ts +108 -108
- package/src/render/PolyListRenderer.ts +47 -47
- package/src/render/RenderBuffer.ts +197 -197
- package/src/render/RenderQueue.ts +198 -198
- package/src/render/RenderState.ts +116 -116
- package/src/render/Renderer.ts +248 -248
- package/src/render/SceneAppController.ts +250 -250
- package/src/render/SceneRenderer.ts +387 -387
- package/src/render/Shader.ts +32 -32
- package/src/render/ShadowRenderer.ts +176 -176
- package/src/render/SkyCube.ts +105 -105
- package/src/render/SkySphere.ts +117 -117
- package/src/render/TextureMergerRenderer.ts +70 -70
- package/src/render/TextureRenderer.ts +34 -34
- package/src/render/index.ts +67 -67
- package/src/render/webgl/FrameBuffer.ts +9 -9
- package/src/render/webgl/MaterialRenderer.ts +112 -112
- package/src/render/webgl/Pipeline.ts +88 -88
- package/src/render/webgl/PolyListRenderer.ts +260 -260
- package/src/render/webgl/RenderBuffer.ts +226 -226
- package/src/render/webgl/Renderer.ts +262 -262
- package/src/render/webgl/SceneRenderer.ts +67 -67
- package/src/render/webgl/ShaderProgram.ts +424 -424
- package/src/render/webgl/ShadowRenderer.ts +6 -6
- package/src/render/webgl/SkyCube.ts +15 -15
- package/src/render/webgl/SkySphere.ts +15 -15
- package/src/render/webgl/State.ts +152 -152
- package/src/render/webgl/TextureRenderer.ts +167 -167
- package/src/render/webgl/VertexBuffer.ts +137 -137
- package/src/render/webgl/index.ts +35 -35
- package/src/scene/Camera.ts +458 -458
- package/src/scene/Chain.ts +44 -44
- package/src/scene/ChainJoint.ts +58 -58
- package/src/scene/Component.ts +177 -177
- package/src/scene/ComponentMap.ts +106 -106
- package/src/scene/Drawable.ts +154 -154
- package/src/scene/EnvironmentComponent.ts +141 -141
- package/src/scene/FindNodeVisitor.ts +59 -59
- package/src/scene/LightComponent.ts +154 -154
- package/src/scene/MatrixState.ts +46 -46
- package/src/scene/Node.ts +328 -328
- package/src/scene/NodeVisitor.ts +15 -15
- package/src/scene/OrbitCameraController.ts +450 -450
- package/src/scene/SmoothOrbitCameraController.ts +99 -99
- package/src/scene/Transform.ts +73 -73
- package/src/scene/index.ts +60 -60
- package/src/shaders/BasicDiffuseColorShader.ts +111 -111
- package/src/shaders/BasicPBRLightShader.ts +276 -276
- package/src/shaders/DebugRenderShader.ts +97 -97
- package/src/shaders/DepthRenderShader.ts +127 -127
- package/src/shaders/IrradianceMapCubeShader.ts +115 -115
- package/src/shaders/PBRLightIBLShader.ts +486 -486
- package/src/shaders/PickSelectionShader.ts +101 -101
- package/src/shaders/PresentDebugFramebufferShader.ts +118 -118
- package/src/shaders/PresentTextureShader.ts +99 -99
- package/src/shaders/SelectionHighlightShader.ts +143 -127
- package/src/shaders/ShaderFunction.ts +318 -318
- package/src/shaders/SkyCubeShader.ts +93 -93
- package/src/shaders/SkySphereShader.ts +102 -102
- package/src/shaders/SpecularMapCubeShader.ts +164 -164
- package/src/shaders/TextureMergerShader.ts +171 -171
- package/src/shaders/index.ts +36 -36
- package/src/shaders/webgl/color_correction.glsl +47 -47
- package/src/shaders/webgl/constants.glsl +6 -6
- package/src/shaders/webgl/index.ts +70 -70
- package/src/shaders/webgl/normal_map.glsl +9 -9
- package/src/shaders/webgl/pbr.glsl +173 -173
- package/src/shaders/webgl/uniforms.glsl +91 -91
- package/src/shaders/webgl_shader_lib.ts +213 -213
- package/src/tools/BinaryResourceProvider.ts +14 -14
- package/src/tools/ImageResourceProvider.ts +66 -66
- package/src/tools/MaterialModifier.ts +446 -446
- package/src/tools/Resource.ts +203 -203
- package/src/tools/ResourceProvider.ts +69 -69
- package/src/tools/TextResourceProvider.ts +24 -24
- package/src/tools/TextureCache.ts +51 -51
- package/src/tools/TextureResourceDatabase.ts +100 -100
- package/src/tools/UserAgent.ts +362 -362
- package/src/tools/VideoResourceProvider.ts +50 -50
- package/src/tools/WriteStrategy.ts +22 -22
- package/src/tools/base64.ts +11 -11
- package/src/tools/crypto.ts +19 -19
- package/src/tools/endiantess.ts +13 -13
- package/src/tools/image.ts +18 -18
- package/src/tools/index.ts +41 -41
- package/src/tools/processType.ts +39 -39
- package/src/vite-env.d.ts +12 -12
package/src/render/Renderer.ts
CHANGED
|
@@ -1,248 +1,248 @@
|
|
|
1
|
-
import Canvas from "../app/Canvas";
|
|
2
|
-
import Material from "../base/Material";
|
|
3
|
-
import PolyList from "../base/PolyList";
|
|
4
|
-
import Texture from "../base/Texture";
|
|
5
|
-
import Color from "../base/Color";
|
|
6
|
-
import Environment from "./Environment";
|
|
7
|
-
import TextureMergerRenderer from "./TextureMergerRenderer";
|
|
8
|
-
import PolyListRenderer from "./PolyListRenderer";
|
|
9
|
-
import MaterialRenderer from "./MaterialRenderer";
|
|
10
|
-
import TextureRenderer from "./TextureRenderer";
|
|
11
|
-
import RenderBuffer from "./RenderBuffer";
|
|
12
|
-
import Pipeline from "./Pipeline";
|
|
13
|
-
import PresentTextureShader from "../shaders/PresentTextureShader";
|
|
14
|
-
import Vec from "../math/Vec";
|
|
15
|
-
import SkySphere from "./SkySphere";
|
|
16
|
-
import SkyCube from "./SkyCube";
|
|
17
|
-
import ShadowRenderer from "./ShadowRenderer";
|
|
18
|
-
import SceneRenderer from "./SceneRenderer";
|
|
19
|
-
|
|
20
|
-
export enum EngineFeatures {
|
|
21
|
-
RENDER_TARGET_TEXTURES = 0x1 << 0,
|
|
22
|
-
RENDER_TARGET_FLOAT = 0x1 << 1,
|
|
23
|
-
RENDER_TARGET_DEPTH = 0x1 << 2
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
interface RendererFactory {
|
|
28
|
-
polyList(plist: PolyList): PolyListRenderer;
|
|
29
|
-
material(material: Material): MaterialRenderer;
|
|
30
|
-
texture(texture: Texture): TextureRenderer;
|
|
31
|
-
renderBuffer(): RenderBuffer;
|
|
32
|
-
skySphere(): SkySphere;
|
|
33
|
-
skyCube(): SkyCube;
|
|
34
|
-
environment(): Environment;
|
|
35
|
-
textureMerger(): TextureMergerRenderer;
|
|
36
|
-
pipeline(): Pipeline;
|
|
37
|
-
scene(): SceneRenderer;
|
|
38
|
-
shadowRenderer(): ShadowRenderer;
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
export default class Renderer {
|
|
42
|
-
protected _identifier: string;
|
|
43
|
-
protected _frameBuffer: any;
|
|
44
|
-
protected _canvas!: Canvas;
|
|
45
|
-
protected _presentTextureSurface?: PolyListRenderer;
|
|
46
|
-
protected _presentTextureShader?: PresentTextureShader;
|
|
47
|
-
protected _presentTextureMaterial?: MaterialRenderer;
|
|
48
|
-
|
|
49
|
-
constructor(identifier: string) {
|
|
50
|
-
this._identifier = identifier;
|
|
51
|
-
this._frameBuffer = null;
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
get uniqueId(): string {
|
|
55
|
-
throw new Error("Calling Renderer.uniqueId base implementation.");
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
get typeId(): string {
|
|
59
|
-
throw new Error("Calling Renderer.typeId base implementation");
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
async init(canvas: Canvas): Promise<void> {
|
|
63
|
-
this._canvas = canvas;
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
get canvas(): Canvas {
|
|
67
|
-
return this._canvas;
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
get frameBuffer(): any {
|
|
71
|
-
throw new Error("Calling Renderer.frameBuffer base implementation.");
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
set viewport(vp: Vec) {
|
|
75
|
-
throw new Error("Calling Renderer.viewport setter base implementation.");
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
get viewport(): Vec {
|
|
79
|
-
throw new Error("Calling Renderer.viewport getter base implementation.");
|
|
80
|
-
}
|
|
81
|
-
|
|
82
|
-
get presentTextureSurfaceRenderer(): PolyListRenderer {
|
|
83
|
-
if (!this._presentTextureSurface) {
|
|
84
|
-
const plist = new PolyList();
|
|
85
|
-
plist.vertex = [
|
|
86
|
-
-1, -1, 0,
|
|
87
|
-
1, -1, 0,
|
|
88
|
-
1, 1, 0,
|
|
89
|
-
-1, 1, 0
|
|
90
|
-
];
|
|
91
|
-
plist.texCoord0 = [
|
|
92
|
-
0, 0,
|
|
93
|
-
1, 0,
|
|
94
|
-
1, 1,
|
|
95
|
-
0, 1
|
|
96
|
-
];
|
|
97
|
-
plist.index = [
|
|
98
|
-
0, 1, 2,
|
|
99
|
-
2, 3, 0
|
|
100
|
-
];
|
|
101
|
-
this._presentTextureSurface = this.factory.polyList(plist);
|
|
102
|
-
}
|
|
103
|
-
return this._presentTextureSurface;
|
|
104
|
-
}
|
|
105
|
-
|
|
106
|
-
async initPresentTextureShader(): Promise<PresentTextureShader> {
|
|
107
|
-
if (!this._presentTextureShader) {
|
|
108
|
-
this._presentTextureShader = new PresentTextureShader(this);
|
|
109
|
-
this._presentTextureShader.load();
|
|
110
|
-
}
|
|
111
|
-
return this._presentTextureShader;
|
|
112
|
-
}
|
|
113
|
-
|
|
114
|
-
get presentTextureShader(): PresentTextureShader {
|
|
115
|
-
return this._presentTextureShader!;
|
|
116
|
-
}
|
|
117
|
-
|
|
118
|
-
get presentTextureMaterialRenderer(): MaterialRenderer {
|
|
119
|
-
if (!this._presentTextureMaterial) {
|
|
120
|
-
this._presentTextureMaterial = this.factory.material(new Material());
|
|
121
|
-
}
|
|
122
|
-
return this._presentTextureMaterial;
|
|
123
|
-
}
|
|
124
|
-
|
|
125
|
-
postReshape(width: number, height: number): void {
|
|
126
|
-
|
|
127
|
-
}
|
|
128
|
-
|
|
129
|
-
postRedisplay(): void {
|
|
130
|
-
|
|
131
|
-
}
|
|
132
|
-
|
|
133
|
-
polyListFactory(plist: PolyList): PolyListRenderer {
|
|
134
|
-
throw new Error("Calling base implementation of Renderer.polyListFactory()");
|
|
135
|
-
}
|
|
136
|
-
|
|
137
|
-
materialFactory(material: Material): MaterialRenderer {
|
|
138
|
-
throw new Error("Calling base implementation of Renderer.materialFactory()");
|
|
139
|
-
}
|
|
140
|
-
|
|
141
|
-
textureFactory(texture: Texture): TextureRenderer {
|
|
142
|
-
throw new Error("Calling base implementation of Renderer.textureFactory()");
|
|
143
|
-
}
|
|
144
|
-
|
|
145
|
-
renderBufferFactory(): RenderBuffer {
|
|
146
|
-
throw new Error("Calling base implementation of Renderer.renderBufferFactory()");
|
|
147
|
-
}
|
|
148
|
-
|
|
149
|
-
skySphereFactory(): SkySphere {
|
|
150
|
-
throw new Error("Calling base implementation of Renderer.skySphereFactory()");
|
|
151
|
-
}
|
|
152
|
-
|
|
153
|
-
skyCubeFactory(): SkyCube {
|
|
154
|
-
throw new Error("Calling base implementation of Renderer.skyCubeFactory()");
|
|
155
|
-
}
|
|
156
|
-
|
|
157
|
-
environmentFactory(): Environment {
|
|
158
|
-
return new Environment(this);
|
|
159
|
-
}
|
|
160
|
-
|
|
161
|
-
textureMergerFactory(): TextureMergerRenderer {
|
|
162
|
-
return new TextureMergerRenderer(this);
|
|
163
|
-
}
|
|
164
|
-
|
|
165
|
-
pipelineFactory(): any {
|
|
166
|
-
throw new Error("Calling base implementation of Renderer.pipelineFactory()");
|
|
167
|
-
}
|
|
168
|
-
|
|
169
|
-
sceneRendererFactory(): any {
|
|
170
|
-
throw new Error("Calling base implementation of Renderer.sceneRendererFactory()");
|
|
171
|
-
}
|
|
172
|
-
|
|
173
|
-
shadowRendererFactory(): any {
|
|
174
|
-
throw new Error("Calling base implementation of Renderer.shadowRendererFactory()");
|
|
175
|
-
}
|
|
176
|
-
|
|
177
|
-
get clearColor(): Color {
|
|
178
|
-
throw new Error("Calling base implementation of Renderer.clearColor getter.");
|
|
179
|
-
}
|
|
180
|
-
|
|
181
|
-
set clearColor(c: Color) {
|
|
182
|
-
throw new Error("Calling base implementation of Renderer.clearColor setter.");
|
|
183
|
-
}
|
|
184
|
-
|
|
185
|
-
clearBuffer(): void {
|
|
186
|
-
throw new Error("Calling base implementation of Renderer.clearBuffer()");
|
|
187
|
-
}
|
|
188
|
-
|
|
189
|
-
get factory(): RendererFactory {
|
|
190
|
-
const renderer = this;
|
|
191
|
-
return {
|
|
192
|
-
polyList(plist: PolyList): PolyListRenderer {
|
|
193
|
-
return renderer.polyListFactory(plist);
|
|
194
|
-
},
|
|
195
|
-
material(material: Material): MaterialRenderer {
|
|
196
|
-
return renderer.materialFactory(material);
|
|
197
|
-
},
|
|
198
|
-
texture(texture: Texture): TextureRenderer {
|
|
199
|
-
return renderer.textureFactory(texture);
|
|
200
|
-
},
|
|
201
|
-
renderBuffer(): RenderBuffer {
|
|
202
|
-
return renderer.renderBufferFactory();
|
|
203
|
-
},
|
|
204
|
-
skySphere(): SkySphere {
|
|
205
|
-
return renderer.skySphereFactory();
|
|
206
|
-
},
|
|
207
|
-
skyCube(): SkyCube {
|
|
208
|
-
return renderer.skyCubeFactory();
|
|
209
|
-
},
|
|
210
|
-
environment(): Environment {
|
|
211
|
-
return renderer.environmentFactory();
|
|
212
|
-
},
|
|
213
|
-
textureMerger(): TextureMergerRenderer {
|
|
214
|
-
return renderer.textureMergerFactory();
|
|
215
|
-
},
|
|
216
|
-
pipeline(): Pipeline {
|
|
217
|
-
return renderer.pipelineFactory();
|
|
218
|
-
},
|
|
219
|
-
scene(): SceneRenderer {
|
|
220
|
-
return renderer.sceneRendererFactory();
|
|
221
|
-
},
|
|
222
|
-
shadowRenderer(): ShadowRenderer {
|
|
223
|
-
return renderer.shadowRendererFactory();
|
|
224
|
-
}
|
|
225
|
-
}
|
|
226
|
-
}
|
|
227
|
-
|
|
228
|
-
presentTexture(texture: Texture | null, {
|
|
229
|
-
clearBuffers = true,
|
|
230
|
-
shader = null,
|
|
231
|
-
viewport = null
|
|
232
|
-
}: {
|
|
233
|
-
clearBuffers?: boolean;
|
|
234
|
-
shader?: any;
|
|
235
|
-
viewport?: number[] | null;
|
|
236
|
-
} = {}): void {
|
|
237
|
-
|
|
238
|
-
}
|
|
239
|
-
|
|
240
|
-
// Compatibility function
|
|
241
|
-
supportsFeatures(feature: number): boolean {
|
|
242
|
-
return false;
|
|
243
|
-
}
|
|
244
|
-
|
|
245
|
-
getMaximumRenderTargets(): number {
|
|
246
|
-
return 1;
|
|
247
|
-
}
|
|
248
|
-
}
|
|
1
|
+
import Canvas from "../app/Canvas";
|
|
2
|
+
import Material from "../base/Material";
|
|
3
|
+
import PolyList from "../base/PolyList";
|
|
4
|
+
import Texture from "../base/Texture";
|
|
5
|
+
import Color from "../base/Color";
|
|
6
|
+
import Environment from "./Environment";
|
|
7
|
+
import TextureMergerRenderer from "./TextureMergerRenderer";
|
|
8
|
+
import PolyListRenderer from "./PolyListRenderer";
|
|
9
|
+
import MaterialRenderer from "./MaterialRenderer";
|
|
10
|
+
import TextureRenderer from "./TextureRenderer";
|
|
11
|
+
import RenderBuffer from "./RenderBuffer";
|
|
12
|
+
import Pipeline from "./Pipeline";
|
|
13
|
+
import PresentTextureShader from "../shaders/PresentTextureShader";
|
|
14
|
+
import Vec from "../math/Vec";
|
|
15
|
+
import SkySphere from "./SkySphere";
|
|
16
|
+
import SkyCube from "./SkyCube";
|
|
17
|
+
import ShadowRenderer from "./ShadowRenderer";
|
|
18
|
+
import SceneRenderer from "./SceneRenderer";
|
|
19
|
+
|
|
20
|
+
export enum EngineFeatures {
|
|
21
|
+
RENDER_TARGET_TEXTURES = 0x1 << 0,
|
|
22
|
+
RENDER_TARGET_FLOAT = 0x1 << 1,
|
|
23
|
+
RENDER_TARGET_DEPTH = 0x1 << 2
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
interface RendererFactory {
|
|
28
|
+
polyList(plist: PolyList): PolyListRenderer;
|
|
29
|
+
material(material: Material): MaterialRenderer;
|
|
30
|
+
texture(texture: Texture): TextureRenderer;
|
|
31
|
+
renderBuffer(): RenderBuffer;
|
|
32
|
+
skySphere(): SkySphere;
|
|
33
|
+
skyCube(): SkyCube;
|
|
34
|
+
environment(): Environment;
|
|
35
|
+
textureMerger(): TextureMergerRenderer;
|
|
36
|
+
pipeline(): Pipeline;
|
|
37
|
+
scene(): SceneRenderer;
|
|
38
|
+
shadowRenderer(): ShadowRenderer;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
export default class Renderer {
|
|
42
|
+
protected _identifier: string;
|
|
43
|
+
protected _frameBuffer: any;
|
|
44
|
+
protected _canvas!: Canvas;
|
|
45
|
+
protected _presentTextureSurface?: PolyListRenderer;
|
|
46
|
+
protected _presentTextureShader?: PresentTextureShader;
|
|
47
|
+
protected _presentTextureMaterial?: MaterialRenderer;
|
|
48
|
+
|
|
49
|
+
constructor(identifier: string) {
|
|
50
|
+
this._identifier = identifier;
|
|
51
|
+
this._frameBuffer = null;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
get uniqueId(): string {
|
|
55
|
+
throw new Error("Calling Renderer.uniqueId base implementation.");
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
get typeId(): string {
|
|
59
|
+
throw new Error("Calling Renderer.typeId base implementation");
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
async init(canvas: Canvas): Promise<void> {
|
|
63
|
+
this._canvas = canvas;
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
get canvas(): Canvas {
|
|
67
|
+
return this._canvas;
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
get frameBuffer(): any {
|
|
71
|
+
throw new Error("Calling Renderer.frameBuffer base implementation.");
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
set viewport(vp: Vec) {
|
|
75
|
+
throw new Error("Calling Renderer.viewport setter base implementation.");
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
get viewport(): Vec {
|
|
79
|
+
throw new Error("Calling Renderer.viewport getter base implementation.");
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
get presentTextureSurfaceRenderer(): PolyListRenderer {
|
|
83
|
+
if (!this._presentTextureSurface) {
|
|
84
|
+
const plist = new PolyList();
|
|
85
|
+
plist.vertex = [
|
|
86
|
+
-1, -1, 0,
|
|
87
|
+
1, -1, 0,
|
|
88
|
+
1, 1, 0,
|
|
89
|
+
-1, 1, 0
|
|
90
|
+
];
|
|
91
|
+
plist.texCoord0 = [
|
|
92
|
+
0, 0,
|
|
93
|
+
1, 0,
|
|
94
|
+
1, 1,
|
|
95
|
+
0, 1
|
|
96
|
+
];
|
|
97
|
+
plist.index = [
|
|
98
|
+
0, 1, 2,
|
|
99
|
+
2, 3, 0
|
|
100
|
+
];
|
|
101
|
+
this._presentTextureSurface = this.factory.polyList(plist);
|
|
102
|
+
}
|
|
103
|
+
return this._presentTextureSurface;
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
async initPresentTextureShader(): Promise<PresentTextureShader> {
|
|
107
|
+
if (!this._presentTextureShader) {
|
|
108
|
+
this._presentTextureShader = new PresentTextureShader(this);
|
|
109
|
+
this._presentTextureShader.load();
|
|
110
|
+
}
|
|
111
|
+
return this._presentTextureShader;
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
get presentTextureShader(): PresentTextureShader {
|
|
115
|
+
return this._presentTextureShader!;
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
get presentTextureMaterialRenderer(): MaterialRenderer {
|
|
119
|
+
if (!this._presentTextureMaterial) {
|
|
120
|
+
this._presentTextureMaterial = this.factory.material(new Material());
|
|
121
|
+
}
|
|
122
|
+
return this._presentTextureMaterial;
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
postReshape(width: number, height: number): void {
|
|
126
|
+
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
postRedisplay(): void {
|
|
130
|
+
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
polyListFactory(plist: PolyList): PolyListRenderer {
|
|
134
|
+
throw new Error("Calling base implementation of Renderer.polyListFactory()");
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
materialFactory(material: Material): MaterialRenderer {
|
|
138
|
+
throw new Error("Calling base implementation of Renderer.materialFactory()");
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
textureFactory(texture: Texture): TextureRenderer {
|
|
142
|
+
throw new Error("Calling base implementation of Renderer.textureFactory()");
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
renderBufferFactory(): RenderBuffer {
|
|
146
|
+
throw new Error("Calling base implementation of Renderer.renderBufferFactory()");
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
skySphereFactory(): SkySphere {
|
|
150
|
+
throw new Error("Calling base implementation of Renderer.skySphereFactory()");
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
skyCubeFactory(): SkyCube {
|
|
154
|
+
throw new Error("Calling base implementation of Renderer.skyCubeFactory()");
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
environmentFactory(): Environment {
|
|
158
|
+
return new Environment(this);
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
textureMergerFactory(): TextureMergerRenderer {
|
|
162
|
+
return new TextureMergerRenderer(this);
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
pipelineFactory(): any {
|
|
166
|
+
throw new Error("Calling base implementation of Renderer.pipelineFactory()");
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
sceneRendererFactory(): any {
|
|
170
|
+
throw new Error("Calling base implementation of Renderer.sceneRendererFactory()");
|
|
171
|
+
}
|
|
172
|
+
|
|
173
|
+
shadowRendererFactory(): any {
|
|
174
|
+
throw new Error("Calling base implementation of Renderer.shadowRendererFactory()");
|
|
175
|
+
}
|
|
176
|
+
|
|
177
|
+
get clearColor(): Color {
|
|
178
|
+
throw new Error("Calling base implementation of Renderer.clearColor getter.");
|
|
179
|
+
}
|
|
180
|
+
|
|
181
|
+
set clearColor(c: Color) {
|
|
182
|
+
throw new Error("Calling base implementation of Renderer.clearColor setter.");
|
|
183
|
+
}
|
|
184
|
+
|
|
185
|
+
clearBuffer(): void {
|
|
186
|
+
throw new Error("Calling base implementation of Renderer.clearBuffer()");
|
|
187
|
+
}
|
|
188
|
+
|
|
189
|
+
get factory(): RendererFactory {
|
|
190
|
+
const renderer = this;
|
|
191
|
+
return {
|
|
192
|
+
polyList(plist: PolyList): PolyListRenderer {
|
|
193
|
+
return renderer.polyListFactory(plist);
|
|
194
|
+
},
|
|
195
|
+
material(material: Material): MaterialRenderer {
|
|
196
|
+
return renderer.materialFactory(material);
|
|
197
|
+
},
|
|
198
|
+
texture(texture: Texture): TextureRenderer {
|
|
199
|
+
return renderer.textureFactory(texture);
|
|
200
|
+
},
|
|
201
|
+
renderBuffer(): RenderBuffer {
|
|
202
|
+
return renderer.renderBufferFactory();
|
|
203
|
+
},
|
|
204
|
+
skySphere(): SkySphere {
|
|
205
|
+
return renderer.skySphereFactory();
|
|
206
|
+
},
|
|
207
|
+
skyCube(): SkyCube {
|
|
208
|
+
return renderer.skyCubeFactory();
|
|
209
|
+
},
|
|
210
|
+
environment(): Environment {
|
|
211
|
+
return renderer.environmentFactory();
|
|
212
|
+
},
|
|
213
|
+
textureMerger(): TextureMergerRenderer {
|
|
214
|
+
return renderer.textureMergerFactory();
|
|
215
|
+
},
|
|
216
|
+
pipeline(): Pipeline {
|
|
217
|
+
return renderer.pipelineFactory();
|
|
218
|
+
},
|
|
219
|
+
scene(): SceneRenderer {
|
|
220
|
+
return renderer.sceneRendererFactory();
|
|
221
|
+
},
|
|
222
|
+
shadowRenderer(): ShadowRenderer {
|
|
223
|
+
return renderer.shadowRendererFactory();
|
|
224
|
+
}
|
|
225
|
+
}
|
|
226
|
+
}
|
|
227
|
+
|
|
228
|
+
presentTexture(texture: Texture | null, {
|
|
229
|
+
clearBuffers = true,
|
|
230
|
+
shader = null,
|
|
231
|
+
viewport = null
|
|
232
|
+
}: {
|
|
233
|
+
clearBuffers?: boolean;
|
|
234
|
+
shader?: any;
|
|
235
|
+
viewport?: number[] | null;
|
|
236
|
+
} = {}): void {
|
|
237
|
+
|
|
238
|
+
}
|
|
239
|
+
|
|
240
|
+
// Compatibility function
|
|
241
|
+
supportsFeatures(feature: number): boolean {
|
|
242
|
+
return false;
|
|
243
|
+
}
|
|
244
|
+
|
|
245
|
+
getMaximumRenderTargets(): number {
|
|
246
|
+
return 1;
|
|
247
|
+
}
|
|
248
|
+
}
|