| Index: ui/gl/gl_surface.h
|
| diff --git a/ui/gl/gl_surface.h b/ui/gl/gl_surface.h
|
| index 3b08ebc8d57ce5057fd9af29844c6e9df56ab0cd..68bef153d5d557d1d00ccc778ef5f2e2c87d63f9 100644
|
| --- a/ui/gl/gl_surface.h
|
| +++ b/ui/gl/gl_surface.h
|
| @@ -10,6 +10,7 @@
|
| #include "base/callback.h"
|
| #include "base/macros.h"
|
| #include "base/memory/ref_counted.h"
|
| +#include "base/sys_info.h"
|
| #include "build/build_config.h"
|
| #include "ui/gfx/geometry/rect.h"
|
| #include "ui/gfx/geometry/rect_f.h"
|
| @@ -38,8 +39,8 @@ class GL_EXPORT GLSurface : public base::RefCounted<GLSurface> {
|
|
|
| // Minimum bit depth of surface.
|
| enum Format {
|
| - SURFACE_ARGB8888 = 1, // 32 bits
|
| - SURFACE_RGB565 = 2, // 16 bits
|
| + SURFACE_ARGB8888,
|
| + SURFACE_RGB565,
|
| SURFACE_DEFAULT = SURFACE_ARGB8888
|
| };
|
|
|
| @@ -152,7 +153,7 @@ class GL_EXPORT GLSurface : public base::RefCounted<GLSurface> {
|
| virtual void* GetConfig();
|
|
|
| // Get the GL pixel format of the surface, if available.
|
| - virtual unsigned GetFormat();
|
| + virtual GLSurface::Format GetFormat();
|
|
|
| // Get access to a helper providing time of recent refresh and period
|
| // of screen refresh. If unavailable, returns NULL.
|
| @@ -209,10 +210,14 @@ class GL_EXPORT GLSurface : public base::RefCounted<GLSurface> {
|
| gfx::AcceleratedWidget window);
|
| #endif // defined(USE_OZONE)
|
|
|
| + static Format GetDefaultFormat() {
|
| + return base::SysInfo::IsLowEndDevice() ? SURFACE_RGB565 : SURFACE_ARGB8888;
|
| + }
|
| +
|
| // Create a GL surface used for offscreen rendering.
|
| static scoped_refptr<GLSurface> CreateOffscreenGLSurface(
|
| const gfx::Size& size) {
|
| - return CreateOffscreenGLSurface(size, SURFACE_DEFAULT);
|
| + return CreateOffscreenGLSurface(size, GetDefaultFormat());
|
| }
|
|
|
| static scoped_refptr<GLSurface> CreateOffscreenGLSurface(
|
| @@ -234,6 +239,8 @@ class GL_EXPORT GLSurface : public base::RefCounted<GLSurface> {
|
|
|
| static bool ExtensionsContain(const char* extensions, const char* name);
|
|
|
| + GLSurface::Format format_;
|
| +
|
| private:
|
| friend class base::RefCounted<GLSurface>;
|
| friend class GLContext;
|
| @@ -279,7 +286,7 @@ class GL_EXPORT GLSurfaceAdapter : public GLSurface {
|
| void* GetShareHandle() override;
|
| void* GetDisplay() override;
|
| void* GetConfig() override;
|
| - unsigned GetFormat() override;
|
| + GLSurface::Format GetFormat() override;
|
| VSyncProvider* GetVSyncProvider() override;
|
| bool ScheduleOverlayPlane(int z_order,
|
| OverlayTransform transform,
|
|
|