getInternalFormat method
dynamic
getInternalFormat(])
Implementation
getInternalFormat(internalFormatName, int glFormat, int glType, int encoding, [bool isVideoTexture = false]) {
if (isWebGL2 == false) return glFormat;
if (internalFormatName != null) {
if ( WebGL.get(internalFormatName) != null ) return WebGL.get(internalFormatName);
console.warning('WebGLRenderer: Attempt to use non-existing WebGL internal format $internalFormatName');
}
dynamic internalFormat = glFormat;
if (glFormat == WebGL.RED) {
if (glType == WebGL.FLOAT) internalFormat = WebGL.R32F;
if (glType == WebGL.HALF_FLOAT) internalFormat = WebGL.R16F;
if (glType == WebGL.UNSIGNED_BYTE) internalFormat = WebGL.R8;
}
if (glFormat == WebGL.RG) {
if (glType == WebGL.FLOAT) internalFormat = WebGL.RG32F;
if (glType == WebGL.HALF_FLOAT) internalFormat = WebGL.RG16F;
if (glType == WebGL.UNSIGNED_BYTE) internalFormat = WebGL.RG8;
}
if (glFormat == WebGL.RGB) {
if (glType == WebGL.FLOAT) internalFormat = WebGL.RGB32F;
if (glType == WebGL.HALF_FLOAT) internalFormat = WebGL.RGB16F;
if (glType == WebGL.UNSIGNED_BYTE) internalFormat = WebGL.RGB8;
}
if (glFormat == WebGL.RGBA) {
if (glType == WebGL.FLOAT) internalFormat = WebGL.RGBA32F;
if (glType == WebGL.HALF_FLOAT) internalFormat = WebGL.RGBA16F;
if (glType == WebGL.UNSIGNED_BYTE) {
internalFormat = (encoding == sRGBEncoding && isVideoTexture == false) ? WebGL.SRGB8_ALPHA8 : WebGL.RGBA8;
}
if (glType == WebGL.UNSIGNED_SHORT_4_4_4_4) internalFormat = WebGL.RGBA4;
if (glType == WebGL.UNSIGNED_SHORT_5_5_5_1) internalFormat = WebGL.RGB5_A1;
}
if (internalFormat == WebGL.R16F ||
internalFormat == WebGL.R32F ||
internalFormat == WebGL.RG16F ||
internalFormat == WebGL.RG32F ||
internalFormat == WebGL.RGBA16F ||
internalFormat == WebGL.RGBA32F) {
extensions.get('EXT_color_buffer_float');
}
return internalFormat;
}