From 062373c680b56eee8750aa4cdc909007e0e5efed Mon Sep 17 00:00:00 2001 From: Don McCurdy Date: Thu, 31 Aug 2023 15:14:33 -0400 Subject: [PATCH] Move detection of display-p3 capabilility to WebGL.js --- examples/jsm/capabilities/WebGL.js | 17 +++++++++++++++++ examples/webgl_test_wide_gamut.html | 4 +++- src/math/ColorManagement.js | 17 ----------------- 3 files changed, 20 insertions(+), 18 deletions(-) diff --git a/examples/jsm/capabilities/WebGL.js b/examples/jsm/capabilities/WebGL.js index 08666feb103f91..2abf2614fccbc0 100644 --- a/examples/jsm/capabilities/WebGL.js +++ b/examples/jsm/capabilities/WebGL.js @@ -30,6 +30,23 @@ class WebGL { } + static isColorSpaceAvailable( colorSpace ) { + + try { + + const canvas = document.createElement( 'canvas' ); + const ctx = window.WebGL2RenderingContext && canvas.getContext( 'webgl2' ); + ctx.drawingBufferColorSpace = colorSpace; + return ctx.drawingBufferColorSpace === colorSpace; // deepscan-disable-line SAME_OPERAND_VALUE + + } catch ( e ) { + + return false; + + } + + } + static getWebGLErrorMessage() { return this.getErrorMessage( 1 ); diff --git a/examples/webgl_test_wide_gamut.html b/examples/webgl_test_wide_gamut.html index 5abba96adb0ac5..641c80685d88e6 100644 --- a/examples/webgl_test_wide_gamut.html +++ b/examples/webgl_test_wide_gamut.html @@ -72,12 +72,14 @@ import * as THREE from 'three'; + import WebGL from 'three/addons/capabilities/WebGL.js'; + let container, camera, renderer, loader; let sceneL, sceneR, textureL, textureR; let sliderPos = window.innerWidth / 2; - const isP3Context = THREE.ColorManagement.isDrawingBufferColorSpaceSupported( THREE.DisplayP3ColorSpace ); + const isP3Context = WebGL.isColorSpaceAvailable( THREE.DisplayP3ColorSpace ); if ( isP3Context ) { diff --git a/src/math/ColorManagement.js b/src/math/ColorManagement.js index 2af6dc77dcc563..296334d2929ac4 100644 --- a/src/math/ColorManagement.js +++ b/src/math/ColorManagement.js @@ -139,23 +139,6 @@ export const ColorManagement = { }, - isDrawingBufferColorSpaceSupported: function ( colorSpace ) { - - try { - - const canvas = document.createElement( 'canvas' ); - const ctx = window.WebGL2RenderingContext && canvas.getContext( 'webgl2' ); - ctx.drawingBufferColorSpace = colorSpace; - return ctx.drawingBufferColorSpace === colorSpace; // deepscan-disable-line SAME_OPERAND_VALUE - - } catch ( e ) { - - return false; - - } - - } - };