Eradicate DisplayID.
DisplayDevices are now keyed of the wp<IBinder> the client uses.
DisplayID has now become DisplayType which is just used to identify
physical displays (as opposed to virtual displays such as wifi displays).
Change-Id: I0c5968f2c902dcd699a7e0afacf833ff070c12ea
diff --git a/services/surfaceflinger/DisplayDevice.cpp b/services/surfaceflinger/DisplayDevice.cpp
index 821a329..16e5547 100644
--- a/services/surfaceflinger/DisplayDevice.cpp
+++ b/services/surfaceflinger/DisplayDevice.cpp
@@ -68,12 +68,12 @@
DisplayDevice::DisplayDevice(
const sp<SurfaceFlinger>& flinger,
- int32_t display, int32_t hwcDisplayId,
+ DisplayType type, const wp<IBinder>& displayToken,
const sp<ANativeWindow>& nativeWindow,
const sp<FramebufferSurface>& framebufferSurface,
EGLConfig config)
: mFlinger(flinger),
- mId(display), mHwcDisplayId(hwcDisplayId),
+ mType(type), mHwcDisplayId(-1),
mNativeWindow(nativeWindow),
mFramebufferSurface(framebufferSurface),
mDisplay(EGL_NO_DISPLAY),
@@ -141,7 +141,10 @@
mPageFlipCount = 0;
// external displays are always considered enabled
- mScreenAcquired = mId >= DisplayDevice::DISPLAY_ID_COUNT;
+ mScreenAcquired = (mType >= DisplayDevice::NUM_DISPLAY_TYPES);
+
+ // get an h/w composer ID
+ mHwcDisplayId = mFlinger->allocateHwcDisplayId(mType);
// initialize the display orientation transform.
DisplayDevice::setOrientation(DisplayState::eOrientationDefault);
@@ -210,7 +213,7 @@
}
}
-Vector< sp<LayerBase> > DisplayDevice::getVisibleLayersSortedByZ() const {
+const Vector< sp<LayerBase> >& DisplayDevice::getVisibleLayersSortedByZ() const {
return mVisibleLayersSortedByZ;
}