aboutsummaryrefslogtreecommitdiff
path: root/shared/OpenglCodecCommon
diff options
context:
space:
mode:
authorYahan Zhou <yahan@google.com>2018-04-23 16:59:43 -0700
committerYahan Zhou <yahan@google.com>2018-04-23 18:11:30 -0700
commit951054fd8a26ae5111220c346b87aebab60cd9eb (patch)
tree6e91b811dfa172da092dc9a3ceaf59c2f5406bc2 /shared/OpenglCodecCommon
parent93eee36521f0e34a823faad4e5570662042baedd (diff)
downloadgoldfish-opengl-951054fd8a26ae5111220c346b87aebab60cd9eb.tar.gz
Support GL_RGBA16F and GL_RGB10_A2 pixel size
Also, GL_RGB10_A2 should work with GL_UNSIGNED_INT_2_10_10_10_REV instead of GL_UNSIGNED_INT_10_10_10_2. This cl does not impact real devices. BUG: 77977729 Test: atest CtsNativeHardwareTestCases Change-Id: I01fe508d741b04a7107f0a628b5ccb4ba320daa0
Diffstat (limited to 'shared/OpenglCodecCommon')
-rw-r--r--shared/OpenglCodecCommon/glUtils.cpp29
1 files changed, 22 insertions, 7 deletions
diff --git a/shared/OpenglCodecCommon/glUtils.cpp b/shared/OpenglCodecCommon/glUtils.cpp
index baa7c234..3136d139 100644
--- a/shared/OpenglCodecCommon/glUtils.cpp
+++ b/shared/OpenglCodecCommon/glUtils.cpp
@@ -463,6 +463,10 @@ void glUtilsWritePackPointerData(void* _stream, unsigned char *src,
}
}
+#ifndef GL_RGBA16F
+#define GL_RGBA16F 0x881A
+#endif // GL_RGBA16F
+
int glUtilsPixelBitSize(GLenum format, GLenum type)
{
int components = 0;
@@ -474,7 +478,16 @@ int glUtilsPixelBitSize(GLenum format, GLenum type)
componentsize = 8;
break;
case GL_SHORT:
+ case GL_HALF_FLOAT:
case GL_UNSIGNED_SHORT:
+ componentsize = 16;
+ break;
+ case GL_INT:
+ case GL_UNSIGNED_INT:
+ case GL_FLOAT:
+ case GL_FIXED:
+ componentsize = 32;
+ break;
case GL_UNSIGNED_SHORT_5_6_5:
case GL_UNSIGNED_SHORT_4_4_4_4:
case GL_UNSIGNED_SHORT_5_5_5_1:
@@ -483,15 +496,12 @@ int glUtilsPixelBitSize(GLenum format, GLenum type)
case GL_RGBA4_OES:
pixelsize = 16;
break;
- case GL_INT:
- case GL_UNSIGNED_INT:
- case GL_FLOAT:
- case GL_FIXED:
+ case GL_UNSIGNED_INT_2_10_10_10_REV:
case GL_UNSIGNED_INT_24_8_OES:
pixelsize = 32;
break;
default:
- ERR("glUtilsPixelBitSize: unknown pixel type - assuming pixel data 0\n");
+ ERR("glUtilsPixelBitSize: unknown pixel type %d - assuming pixel data 0\n", type);
componentsize = 0;
}
@@ -521,11 +531,16 @@ int glUtilsPixelBitSize(GLenum format, GLenum type)
case GL_BGRA_EXT:
components = 4;
break;
+ case GL_RGBA16F:
+ pixelsize = 64;
+ break;
default:
- ERR("glUtilsPixelBitSize: unknown pixel format...\n");
+ ERR("glUtilsPixelBitSize: unknown pixel format %d\n", format);
components = 0;
}
- pixelsize = components * componentsize;
+ if (pixelsize == 0) {
+ pixelsize = components * componentsize;
+ }
}
return pixelsize;