I am developing a OpenGL ES 3.0 application on Android, mainly in Java and I need to use floating point render textures.
GLES30.glGetString(GLES30.GL_EXTENSIONS)
returns a string containing GL_EXT_color_buffer_half_float, and GL_EXT_color_buffer_float among others => my device supports floating point textures, obviously.
However, I am a bit lost right now how to use those extensions. Calling
GLES30.glTexImage2D(GLES30.GL_TEXTURE_2D, 0, GLES30.GL_RGBA16F, 512, 512, 0, GLES30.GL_RGBA, GLES30.GL_UNSIGNED_BYTE, null);
results in an glError 1282. Everything works when I use GL_RGBA instead of GL_RGBA16F. I wanted to try GL_RGBA16F_EXT, but that's not contained in GLES30. So, I tried to pass the value 0x881A which is how GL_RGBA16F_EXT is defined, I think. But, same error: glError 1282.
There is that function eglGetProcAddress which is sometimes needed to use OpenGL ES extensions, but since I don't need the address of a function, I suspect that won't help me either. I don't really know what to try next. How can i create floating point FBOs?