diff options
Diffstat (limited to 'services')
-rw-r--r-- | services/surfaceflinger/Android.mk | 4 | ||||
-rw-r--r-- | services/surfaceflinger/DisplayDevice.cpp | 7 |
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); |