Merge pull request #48817 from Calinou/import-texture-npot-gles2-warning

Print a warning when importing a repeating NPOT texture in a GLES2 project
This commit is contained in:
Rémi Verschelde 2021-05-20 21:38:53 +02:00 committed by GitHub
commit 463073a966
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -393,6 +393,21 @@ Error ResourceImporterTexture::import(const String &p_source_file, const String
int tex_flags = 0;
if (repeat > 0) {
tex_flags |= Texture::FLAG_REPEAT;
const bool min_gles3 = GLOBAL_GET("rendering/quality/driver/driver_name") == "GLES3" &&
!GLOBAL_GET("rendering/quality/driver/fallback_to_gles2");
if (!min_gles3 && !image->is_size_po2()) {
// The project can be run using GLES2. GLES2 does not guarantee that
// repeating textures with a non-power-of-two size will be displayed
// without artifacts (due to upscaling to the nearest power of 2).
if (GLOBAL_GET("rendering/quality/driver/fallback_to_gles2")) {
WARN_PRINT(vformat("%s: Imported a repeating texture with a size of %dx%d, but the project is configured to allow falling back to GLES2.\nNon-power-of-2 repeating textures may not display correctly on some platforms such as HTML5. This is because GLES2 does not mandate support for non-power-of-2 repeating textures.",
p_source_file, image->get_width(), image->get_height()));
} else {
WARN_PRINT(vformat("%s: Imported a repeating texture with a size of %dx%d, but the project is configured to use GLES2.\nNon-power-of-2 repeating textures may not display correctly on some platforms such as HTML5. This is because GLES2 does not mandate support for non-power-of-2 repeating textures.",
p_source_file, image->get_width(), image->get_height()));
}
}
}
if (repeat == 2) {
tex_flags |= Texture::FLAG_MIRRORED_REPEAT;