| 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..677c356411ab625276a7b44bcf13e395d5e8da2f 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)
|
| + if (base::CommandLine::ForCurrentProcess()->HasSwitch(
|
| + switches::kWindowDepth)) {
|
| + std::string depth =
|
| + base::CommandLine::ForCurrentProcess()->GetSwitchValueASCII(
|
| + switches::kWindowDepth);
|
| +
|
| + bool 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,
|
|
|