Chromium Code Reviews| Index: ui/gl/gl_surface_egl.cc |
| diff --git a/ui/gl/gl_surface_egl.cc b/ui/gl/gl_surface_egl.cc |
| index 7c36984843a7eadbf12da2bf7c3ec969542a492e..84c7098d54d7426771c4239bceac8e1084de7a69 100644 |
| --- a/ui/gl/gl_surface_egl.cc |
| +++ b/ui/gl/gl_surface_egl.cc |
| @@ -13,6 +13,7 @@ |
| #include "base/memory/scoped_ptr.h" |
| #include "base/message_loop/message_loop.h" |
| #include "base/metrics/histogram_macros.h" |
| +#include "base/strings/string_number_conversions.h" |
| #include "base/trace_event/trace_event.h" |
| #include "build/build_config.h" |
| #include "ui/gfx/geometry/rect.h" |
| @@ -35,6 +36,10 @@ extern "C" { |
| #include "ui/ozone/public/surface_factory_ozone.h" |
| #endif |
| +#if defined(USE_X11) && !defined(OS_CHROMEOS) |
| +#include "ui/gfx/x/x11_switches.h" |
| +#endif |
| + |
| #if !defined(EGL_FIXED_SIZE_ANGLE) |
| #define EGL_FIXED_SIZE_ANGLE 0x3201 |
| #endif |
| @@ -273,9 +278,27 @@ bool GLSurfaceEGL::InitializeOneOff() { |
| switches::kEnableUnsafeES3APIs)) { |
| renderable_type = EGL_OPENGL_ES3_BIT; |
| } |
| + |
| + EGLint buffer_size = 32; |
| + EGLint alpha_size = 8; |
| + |
| +#if defined(USE_X11) && !defined(OS_CHROMEOS) |
| + bool succeed = |
| + base::CommandLine::ForCurrentProcess()->HasSwitch(switches::kWindowDepth); |
| + DCHECK(succeed); |
|
piman
2015/11/20 01:44:41
This code may be called outside of the full chrome
Julien Isorce Samsung
2015/11/20 09:13:56
Ah ok, thx. At minimum I'll add a if.
|
| + |
| + std::string depth = |
| + base::CommandLine::ForCurrentProcess()->GetSwitchValueASCII( |
| + switches::kWindowDepth); |
| + succeed = base::StringToInt(depth, &buffer_size); |
| + DCHECK(succeed); |
| + |
| + alpha_size = buffer_size == 32 ? 8 : 0; |
| +#endif |
| + |
| const EGLint kConfigAttribs[] = { |
| - EGL_BUFFER_SIZE, 32, |
| - EGL_ALPHA_SIZE, 8, |
| + EGL_BUFFER_SIZE, buffer_size, |
| + EGL_ALPHA_SIZE, alpha_size, |
| EGL_BLUE_SIZE, 8, |
| EGL_GREEN_SIZE, 8, |
| EGL_RED_SIZE, 8, |