Use correct HALF_FLOAT constant for GLES
This commit is contained in:
parent
0bc6c64311
commit
406c3144d8
@ -61,6 +61,7 @@ public interface GLExt {
|
|||||||
public static final int GL_FRAMEBUFFER_SRGB_CAPABLE_EXT = 0x8DBA;
|
public static final int GL_FRAMEBUFFER_SRGB_CAPABLE_EXT = 0x8DBA;
|
||||||
public static final int GL_FRAMEBUFFER_SRGB_EXT = 0x8DB9;
|
public static final int GL_FRAMEBUFFER_SRGB_EXT = 0x8DB9;
|
||||||
public static final int GL_HALF_FLOAT_ARB = 0x140B;
|
public static final int GL_HALF_FLOAT_ARB = 0x140B;
|
||||||
|
public static final int GL_HALF_FLOAT_OES = 0x8D61;
|
||||||
public static final int GL_LUMINANCE16F_ARB = 0x881E;
|
public static final int GL_LUMINANCE16F_ARB = 0x881E;
|
||||||
public static final int GL_LUMINANCE32F_ARB = 0x8818;
|
public static final int GL_LUMINANCE32F_ARB = 0x8818;
|
||||||
public static final int GL_LUMINANCE_ALPHA16F_ARB = 0x881F;
|
public static final int GL_LUMINANCE_ALPHA16F_ARB = 0x881F;
|
||||||
|
@ -103,14 +103,19 @@ public final class GLImageFormats {
|
|||||||
public static GLImageFormat[][] getFormatsForCaps(EnumSet<Caps> caps) {
|
public static GLImageFormat[][] getFormatsForCaps(EnumSet<Caps> caps) {
|
||||||
GLImageFormat[][] formatToGL = new GLImageFormat[2][Image.Format.values().length];
|
GLImageFormat[][] formatToGL = new GLImageFormat[2][Image.Format.values().length];
|
||||||
|
|
||||||
|
int halfFloatFormat = GLExt.GL_HALF_FLOAT_ARB;
|
||||||
|
if (caps.contains(Caps.OpenGLES20)) {
|
||||||
|
halfFloatFormat = GLExt.GL_HALF_FLOAT_OES;
|
||||||
|
}
|
||||||
|
|
||||||
// Core Profile Formats (supported by both OpenGL Core 3.3 and OpenGL ES 3.0+)
|
// Core Profile Formats (supported by both OpenGL Core 3.3 and OpenGL ES 3.0+)
|
||||||
if (caps.contains(Caps.CoreProfile)) {
|
if (caps.contains(Caps.CoreProfile)) {
|
||||||
formatSwiz(formatToGL, Format.Alpha8, GL3.GL_R8, GL.GL_RED, GL.GL_UNSIGNED_BYTE);
|
formatSwiz(formatToGL, Format.Alpha8, GL3.GL_R8, GL.GL_RED, GL.GL_UNSIGNED_BYTE);
|
||||||
formatSwiz(formatToGL, Format.Luminance8, GL3.GL_R8, GL.GL_RED, GL.GL_UNSIGNED_BYTE);
|
formatSwiz(formatToGL, Format.Luminance8, GL3.GL_R8, GL.GL_RED, GL.GL_UNSIGNED_BYTE);
|
||||||
formatSwiz(formatToGL, Format.Luminance8Alpha8, GL3.GL_RG8, GL3.GL_RG, GL.GL_UNSIGNED_BYTE);
|
formatSwiz(formatToGL, Format.Luminance8Alpha8, GL3.GL_RG8, GL3.GL_RG, GL.GL_UNSIGNED_BYTE);
|
||||||
formatSwiz(formatToGL, Format.Luminance16F, GL3.GL_R16F, GL.GL_RED, GLExt.GL_HALF_FLOAT_ARB);
|
formatSwiz(formatToGL, Format.Luminance16F, GL3.GL_R16F, GL.GL_RED, halfFloatFormat);
|
||||||
formatSwiz(formatToGL, Format.Luminance32F, GL3.GL_R32F, GL.GL_RED, GL.GL_FLOAT);
|
formatSwiz(formatToGL, Format.Luminance32F, GL3.GL_R32F, GL.GL_RED, GL.GL_FLOAT);
|
||||||
formatSwiz(formatToGL, Format.Luminance16FAlpha16F, GL3.GL_RG16F, GL3.GL_RG, GLExt.GL_HALF_FLOAT_ARB);
|
formatSwiz(formatToGL, Format.Luminance16FAlpha16F, GL3.GL_RG16F, GL3.GL_RG, halfFloatFormat);
|
||||||
|
|
||||||
formatSrgbSwiz(formatToGL, Format.Luminance8, GLExt.GL_SRGB8_EXT, GL.GL_RED, GL.GL_UNSIGNED_BYTE);
|
formatSrgbSwiz(formatToGL, Format.Luminance8, GLExt.GL_SRGB8_EXT, GL.GL_RED, GL.GL_UNSIGNED_BYTE);
|
||||||
formatSrgbSwiz(formatToGL, Format.Luminance8Alpha8, GLExt.GL_SRGB8_ALPHA8_EXT, GL3.GL_RG, GL.GL_UNSIGNED_BYTE);
|
formatSrgbSwiz(formatToGL, Format.Luminance8Alpha8, GLExt.GL_SRGB8_ALPHA8_EXT, GL3.GL_RG, GL.GL_UNSIGNED_BYTE);
|
||||||
@ -163,6 +168,11 @@ public final class GLImageFormats {
|
|||||||
}
|
}
|
||||||
format(formatToGL, Format.RGB8, GLExt.GL_RGBA8, GL.GL_RGB, GL.GL_UNSIGNED_BYTE);
|
format(formatToGL, Format.RGB8, GLExt.GL_RGBA8, GL.GL_RGB, GL.GL_UNSIGNED_BYTE);
|
||||||
format(formatToGL, Format.RGBA8, GLExt.GL_RGBA8, GL.GL_RGBA, GL.GL_UNSIGNED_BYTE);
|
format(formatToGL, Format.RGBA8, GLExt.GL_RGBA8, GL.GL_RGBA, GL.GL_UNSIGNED_BYTE);
|
||||||
|
|
||||||
|
formatSwiz(formatToGL, Format.BGR8, GL2.GL_RGB8, GL2.GL_RGB, GL.GL_UNSIGNED_BYTE);
|
||||||
|
formatSwiz(formatToGL, Format.ARGB8, GLExt.GL_RGBA8, GL2.GL_RGBA, GL.GL_UNSIGNED_BYTE);
|
||||||
|
formatSwiz(formatToGL, Format.BGRA8, GLExt.GL_RGBA8, GL2.GL_RGBA, GL.GL_UNSIGNED_BYTE);
|
||||||
|
formatSwiz(formatToGL, Format.ABGR8, GLExt.GL_RGBA8, GL.GL_RGBA, GL.GL_UNSIGNED_BYTE);
|
||||||
} else {
|
} else {
|
||||||
// Actually, the internal format isn't used for OpenGL ES 2! This is the same as the above..
|
// Actually, the internal format isn't used for OpenGL ES 2! This is the same as the above..
|
||||||
if (!caps.contains(Caps.CoreProfile)) {
|
if (!caps.contains(Caps.CoreProfile)) {
|
||||||
@ -182,25 +192,25 @@ public final class GLImageFormats {
|
|||||||
|
|
||||||
if (caps.contains(Caps.FloatTexture)) {
|
if (caps.contains(Caps.FloatTexture)) {
|
||||||
if (!caps.contains(Caps.CoreProfile)) {
|
if (!caps.contains(Caps.CoreProfile)) {
|
||||||
format(formatToGL, Format.Luminance16F, GLExt.GL_LUMINANCE16F_ARB, GL.GL_LUMINANCE, GLExt.GL_HALF_FLOAT_ARB);
|
format(formatToGL, Format.Luminance16F, GLExt.GL_LUMINANCE16F_ARB, GL.GL_LUMINANCE, halfFloatFormat);
|
||||||
format(formatToGL, Format.Luminance32F, GLExt.GL_LUMINANCE32F_ARB, GL.GL_LUMINANCE, GL.GL_FLOAT);
|
format(formatToGL, Format.Luminance32F, GLExt.GL_LUMINANCE32F_ARB, GL.GL_LUMINANCE, GL.GL_FLOAT);
|
||||||
format(formatToGL, Format.Luminance16FAlpha16F, GLExt.GL_LUMINANCE_ALPHA16F_ARB, GL.GL_LUMINANCE_ALPHA, GLExt.GL_HALF_FLOAT_ARB);
|
format(formatToGL, Format.Luminance16FAlpha16F, GLExt.GL_LUMINANCE_ALPHA16F_ARB, GL.GL_LUMINANCE_ALPHA, halfFloatFormat);
|
||||||
}
|
}
|
||||||
format(formatToGL, Format.RGB16F, GLExt.GL_RGB16F_ARB, GL.GL_RGB, GLExt.GL_HALF_FLOAT_ARB);
|
format(formatToGL, Format.RGB16F, GLExt.GL_RGB16F_ARB, GL.GL_RGB, halfFloatFormat);
|
||||||
format(formatToGL, Format.RGB32F, GLExt.GL_RGB32F_ARB, GL.GL_RGB, GL.GL_FLOAT);
|
format(formatToGL, Format.RGB32F, GLExt.GL_RGB32F_ARB, GL.GL_RGB, GL.GL_FLOAT);
|
||||||
format(formatToGL, Format.RGBA16F, GLExt.GL_RGBA16F_ARB, GL.GL_RGBA, GLExt.GL_HALF_FLOAT_ARB);
|
format(formatToGL, Format.RGBA16F, GLExt.GL_RGBA16F_ARB, GL.GL_RGBA, halfFloatFormat);
|
||||||
format(formatToGL, Format.RGBA32F, GLExt.GL_RGBA32F_ARB, GL.GL_RGBA, GL.GL_FLOAT);
|
format(formatToGL, Format.RGBA32F, GLExt.GL_RGBA32F_ARB, GL.GL_RGBA, GL.GL_FLOAT);
|
||||||
}
|
}
|
||||||
if (caps.contains(Caps.PackedFloatTexture)) {
|
if (caps.contains(Caps.PackedFloatTexture)) {
|
||||||
format(formatToGL, Format.RGB111110F, GLExt.GL_R11F_G11F_B10F_EXT, GL.GL_RGB, GLExt.GL_UNSIGNED_INT_10F_11F_11F_REV_EXT);
|
format(formatToGL, Format.RGB111110F, GLExt.GL_R11F_G11F_B10F_EXT, GL.GL_RGB, GLExt.GL_UNSIGNED_INT_10F_11F_11F_REV_EXT);
|
||||||
if (caps.contains(Caps.FloatTexture)) {
|
if (caps.contains(Caps.FloatTexture)) {
|
||||||
format(formatToGL, Format.RGB16F_to_RGB111110F, GLExt.GL_R11F_G11F_B10F_EXT, GL.GL_RGB, GLExt.GL_HALF_FLOAT_ARB);
|
format(formatToGL, Format.RGB16F_to_RGB111110F, GLExt.GL_R11F_G11F_B10F_EXT, GL.GL_RGB, halfFloatFormat);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (caps.contains(Caps.SharedExponentTexture)) {
|
if (caps.contains(Caps.SharedExponentTexture)) {
|
||||||
format(formatToGL, Format.RGB9E5, GLExt.GL_RGB9_E5_EXT, GL.GL_RGB, GLExt.GL_UNSIGNED_INT_5_9_9_9_REV_EXT);
|
format(formatToGL, Format.RGB9E5, GLExt.GL_RGB9_E5_EXT, GL.GL_RGB, GLExt.GL_UNSIGNED_INT_5_9_9_9_REV_EXT);
|
||||||
if (caps.contains(Caps.FloatTexture)) {
|
if (caps.contains(Caps.FloatTexture)) {
|
||||||
format(formatToGL, Format.RGB16F_to_RGB9E5, GLExt.GL_RGB9_E5_EXT, GL.GL_RGB, GLExt.GL_HALF_FLOAT_ARB);
|
format(formatToGL, Format.RGB16F_to_RGB9E5, GLExt.GL_RGB9_E5_EXT, GL.GL_RGB, halfFloatFormat);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user