Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1550)

Unified Diff: cc/resources/resource_format.cc

Issue 2674493003: Add compositor support for half-float RGBA buffers and textures (Closed)
Patch Set: Don't enable on non-ES3 yet Created 3 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « cc/resources/resource_format.h ('k') | cc/resources/resource_format_utils.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: cc/resources/resource_format.cc
diff --git a/cc/resources/resource_format.cc b/cc/resources/resource_format.cc
index 2d139ab5c0465e910b289844893c6acb63a3653f..a7db8a780823461b560942dee98a6f581eda4041 100644
--- a/cc/resources/resource_format.cc
+++ b/cc/resources/resource_format.cc
@@ -12,6 +12,8 @@ namespace cc {
int BitsPerPixel(ResourceFormat format) {
switch (format) {
+ case RGBA_F16:
+ return 64;
case BGRA_8888:
case RGBA_8888:
return 32;
@@ -42,6 +44,7 @@ GLenum GLDataType(ResourceFormat format) {
GL_UNSIGNED_BYTE, // ETC1
GL_UNSIGNED_BYTE, // RED_8
GL_HALF_FLOAT_OES, // LUMINANCE_F16
+ GL_HALF_FLOAT_OES, // RGBA_F16
};
static_assert(arraysize(format_gl_data_type) == (RESOURCE_FORMAT_MAX + 1),
"format_gl_data_type does not handle all cases.");
@@ -61,6 +64,7 @@ GLenum GLDataFormat(ResourceFormat format) {
GL_ETC1_RGB8_OES, // ETC1
GL_RED_EXT, // RED_8
GL_LUMINANCE, // LUMINANCE_F16
+ GL_RGBA, // RGBA_F16
};
static_assert(arraysize(format_gl_data_format) == (RESOURCE_FORMAT_MAX + 1),
"format_gl_data_format does not handle all cases.");
@@ -91,6 +95,7 @@ GLenum GLCopyTextureInternalFormat(ResourceFormat format) {
GL_RGB, // ETC1
GL_LUMINANCE, // RED_8
GL_LUMINANCE, // LUMINANCE_F16
+ GL_RGBA, // RGBA_F16
};
static_assert(arraysize(format_gl_data_format) == (RESOURCE_FORMAT_MAX + 1),
"format_gl_data_format does not handle all cases.");
@@ -113,6 +118,7 @@ gfx::BufferFormat BufferFormat(ResourceFormat format) {
case LUMINANCE_8:
case RGB_565:
case LUMINANCE_F16:
+ case RGBA_F16:
break;
}
NOTREACHED();
@@ -129,6 +135,7 @@ bool DoesResourceFormatSupportAlpha(ResourceFormat format) {
case RGBA_8888:
case BGRA_8888:
case ALPHA_8:
+ case RGBA_F16:
return true;
case LUMINANCE_8:
case RGB_565:
« no previous file with comments | « cc/resources/resource_format.h ('k') | cc/resources/resource_format_utils.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698