|
@@ -198,6 +198,52 @@ THREE.WebGLRenderer = function ( parameters ) {
|
|
|
|
|
|
var _compressedTextureFormats = _glExtensionCompressedTextureS3TC ? _gl.getParameter( _gl.COMPRESSED_TEXTURE_FORMATS ) : [];
|
|
var _compressedTextureFormats = _glExtensionCompressedTextureS3TC ? _gl.getParameter( _gl.COMPRESSED_TEXTURE_FORMATS ) : [];
|
|
|
|
|
|
|
|
+ //
|
|
|
|
+
|
|
|
|
+ var _vertexShaderPrecisionHighpFloat = _gl.getShaderPrecisionFormat( _gl.VERTEX_SHADER, _gl.HIGH_FLOAT );
|
|
|
|
+ var _vertexShaderPrecisionMediumpFloat = _gl.getShaderPrecisionFormat( _gl.VERTEX_SHADER, _gl.MEDIUM_FLOAT );
|
|
|
|
+ var _vertexShaderPrecisionLowpFloat = _gl.getShaderPrecisionFormat( _gl.VERTEX_SHADER, _gl.LOW_FLOAT );
|
|
|
|
+
|
|
|
|
+ var _fragmentShaderPrecisionHighpFloat = _gl.getShaderPrecisionFormat( _gl.FRAGMENT_SHADER, _gl.HIGH_FLOAT );
|
|
|
|
+ var _fragmentShaderPrecisionMediumpFloat = _gl.getShaderPrecisionFormat( _gl.FRAGMENT_SHADER, _gl.MEDIUM_FLOAT );
|
|
|
|
+ var _fragmentShaderPrecisionLowpFloat = _gl.getShaderPrecisionFormat( _gl.FRAGMENT_SHADER, _gl.LOW_FLOAT );
|
|
|
|
+
|
|
|
|
+ var _vertexShaderPrecisionHighpInt = _gl.getShaderPrecisionFormat( _gl.VERTEX_SHADER, _gl.HIGH_INT );
|
|
|
|
+ var _vertexShaderPrecisionMediumpInt = _gl.getShaderPrecisionFormat( _gl.VERTEX_SHADER, _gl.MEDIUM_INT );
|
|
|
|
+ var _vertexShaderPrecisionLowpInt = _gl.getShaderPrecisionFormat( _gl.VERTEX_SHADER, _gl.LOW_INT );
|
|
|
|
+
|
|
|
|
+ var _fragmentShaderPrecisionHighpInt = _gl.getShaderPrecisionFormat( _gl.FRAGMENT_SHADER, _gl.HIGH_INT );
|
|
|
|
+ var _fragmentShaderPrecisionMediumpInt = _gl.getShaderPrecisionFormat( _gl.FRAGMENT_SHADER, _gl.MEDIUM_INT );
|
|
|
|
+ var _fragmentShaderPrecisionLowpInt = _gl.getShaderPrecisionFormat( _gl.FRAGMENT_SHADER, _gl.LOW_INT );
|
|
|
|
+
|
|
|
|
+ // clamp precision to maximum available
|
|
|
|
+
|
|
|
|
+ var highpAvailable = _vertexShaderPrecisionHighpFloat.precision > 0 && _fragmentShaderPrecisionHighpFloat.precision > 0;
|
|
|
|
+ var mediumpAvailable = _vertexShaderPrecisionMediumpFloat.precision > 0 && _fragmentShaderPrecisionMediumpFloat.precision > 0;
|
|
|
|
+
|
|
|
|
+ if ( _precision === "highp" && ! highpAvailable ) {
|
|
|
|
+
|
|
|
|
+ if ( mediumpAvailable ) {
|
|
|
|
+
|
|
|
|
+ _precision = "mediump";
|
|
|
|
+ console.warn( "WebGLRenderer: highp not supported, using mediump" );
|
|
|
|
+
|
|
|
|
+ } else {
|
|
|
|
+
|
|
|
|
+ _precision = "lowp";
|
|
|
|
+ console.warn( "WebGLRenderer: highp and mediump not supported, using lowp" );
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ if ( _precision === "mediump" && ! mediumpAvailable ) {
|
|
|
|
+
|
|
|
|
+ _precision = "lowp";
|
|
|
|
+ console.warn( "WebGLRenderer: mediump not supported, using lowp" );
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+
|
|
// API
|
|
// API
|
|
|
|
|
|
this.getContext = function () {
|
|
this.getContext = function () {
|
|
@@ -5458,7 +5504,7 @@ THREE.WebGLRenderer = function ( parameters ) {
|
|
|
|
|
|
if ( textureUnit >= _maxTextures ) {
|
|
if ( textureUnit >= _maxTextures ) {
|
|
|
|
|
|
- console.warn( "Trying to use " + textureUnit + " texture units while this GPU supports only " + _maxTextures );
|
|
|
|
|
|
+ console.warn( "WebGLRenderer: trying to use " + textureUnit + " texture units while this GPU supports only " + _maxTextures );
|
|
|
|
|
|
}
|
|
}
|
|
|
|
|