Browse Source

WebGPURenderer: Use `renderAsync()` as fallback (#27894)

* WebGPURenderer: Use renderAsync() as fallback

* WebGPURenderer: Use clearAsync() as fallback
sunag 1 year ago
parent
commit
b077de1d11
1 changed files with 14 additions and 5 deletions
  1. 14 5
      examples/jsm/renderers/common/Renderer.js

+ 14 - 5
examples/jsm/renderers/common/Renderer.js

@@ -312,7 +312,7 @@ class Renderer {
 
 		if ( this._initialized === false ) await this.init();
 
-		const renderContext = this._renderContext( scene, camera );
+		const renderContext = this._renderScene( scene, camera );
 
 		await this.backend.resolveTimestampAsync( renderContext, 'render' );
 
@@ -322,16 +322,17 @@ class Renderer {
 
 		if ( this._initialized === false ) {
 
-			console.error( 'THREE.Renderer: .render() called before the backend is initialized. Try using .renderAsync() instead.' );
-			return;
+			console.warn( 'THREE.Renderer: .render() called before the backend is initialized. Try using .renderAsync() instead.' );
+
+			return this.renderAsync( scene, camera );
 
 		}
 
-		this._renderContext( scene, camera );
+		this._renderScene( scene, camera );
 
 	}
 
-	_renderContext( scene, camera ) {
+	_renderScene( scene, camera ) {
 
 		// preserve render tree
 
@@ -761,6 +762,14 @@ class Renderer {
 
 	clear( color = true, depth = true, stencil = true ) {
 
+		if ( this._initialized === false ) {
+
+			console.warn( 'THREE.Renderer: .clear() called before the backend is initialized. Try using .clearAsync() instead.' );
+
+			return this.clearAsync( color, depth, stencil );
+
+		}
+
 		let renderTargetData = null;
 		const renderTarget = this._renderTarget;