Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Renderer: Add hasInitialized(). #1410

Merged
merged 6 commits into from
Dec 14, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
34 changes: 16 additions & 18 deletions examples-testing/changes.patch
Original file line number Diff line number Diff line change
Expand Up @@ -2058,7 +2058,7 @@ index 28b2c96a..6a802ab6 100644

geometry.setAttribute('position', new THREE.Float32BufferAttribute(positions, 3).onUpload(disposeArray));
diff --git a/examples-testing/examples/webgl_buffergeometry_attributes_integer.ts b/examples-testing/examples/webgl_buffergeometry_attributes_integer.ts
index 96926c2c..76e6c251 100644
index 00490b71..c553afe5 100644
--- a/examples-testing/examples/webgl_buffergeometry_attributes_integer.ts
+++ b/examples-testing/examples/webgl_buffergeometry_attributes_integer.ts
@@ -1,6 +1,6 @@
Expand All @@ -2078,17 +2078,6 @@ index 96926c2c..76e6c251 100644

geometry.computeBoundingSphere();

@@ -83,8 +83,8 @@ function init() {
value: [map1, map2, map3],
},
},
- vertexShader: document.getElementById('vertexShader').textContent,
- fragmentShader: document.getElementById('fragmentShader').textContent,
+ vertexShader: document.getElementById('vertexShader')!.textContent!,
+ fragmentShader: document.getElementById('fragmentShader')!.textContent!,
side: THREE.DoubleSide,
glslVersion: THREE.GLSL3,
});
diff --git a/examples-testing/examples/webgl_buffergeometry_attributes_none.ts b/examples-testing/examples/webgl_buffergeometry_attributes_none.ts
index a1424e87..f7fcf29f 100644
--- a/examples-testing/examples/webgl_buffergeometry_attributes_none.ts
Expand Down Expand Up @@ -15292,26 +15281,35 @@ index 7040b08b..85db2b79 100644
const params = {
enabled: true,
diff --git a/examples-testing/examples/webgpu_postprocessing_sobel.ts b/examples-testing/examples/webgpu_postprocessing_sobel.ts
index 84e7028d..527b5f3c 100644
index 1ee744c8..9e213114 100644
--- a/examples-testing/examples/webgpu_postprocessing_sobel.ts
+++ b/examples-testing/examples/webgpu_postprocessing_sobel.ts
@@ -1,4 +1,4 @@
-import * as THREE from 'three';
+import * as THREE from 'three/webgpu';
import { pass } from 'three/tsl';
import { pass, renderOutput } from 'three/tsl';
import { sobel } from 'three/addons/tsl/display/SobelOperatorNode.js';

@@ -6,8 +6,8 @@ import { OrbitControls } from 'three/addons/controls/OrbitControls.js';
@@ -8,8 +8,8 @@ import { RoomEnvironment } from 'three/addons/environments/RoomEnvironment.js';

import { GUI } from 'three/addons/libs/lil-gui.module.min.js';

-let camera, scene, renderer;
-let camera, scene, renderer, controls;
-let postProcessing;
+let camera: THREE.PerspectiveCamera, scene: THREE.Scene, renderer: THREE.WebGPURenderer;
+let camera: THREE.PerspectiveCamera, scene: THREE.Scene, renderer: THREE.WebGPURenderer, controls: OrbitControls;
+let postProcessing: THREE.PostProcessing;

const params = {
enable: true,
enabled: true,
@@ -27,7 +27,7 @@ async function init() {

const loader = new GLTFLoader();
const gltf = await loader.loadAsync('models/gltf/DragonAttenuation.glb');
- const model = gltf.scene.children[1];
+ const model = gltf.scene.children[1] as THREE.Mesh;
model.material = new THREE.MeshStandardNodeMaterial();

scene.add(model);
diff --git a/examples-testing/examples/webgpu_postprocessing_ssaa.ts b/examples-testing/examples/webgpu_postprocessing_ssaa.ts
index 4aeb6e43..738b6580 100644
--- a/examples-testing/examples/webgpu_postprocessing_ssaa.ts
Expand Down
28 changes: 14 additions & 14 deletions src-testing/changes.patch
Original file line number Diff line number Diff line change
Expand Up @@ -5158,7 +5158,7 @@ index 0ec34b04..573cae2b 100644

this.vertexProgram = vertexProgram;
diff --git a/src-testing/src/renderers/common/Renderer.ts b/src-testing/src/renderers/common/Renderer.ts
index 1fca91ca..794c1e59 100644
index 657c7321..2122eac8 100644
--- a/src-testing/src/renderers/common/Renderer.ts
+++ b/src-testing/src/renderers/common/Renderer.ts
@@ -36,7 +36,35 @@ import {
Expand Down Expand Up @@ -5928,16 +5928,16 @@ index 1fca91ca..794c1e59 100644
if (this._initialized === false) {
console.warn(
'THREE.Renderer: .hasFeature() called before the backend is initialized. Try using .hasFeatureAsync() instead.',
@@ -1135,7 +1347,7 @@ class Renderer {
return this.backend.hasFeature(name);
@@ -1139,7 +1351,7 @@ class Renderer {
return this._initialized;
}

- copyFramebufferToTexture(framebufferTexture, rectangle = null) {
+ copyFramebufferToTexture(framebufferTexture: FramebufferTexture, rectangle: Rectangle | null = null) {
if (rectangle !== null) {
if (rectangle.isVector2) {
rectangle = _vector4
@@ -1176,56 +1388,84 @@ class Renderer {
@@ -1180,56 +1392,84 @@ class Renderer {
this.backend.copyFramebufferToTexture(framebufferTexture, renderContext, rectangle);
}

Expand Down Expand Up @@ -6039,7 +6039,7 @@ index 1fca91ca..794c1e59 100644
.applyMatrix4(object.matrixWorld)
.applyMatrix4(_projScreenMatrix);
}
@@ -1235,7 +1475,7 @@ class Renderer {
@@ -1239,7 +1479,7 @@ class Renderer {

for (let i = 0, l = groups.length; i < l; i++) {
const group = groups[i];
Expand All @@ -6048,7 +6048,7 @@ index 1fca91ca..794c1e59 100644

if (groupMaterial && groupMaterial.visible) {
renderList.push(
@@ -1260,7 +1500,7 @@ class Renderer {
@@ -1264,7 +1504,7 @@ class Renderer {
const baseRenderList = renderList;

// replace render list
Expand All @@ -6057,7 +6057,7 @@ index 1fca91ca..794c1e59 100644

renderList.begin();

@@ -1280,13 +1520,19 @@ class Renderer {
@@ -1284,13 +1524,19 @@ class Renderer {
}
}

Expand All @@ -6079,7 +6079,7 @@ index 1fca91ca..794c1e59 100644
if (doublePassList.length > 0) {
// render back side

@@ -1314,7 +1560,13 @@ class Renderer {
@@ -1318,7 +1564,13 @@ class Renderer {
}
}

Expand All @@ -6094,7 +6094,7 @@ index 1fca91ca..794c1e59 100644
// process renderable objects

for (let i = 0, il = renderList.length; i < il; i++) {
@@ -1325,31 +1577,31 @@ class Renderer {
@@ -1329,31 +1581,31 @@ class Renderer {

const { object, geometry, material, group, clippingContext } = renderItem;

Expand Down Expand Up @@ -6135,7 +6135,7 @@ index 1fca91ca..794c1e59 100644
lightsNode,
clippingContext,
passId,
@@ -1357,13 +1609,13 @@ class Renderer {
@@ -1361,13 +1613,13 @@ class Renderer {
}
}
} else {
Expand All @@ -6154,7 +6154,7 @@ index 1fca91ca..794c1e59 100644
lightsNode,
clippingContext,
passId,
@@ -1372,7 +1624,17 @@ class Renderer {
@@ -1376,7 +1628,17 @@ class Renderer {
}
}

Expand All @@ -6173,7 +6173,7 @@ index 1fca91ca..794c1e59 100644
let overridePositionNode;
let overrideFragmentNode;
let overrideDepthNode;
@@ -1441,14 +1703,23 @@ class Renderer {
@@ -1445,14 +1707,23 @@ class Renderer {
object.onAfterRender(this, scene, camera, geometry, material, group);
}

Expand All @@ -6200,7 +6200,7 @@ index 1fca91ca..794c1e59 100644
clippingContext,
passId,
);
@@ -1457,18 +1728,18 @@ class Renderer {
@@ -1461,18 +1732,18 @@ class Renderer {

//

Expand All @@ -6225,7 +6225,7 @@ index 1fca91ca..794c1e59 100644

//

@@ -1482,33 +1753,41 @@ class Renderer {
@@ -1486,33 +1757,41 @@ class Renderer {

this.backend.draw(renderObject, this.info);

Expand Down
1 change: 1 addition & 0 deletions types/three/src/renderers/common/Renderer.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -258,6 +258,7 @@ declare class Renderer {
computeAsync(computeNodes: ComputeNode | ComputeNode[]): Promise<void>;
hasFeatureAsync(name: string): Promise<void>;
hasFeature(name: string): false | void;
hasInitialized(): boolean;
copyFramebufferToTexture(framebufferTexture: FramebufferTexture, rectangle?: Rectangle | null): void;
copyTextureToTexture(
srcTexture: Texture,
Expand Down
Loading