ソースを参照

Editor: Improved prefers-color-scheme handling.

Mr.doob 5 年 前
コミット
2f3976c69b
1 ファイル変更17 行追加3 行削除
  1. 17 3
      editor/js/Viewport.js

+ 17 - 3
editor/js/Viewport.js

@@ -351,12 +351,26 @@ function Viewport( editor ) {
 
 		renderer = newRenderer;
 
+		renderer.setClearColor( 0xaaaaaa );
+
+		if ( window.matchMedia ) {
+
+			var mediaQuery = window.matchMedia( '(prefers-color-scheme: dark)' );
+			mediaQuery.addListener( function ( event ) {
+
+				renderer.setClearColor( event.matches ? 0x333333 : 0xaaaaaa );
+
+				if ( scene.background === null ) render();
+
+			} );
+
+			renderer.setClearColor( mediaQuery.matches ? 0x333333 : 0xaaaaaa );
+
+		}
+
 		renderer.setPixelRatio( window.devicePixelRatio );
 		renderer.setSize( container.dom.offsetWidth, container.dom.offsetHeight );
 
-		var isDarkMode = window.matchMedia && window.matchMedia( '(prefers-color-scheme: dark)' ).matches;
-		renderer.setClearColor( isDarkMode ? 0x333333 : 0xaaaaaa );
-
 		pmremGenerator = new THREE.PMREMGenerator( renderer );
 		pmremGenerator.compileEquirectangularShader();