|
@@ -6931,7 +6931,12 @@ void RasterizerStorageGLES3::_render_target_allocate(RenderTarget *rt) {
|
|
|
|
|
|
glGenTextures(1, &rt->exposure.color);
|
|
|
glBindTexture(GL_TEXTURE_2D, rt->exposure.color);
|
|
|
+#ifdef IPHONE_ENABLED
|
|
|
+ ///@TODO ugly hack to get around iOS not supporting 32bit single channel floating point textures...
|
|
|
+ glTexImage2D(GL_TEXTURE_2D, 0, GL_R16F, 1, 1, 0, GL_RED, GL_FLOAT, NULL);
|
|
|
+#else
|
|
|
glTexImage2D(GL_TEXTURE_2D, 0, GL_R32F, 1, 1, 0, GL_RED, GL_FLOAT, NULL);
|
|
|
+#endif
|
|
|
glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, rt->exposure.color, 0);
|
|
|
|
|
|
status = glCheckFramebufferStatus(GL_FRAMEBUFFER);
|
|
@@ -7163,7 +7168,12 @@ RID RasterizerStorageGLES3::canvas_light_shadow_buffer_create(int p_width) {
|
|
|
if (config.use_rgba_2d_shadows) {
|
|
|
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA8, cls->size, cls->height, 0, GL_RGBA, GL_UNSIGNED_BYTE, NULL);
|
|
|
} else {
|
|
|
+#ifdef IPHONE_ENABLED
|
|
|
+ ///@TODO ugly hack to get around iOS not supporting 32bit single channel floating point textures...
|
|
|
+ glTexImage2D(GL_TEXTURE_2D, 0, GL_R16F, cls->size, cls->height, 0, GL_RED, GL_FLOAT, NULL);
|
|
|
+#else
|
|
|
glTexImage2D(GL_TEXTURE_2D, 0, GL_R32F, cls->size, cls->height, 0, GL_RED, GL_FLOAT, NULL);
|
|
|
+#endif
|
|
|
}
|
|
|
|
|
|
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
|