summaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorRomain Guy <romainguy@google.com>2010-10-10 13:33:22 -0700
committerRomain Guy <romainguy@google.com>2010-10-12 11:00:18 -0700
commit3b996c96e4cd1057cb6b9531eaf8c01f934d2b2a (patch)
tree4591eed5eaba8f05277ee3cfe83e339a2a7edc6c /include
parentf5afdde5e76031622686bba751d123286edb0e96 (diff)
downloadframeworks_native-3b996c96e4cd1057cb6b9531eaf8c01f934d2b2a.zip
frameworks_native-3b996c96e4cd1057cb6b9531eaf8c01f934d2b2a.tar.gz
frameworks_native-3b996c96e4cd1057cb6b9531eaf8c01f934d2b2a.tar.bz2
Always create OpenGL accelerated windows in RGBA 8888.
Bug #3081600 The OpenGL renderer in libhwui uses a single EGL context per process and thus create it with an RGBA 8888 EGL configuration. To ensure that all windows are compatible with this configuration, this change modifies the window manager and SurfaceFlinger. The window manager now checks the window's flags and if the window is hardware accelerated, it forces the window's pixel format to be translucent when creating the surface. The window itself is still marked as opaque if we know that the window will be opaque on screen. This keeps existing optimizations in place. Similarly in SurfaceFlinger, a translucent Surface can now be created with the Surface.OPAQUE flag, indicating SurfaceFlinger that the surface does not require blending, despite its RGBA 8888 configuration. Change-Id: Ic747b6b12564ba064412d842117880fcc199eb7c
Diffstat (limited to 'include')
-rw-r--r--include/surfaceflinger/ISurfaceComposer.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/include/surfaceflinger/ISurfaceComposer.h b/include/surfaceflinger/ISurfaceComposer.h
index 6533600..b181781 100644
--- a/include/surfaceflinger/ISurfaceComposer.h
+++ b/include/surfaceflinger/ISurfaceComposer.h
@@ -43,6 +43,7 @@ public:
eSecure = 0x00000080,
eNonPremultiplied = 0x00000100,
ePushBuffers = 0x00000200,
+ eOpaque = 0x00000400,
eFXSurfaceNormal = 0x00000000,
eFXSurfaceBlur = 0x00010000,