|
@@ -302,7 +302,8 @@ function WebGLTextures( _gl, extensions, state, properties, capabilities, utils,
|
|
var image = cubeImage[ 0 ],
|
|
var image = cubeImage[ 0 ],
|
|
isPowerOfTwoImage = isPowerOfTwo( image ),
|
|
isPowerOfTwoImage = isPowerOfTwo( image ),
|
|
glFormat = utils.convert( texture.format ),
|
|
glFormat = utils.convert( texture.format ),
|
|
- glType = utils.convert( texture.type );
|
|
|
|
|
|
+ glType = utils.convert( texture.type ),
|
|
|
|
+ glInternalFormat = getInternalFormat( glFormat, glType );
|
|
|
|
|
|
setTextureParameters( _gl.TEXTURE_CUBE_MAP, texture, isPowerOfTwoImage );
|
|
setTextureParameters( _gl.TEXTURE_CUBE_MAP, texture, isPowerOfTwoImage );
|
|
|
|
|
|
@@ -312,11 +313,11 @@ function WebGLTextures( _gl, extensions, state, properties, capabilities, utils,
|
|
|
|
|
|
if ( isDataTexture ) {
|
|
if ( isDataTexture ) {
|
|
|
|
|
|
- state.texImage2D( _gl.TEXTURE_CUBE_MAP_POSITIVE_X + i, 0, glFormat, cubeImage[ i ].width, cubeImage[ i ].height, 0, glFormat, glType, cubeImage[ i ].data );
|
|
|
|
|
|
+ state.texImage2D( _gl.TEXTURE_CUBE_MAP_POSITIVE_X + i, 0, glInternalFormat, cubeImage[ i ].width, cubeImage[ i ].height, 0, glFormat, glType, cubeImage[ i ].data );
|
|
|
|
|
|
} else {
|
|
} else {
|
|
|
|
|
|
- state.texImage2D( _gl.TEXTURE_CUBE_MAP_POSITIVE_X + i, 0, glFormat, glFormat, glType, cubeImage[ i ] );
|
|
|
|
|
|
+ state.texImage2D( _gl.TEXTURE_CUBE_MAP_POSITIVE_X + i, 0, glInternalFormat, glFormat, glType, cubeImage[ i ] );
|
|
|
|
|
|
}
|
|
}
|
|
|
|
|
|
@@ -332,7 +333,7 @@ function WebGLTextures( _gl, extensions, state, properties, capabilities, utils,
|
|
|
|
|
|
if ( state.getCompressedTextureFormats().indexOf( glFormat ) > - 1 ) {
|
|
if ( state.getCompressedTextureFormats().indexOf( glFormat ) > - 1 ) {
|
|
|
|
|
|
- state.compressedTexImage2D( _gl.TEXTURE_CUBE_MAP_POSITIVE_X + i, j, glFormat, mipmap.width, mipmap.height, 0, mipmap.data );
|
|
|
|
|
|
+ state.compressedTexImage2D( _gl.TEXTURE_CUBE_MAP_POSITIVE_X + i, j, glInternalFormat, mipmap.width, mipmap.height, 0, mipmap.data );
|
|
|
|
|
|
} else {
|
|
} else {
|
|
|
|
|
|
@@ -342,7 +343,7 @@ function WebGLTextures( _gl, extensions, state, properties, capabilities, utils,
|
|
|
|
|
|
} else {
|
|
} else {
|
|
|
|
|
|
- state.texImage2D( _gl.TEXTURE_CUBE_MAP_POSITIVE_X + i, j, glFormat, mipmap.width, mipmap.height, 0, glFormat, glType, mipmap.data );
|
|
|
|
|
|
+ state.texImage2D( _gl.TEXTURE_CUBE_MAP_POSITIVE_X + i, j, glInternalFormat, mipmap.width, mipmap.height, 0, glFormat, glType, mipmap.data );
|
|
|
|
|
|
}
|
|
}
|
|
|
|
|
|
@@ -474,9 +475,8 @@ function WebGLTextures( _gl, extensions, state, properties, capabilities, utils,
|
|
|
|
|
|
var isPowerOfTwoImage = isPowerOfTwo( image ),
|
|
var isPowerOfTwoImage = isPowerOfTwo( image ),
|
|
glFormat = utils.convert( texture.format ),
|
|
glFormat = utils.convert( texture.format ),
|
|
- glType = utils.convert( texture.type );
|
|
|
|
-
|
|
|
|
- var internalFormat = getInternalFormat( glFormat, glType );
|
|
|
|
|
|
+ glType = utils.convert( texture.type ),
|
|
|
|
+ glInternalFormat = getInternalFormat( glFormat, glType );
|
|
|
|
|
|
setTextureParameters( _gl.TEXTURE_2D, texture, isPowerOfTwoImage );
|
|
setTextureParameters( _gl.TEXTURE_2D, texture, isPowerOfTwoImage );
|
|
|
|
|
|
@@ -486,21 +486,21 @@ function WebGLTextures( _gl, extensions, state, properties, capabilities, utils,
|
|
|
|
|
|
// populate depth texture with dummy data
|
|
// populate depth texture with dummy data
|
|
|
|
|
|
- internalFormat = _gl.DEPTH_COMPONENT;
|
|
|
|
|
|
+ glInternalFormat = _gl.DEPTH_COMPONENT;
|
|
|
|
|
|
if ( texture.type === FloatType ) {
|
|
if ( texture.type === FloatType ) {
|
|
|
|
|
|
if ( ! _isWebGL2 ) throw new Error( 'Float Depth Texture only supported in WebGL2.0' );
|
|
if ( ! _isWebGL2 ) throw new Error( 'Float Depth Texture only supported in WebGL2.0' );
|
|
- internalFormat = _gl.DEPTH_COMPONENT32F;
|
|
|
|
|
|
+ glInternalFormat = _gl.DEPTH_COMPONENT32F;
|
|
|
|
|
|
} else if ( _isWebGL2 ) {
|
|
} else if ( _isWebGL2 ) {
|
|
|
|
|
|
// WebGL 2.0 requires signed internalformat for glTexImage2D
|
|
// WebGL 2.0 requires signed internalformat for glTexImage2D
|
|
- internalFormat = _gl.DEPTH_COMPONENT16;
|
|
|
|
|
|
+ glInternalFormat = _gl.DEPTH_COMPONENT16;
|
|
|
|
|
|
}
|
|
}
|
|
|
|
|
|
- if ( texture.format === DepthFormat && internalFormat === _gl.DEPTH_COMPONENT ) {
|
|
|
|
|
|
+ if ( texture.format === DepthFormat && glInternalFormat === _gl.DEPTH_COMPONENT ) {
|
|
|
|
|
|
// The error INVALID_OPERATION is generated by texImage2D if format and internalformat are
|
|
// The error INVALID_OPERATION is generated by texImage2D if format and internalformat are
|
|
// DEPTH_COMPONENT and type is not UNSIGNED_SHORT or UNSIGNED_INT
|
|
// DEPTH_COMPONENT and type is not UNSIGNED_SHORT or UNSIGNED_INT
|
|
@@ -520,7 +520,7 @@ function WebGLTextures( _gl, extensions, state, properties, capabilities, utils,
|
|
// (https://www.khronos.org/registry/webgl/extensions/WEBGL_depth_texture/)
|
|
// (https://www.khronos.org/registry/webgl/extensions/WEBGL_depth_texture/)
|
|
if ( texture.format === DepthStencilFormat ) {
|
|
if ( texture.format === DepthStencilFormat ) {
|
|
|
|
|
|
- internalFormat = _gl.DEPTH_STENCIL;
|
|
|
|
|
|
+ glInternalFormat = _gl.DEPTH_STENCIL;
|
|
|
|
|
|
// The error INVALID_OPERATION is generated by texImage2D if format and internalformat are
|
|
// The error INVALID_OPERATION is generated by texImage2D if format and internalformat are
|
|
// DEPTH_STENCIL and type is not UNSIGNED_INT_24_8_WEBGL.
|
|
// DEPTH_STENCIL and type is not UNSIGNED_INT_24_8_WEBGL.
|
|
@@ -536,7 +536,7 @@ function WebGLTextures( _gl, extensions, state, properties, capabilities, utils,
|
|
|
|
|
|
}
|
|
}
|
|
|
|
|
|
- state.texImage2D( _gl.TEXTURE_2D, 0, internalFormat, image.width, image.height, 0, glFormat, glType, null );
|
|
|
|
|
|
+ state.texImage2D( _gl.TEXTURE_2D, 0, glInternalFormat, image.width, image.height, 0, glFormat, glType, null );
|
|
|
|
|
|
} else if ( texture.isDataTexture ) {
|
|
} else if ( texture.isDataTexture ) {
|
|
|
|
|
|
@@ -549,7 +549,7 @@ function WebGLTextures( _gl, extensions, state, properties, capabilities, utils,
|
|
for ( var i = 0, il = mipmaps.length; i < il; i ++ ) {
|
|
for ( var i = 0, il = mipmaps.length; i < il; i ++ ) {
|
|
|
|
|
|
mipmap = mipmaps[ i ];
|
|
mipmap = mipmaps[ i ];
|
|
- state.texImage2D( _gl.TEXTURE_2D, i, internalFormat, mipmap.width, mipmap.height, 0, glFormat, glType, mipmap.data );
|
|
|
|
|
|
+ state.texImage2D( _gl.TEXTURE_2D, i, glInternalFormat, mipmap.width, mipmap.height, 0, glFormat, glType, mipmap.data );
|
|
|
|
|
|
}
|
|
}
|
|
|
|
|
|
@@ -558,7 +558,7 @@ function WebGLTextures( _gl, extensions, state, properties, capabilities, utils,
|
|
|
|
|
|
} else {
|
|
} else {
|
|
|
|
|
|
- state.texImage2D( _gl.TEXTURE_2D, 0, internalFormat, image.width, image.height, 0, glFormat, glType, image.data );
|
|
|
|
|
|
+ state.texImage2D( _gl.TEXTURE_2D, 0, glInternalFormat, image.width, image.height, 0, glFormat, glType, image.data );
|
|
textureProperties.__maxMipLevel = 0;
|
|
textureProperties.__maxMipLevel = 0;
|
|
|
|
|
|
}
|
|
}
|
|
@@ -573,7 +573,7 @@ function WebGLTextures( _gl, extensions, state, properties, capabilities, utils,
|
|
|
|
|
|
if ( state.getCompressedTextureFormats().indexOf( glFormat ) > - 1 ) {
|
|
if ( state.getCompressedTextureFormats().indexOf( glFormat ) > - 1 ) {
|
|
|
|
|
|
- state.compressedTexImage2D( _gl.TEXTURE_2D, i, internalFormat, mipmap.width, mipmap.height, 0, mipmap.data );
|
|
|
|
|
|
+ state.compressedTexImage2D( _gl.TEXTURE_2D, i, glInternalFormat, mipmap.width, mipmap.height, 0, mipmap.data );
|
|
|
|
|
|
} else {
|
|
} else {
|
|
|
|
|
|
@@ -583,7 +583,7 @@ function WebGLTextures( _gl, extensions, state, properties, capabilities, utils,
|
|
|
|
|
|
} else {
|
|
} else {
|
|
|
|
|
|
- state.texImage2D( _gl.TEXTURE_2D, i, internalFormat, mipmap.width, mipmap.height, 0, glFormat, glType, mipmap.data );
|
|
|
|
|
|
+ state.texImage2D( _gl.TEXTURE_2D, i, glInternalFormat, mipmap.width, mipmap.height, 0, glFormat, glType, mipmap.data );
|
|
|
|
|
|
}
|
|
}
|
|
|
|
|
|
@@ -604,7 +604,7 @@ function WebGLTextures( _gl, extensions, state, properties, capabilities, utils,
|
|
for ( var i = 0, il = mipmaps.length; i < il; i ++ ) {
|
|
for ( var i = 0, il = mipmaps.length; i < il; i ++ ) {
|
|
|
|
|
|
mipmap = mipmaps[ i ];
|
|
mipmap = mipmaps[ i ];
|
|
- state.texImage2D( _gl.TEXTURE_2D, i, internalFormat, glFormat, glType, mipmap );
|
|
|
|
|
|
+ state.texImage2D( _gl.TEXTURE_2D, i, glInternalFormat, glFormat, glType, mipmap );
|
|
|
|
|
|
}
|
|
}
|
|
|
|
|
|
@@ -613,7 +613,7 @@ function WebGLTextures( _gl, extensions, state, properties, capabilities, utils,
|
|
|
|
|
|
} else {
|
|
} else {
|
|
|
|
|
|
- state.texImage2D( _gl.TEXTURE_2D, 0, internalFormat, glFormat, glType, image );
|
|
|
|
|
|
+ state.texImage2D( _gl.TEXTURE_2D, 0, glInternalFormat, glFormat, glType, image );
|
|
textureProperties.__maxMipLevel = 0;
|
|
textureProperties.__maxMipLevel = 0;
|
|
|
|
|
|
}
|
|
}
|