|
|
@@ -1149,9 +1149,17 @@ class Renderer {
|
|
|
|
|
|
}
|
|
|
|
|
|
- async computeAsync( computeNodes ) {
|
|
|
+ compute( computeNodes ) {
|
|
|
|
|
|
- if ( this._initialized === false ) await this.init();
|
|
|
+ if ( this._initialized === false ) {
|
|
|
+
|
|
|
+ console.warn( 'THREE.Renderer: .compute() called before the backend is initialized. Try using .computeAsync() instead.' );
|
|
|
+
|
|
|
+ return this.computeAsync( computeNodes );
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ //
|
|
|
|
|
|
const nodeFrame = this._nodes.nodeFrame;
|
|
|
|
|
|
@@ -1202,7 +1210,13 @@ class Renderer {
|
|
|
|
|
|
//
|
|
|
|
|
|
- computeNode.onInit( { renderer: this } );
|
|
|
+ const onInitFn = computeNode.onInitFunction;
|
|
|
+
|
|
|
+ if ( onInitFn !== null ) {
|
|
|
+
|
|
|
+ onInitFn.call( computeNode, { renderer: this } );
|
|
|
+
|
|
|
+ }
|
|
|
|
|
|
}
|
|
|
|
|
|
@@ -1218,14 +1232,22 @@ class Renderer {
|
|
|
|
|
|
backend.finishCompute( computeNodes );
|
|
|
|
|
|
- await this.backend.resolveTimestampAsync( computeNodes, 'compute' );
|
|
|
-
|
|
|
//
|
|
|
|
|
|
nodeFrame.renderId = previousRenderId;
|
|
|
|
|
|
}
|
|
|
|
|
|
+ async computeAsync( computeNodes ) {
|
|
|
+
|
|
|
+ if ( this._initialized === false ) await this.init();
|
|
|
+
|
|
|
+ this.compute( computeNodes );
|
|
|
+
|
|
|
+ await this.backend.resolveTimestampAsync( computeNodes, 'compute' );
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
async hasFeatureAsync( name ) {
|
|
|
|
|
|
if ( this._initialized === false ) await this.init();
|
|
|
@@ -1633,12 +1655,6 @@ class Renderer {
|
|
|
|
|
|
}
|
|
|
|
|
|
- get compute() {
|
|
|
-
|
|
|
- return this.computeAsync;
|
|
|
-
|
|
|
- }
|
|
|
-
|
|
|
get compile() {
|
|
|
|
|
|
return this.compileAsync;
|