Commit fa416b34 authored by Rémi Verschelde's avatar Rémi Verschelde Committed by GitHub

Merge pull request #26943 from akien-mga/gles2-unsupported-float-types

GLES2: Convert unsupported float texture types to 8-bit types
parents 291c281f ac483345
......@@ -120,9 +120,13 @@ Ref<Image> RasterizerStorageGLES2::_get_gl_image_and_format(const Ref<Image> &p_
} break;
case Image::FORMAT_RG8: {
ERR_EXPLAIN("RG texture not supported");
ERR_FAIL_V(image);
ERR_PRINT("RG texture not supported, converting to RGB8.");
if (image.is_valid())
image->convert(Image::FORMAT_RGB8);
r_real_format = Image::FORMAT_RGB8;
r_gl_internal_format = GL_RGB;
r_gl_format = GL_RGB;
r_gl_type = GL_UNSIGNED_BYTE;
} break;
case Image::FORMAT_RGB8: {
......@@ -155,42 +159,57 @@ Ref<Image> RasterizerStorageGLES2::_get_gl_image_and_format(const Ref<Image> &p_
} break;
case Image::FORMAT_RF: {
if (!config.float_texture_supported) {
ERR_EXPLAIN("R float texture not supported");
ERR_FAIL_V(image);
ERR_PRINT("R float texture not supported, converting to RGB8.");
if (image.is_valid())
image->convert(Image::FORMAT_RGB8);
r_real_format = Image::FORMAT_RGB8;
r_gl_internal_format = GL_RGB;
r_gl_format = GL_RGB;
r_gl_type = GL_UNSIGNED_BYTE;
} else {
r_gl_internal_format = GL_ALPHA;
r_gl_format = GL_ALPHA;
r_gl_type = GL_FLOAT;
}
r_gl_internal_format = GL_ALPHA;
r_gl_format = GL_ALPHA;
r_gl_type = GL_FLOAT;
} break;
case Image::FORMAT_RGF: {
ERR_EXPLAIN("RG float texture not supported");
ERR_FAIL_V(image);
ERR_PRINT("RG float texture not supported, converting to RGB8.");
if (image.is_valid())
image->convert(Image::FORMAT_RGB8);
r_real_format = Image::FORMAT_RGB8;
r_gl_internal_format = GL_RGB;
r_gl_format = GL_RGB;
r_gl_type = GL_UNSIGNED_BYTE;
} break;
case Image::FORMAT_RGBF: {
if (!config.float_texture_supported) {
ERR_EXPLAIN("RGB float texture not supported");
ERR_FAIL_V(image);
ERR_PRINT("RGB float texture not supported, converting to RGB8.");
if (image.is_valid())
image->convert(Image::FORMAT_RGB8);
r_real_format = Image::FORMAT_RGB8;
r_gl_internal_format = GL_RGB;
r_gl_format = GL_RGB;
r_gl_type = GL_UNSIGNED_BYTE;
} else {
r_gl_internal_format = GL_RGB;
r_gl_format = GL_RGB;
r_gl_type = GL_FLOAT;
}
r_gl_internal_format = GL_RGB;
r_gl_format = GL_RGB;
r_gl_type = GL_FLOAT;
} break;
case Image::FORMAT_RGBAF: {
if (!config.float_texture_supported) {
ERR_EXPLAIN("RGBA float texture not supported");
ERR_FAIL_V(image);
ERR_PRINT("RGBA float texture not supported, converting to RGBA8.");
if (image.is_valid())
image->convert(Image::FORMAT_RGBA8);
r_real_format = Image::FORMAT_RGBA8;
r_gl_internal_format = GL_RGBA;
r_gl_format = GL_RGBA;
r_gl_type = GL_UNSIGNED_BYTE;
} else {
r_gl_internal_format = GL_RGBA;
r_gl_format = GL_RGBA;
r_gl_type = GL_FLOAT;
}
r_gl_internal_format = GL_RGBA;
r_gl_format = GL_RGBA;
r_gl_type = GL_FLOAT;
} break;
case Image::FORMAT_RH: {
need_decompress = true;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment