Regression from #71248:

I believe this pull may have caused errors on WebGL since it moves the `GLES_OVER_GL` guard. WebGL does not support texture swizzling per: https://registry.khronos.org/webgl/specs/latest/2.0/#5.19
so this is causing the following trace in Chrome:
```
WebGL: INVALID_ENUM: texParameter: invalid parameter name
```
and it quickly fills up the 256 log limit for the same message in WebGL.

This doesn't appear to be breaking anything asides from causing the numerous log messages.

_Originally posted by @jnlopar in https://github.com/godotengine/godot/issues/71248#issuecomment-1384768973_

CC @rsjtdrjgfuzkfg @clayjohn
Texture *texture = texture_owner.get_or_null(p_texture);
	ERR_FAIL_COND(!texture);
	texture->detect_normal_callback = p_callback;
	texture->detect_normal_callback_ud = p_userdata;
}
void TextureStorage::texture_set_detect_roughness_callback(RID p_texture, RS::TextureDetectRoughnessCallback p_callback, void *p_userdata) {
	Texture *texture = texture_owner.get_or_null(p_texture);
	ERR_FAIL_COND(!texture);
	texture->detect_roughness_callback = p_callback;
	texture->detect_roughness_callback_ud = p_userdata;
}
void TextureStorage::texture_debug_usage(List<RS::TextureInfo> *r_info) {
	List<RID> textures;
	texture_owner.get_owned_list(&textures);
	for (List<RID>::Element *E = textures.front(); E; E = E->next()) {
		Texture *t = texture_owner.get_or_null(E->get());
		if (!t) {
			continue;
		}
		RS::TextureInfo tinfo;
		tinfo.path = t->path;
		tinfo.format = t->format;
		tinfo.width = t->alloc_width;
		tinfo.height = t->alloc_height;
		tinfo.depth = 0;
		tinfo.bytes = t->total_data_size;
		r_info->push_back(tinfo);
	}
}
void TextureStorage::texture_set_force_redraw_if_visible(RID p_texture, bool p_enable) {