summaryrefslogtreecommitdiffstats
path: root/services
diff options
context:
space:
mode:
Diffstat (limited to 'services')
-rw-r--r--services/surfaceflinger/Android.mk4
-rw-r--r--services/surfaceflinger/DisplayDevice.cpp7
2 files changed, 11 insertions, 0 deletions
diff --git a/services/surfaceflinger/Android.mk b/services/surfaceflinger/Android.mk
index 5a57697..69c4e21 100644
--- a/services/surfaceflinger/Android.mk
+++ b/services/surfaceflinger/Android.mk
@@ -38,6 +38,10 @@ ifeq ($(TARGET_DISABLE_TRIPLE_BUFFERING),true)
LOCAL_CFLAGS += -DTARGET_DISABLE_TRIPLE_BUFFERING
endif
+ifeq ($(BOARD_EGL_NEEDS_LEGACY_FB),true)
+ LOCAL_CFLAGS += -DBOARD_EGL_NEEDS_LEGACY_FB
+endif
+
ifneq ($(NUM_FRAMEBUFFER_SURFACE_BUFFERS),)
LOCAL_CFLAGS += -DNUM_FRAMEBUFFER_SURFACE_BUFFERS=$(NUM_FRAMEBUFFER_SURFACE_BUFFERS)
endif
diff --git a/services/surfaceflinger/DisplayDevice.cpp b/services/surfaceflinger/DisplayDevice.cpp
index c56645f..395402d 100644
--- a/services/surfaceflinger/DisplayDevice.cpp
+++ b/services/surfaceflinger/DisplayDevice.cpp
@@ -28,6 +28,9 @@
#include <ui/PixelFormat.h>
#include <gui/SurfaceTextureClient.h>
+#ifdef BOARD_EGL_NEEDS_LEGACY_FB
+#include <ui/FramebufferNativeWindow.h>
+#endif
#include <GLES/gl.h>
#include <EGL/egl.h>
@@ -123,7 +126,11 @@ EGLSurface DisplayDevice::getEGLSurface() const {
void DisplayDevice::init(EGLConfig config)
{
+#ifndef BOARD_EGL_NEEDS_LEGACY_FB
ANativeWindow* const window = mNativeWindow.get();
+#else
+ ANativeWindow* const window = new FramebufferNativeWindow();
+#endif
int format;
window->query(window, NATIVE_WINDOW_FORMAT, &format);