Explorar o código

Editor: Wired up Renderer to Config.

Mr.doob %!s(int64=11) %!d(string=hai) anos
pai
achega
beb6dc80c3
Modificáronse 2 ficheiros con 21 adicións e 9 borrados
  1. 8 4
      editor/js/Sidebar.Renderer.js
  2. 13 5
      editor/js/Viewport.js

+ 8 - 4
editor/js/Sidebar.Renderer.js

@@ -37,14 +37,18 @@ Sidebar.Renderer = function ( editor ) {
 
 	container.add( rendererTypeRow );
 
+	if ( editor.config.getKey( 'renderer' ) !== undefined ) {
+
+		rendererType.setValue( editor.config.getKey( 'renderer' ) );
+
+	}
+
 	//
 
 	function updateRenderer() {
 
-		var renderer = new rendererTypes[ rendererType.getValue() ]( {
-			antialias: true
-		} );
-		signals.rendererChanged.dispatch( renderer );
+		signals.rendererChanged.dispatch( rendererType.getValue() );
+		editor.config.setKey( 'renderer', rendererType.getValue() );
 
 	}
 

+ 13 - 5
editor/js/Viewport.js

@@ -211,11 +211,11 @@ var Viewport = function ( editor ) {
 
 	} );
 
-	signals.rendererChanged.add( function ( object ) {
+	signals.rendererChanged.add( function ( type ) {
 
 		container.dom.removeChild( renderer.domElement );
 
-		renderer = object;
+		renderer = new THREE[ type ]( { antialias: true } );
 		renderer.autoClear = false;
 		renderer.autoUpdateScene = false;
 		renderer.setSize( container.dom.offsetWidth, container.dom.offsetHeight );
@@ -430,13 +430,21 @@ var Viewport = function ( editor ) {
 
 	var renderer;
 
-	if ( System.support.webgl === true ) {
+	if ( editor.config.getKey( 'renderer' ) !== undefined ) {
 
-		renderer = new THREE.WebGLRenderer( { antialias: true } );
+		renderer = new THREE[ editor.config.getKey( 'renderer' ) ]( { antialias: true } );
 
 	} else {
 
-		renderer = new THREE.CanvasRenderer();
+		if ( System.support.webgl === true ) {
+
+			renderer = new THREE.WebGLRenderer( { antialias: true } );
+
+		} else {
+
+			renderer = new THREE.CanvasRenderer();
+
+		}
 
 	}