diff options
author | Steve Kondik <shade@chemlab.org> | 2013-07-26 16:18:35 -0700 |
---|---|---|
committer | Steve Kondik <shade@chemlab.org> | 2013-07-26 16:18:35 -0700 |
commit | b857867ce5ccffdf419679caa5886016e25e8164 (patch) | |
tree | f49015afdc9ede65c9fab2d5221b50823225ed3c | |
parent | f9ab1f64656773988633bf34210df84ba7056730 (diff) | |
download | android_frameworks_native-next-wip.tar.gz android_frameworks_native-next-wip.tar.bz2 android_frameworks_native-next-wip.zip |
surfaceflinger: Add QCOM_HARDWARE ifdefsnext-wip
Change-Id: I37e6600e316f9fa5dbf94db2c70faf602a70a85a
-rw-r--r-- | services/surfaceflinger/DisplayDevice.h | 2 | ||||
-rw-r--r-- | services/surfaceflinger/DisplayHardware/HWComposer.cpp | 4 | ||||
-rw-r--r-- | services/surfaceflinger/DisplayHardware/HWComposer.h | 4 | ||||
-rw-r--r-- | services/surfaceflinger/EventThread.h | 4 | ||||
-rw-r--r-- | services/surfaceflinger/SurfaceFlinger.cpp | 22 | ||||
-rw-r--r-- | services/surfaceflinger/SurfaceFlinger.h | 3 |
6 files changed, 33 insertions, 6 deletions
diff --git a/services/surfaceflinger/DisplayDevice.h b/services/surfaceflinger/DisplayDevice.h index 4f72b417c..9b2d2cbcb 100644 --- a/services/surfaceflinger/DisplayDevice.h +++ b/services/surfaceflinger/DisplayDevice.h @@ -56,7 +56,9 @@ public: DISPLAY_ID_INVALID = -1, DISPLAY_PRIMARY = HWC_DISPLAY_PRIMARY, DISPLAY_EXTERNAL = HWC_DISPLAY_EXTERNAL, +#ifdef QCOM_HARDWARE DISPLAY_VIRTUAL = HWC_DISPLAY_VIRTUAL, +#endif NUM_DISPLAY_TYPES = HWC_NUM_DISPLAY_TYPES }; diff --git a/services/surfaceflinger/DisplayHardware/HWComposer.cpp b/services/surfaceflinger/DisplayHardware/HWComposer.cpp index 631b0b4f6..bc6b5b95b 100644 --- a/services/surfaceflinger/DisplayHardware/HWComposer.cpp +++ b/services/surfaceflinger/DisplayHardware/HWComposer.cpp @@ -295,7 +295,11 @@ HWComposer::HWComposer( mNumDisplays = MAX_DISPLAYS; } else if (hwcHasApiVersion(mHwc, HWC_DEVICE_API_VERSION_1_1)) { // 1.1 adds support for multiple displays +#ifdef QCOM_HARDWARE mNumDisplays = MAX_DISPLAYS; +#else + mNumDisplays = NUM_PHYSICAL_DISPLAYS; +#endif } else { mNumDisplays = 1; } diff --git a/services/surfaceflinger/DisplayHardware/HWComposer.h b/services/surfaceflinger/DisplayHardware/HWComposer.h index e1db7d904..ae538b13d 100644 --- a/services/surfaceflinger/DisplayHardware/HWComposer.h +++ b/services/surfaceflinger/DisplayHardware/HWComposer.h @@ -63,7 +63,11 @@ public: }; enum { +#ifdef QCOM_HARDWARE MAX_DISPLAYS = HWC_NUM_DISPLAY_TYPES +#else + MAX_DISPLAYS = HWC_NUM_DISPLAY_TYPES + 1 +#endif }; HWComposer( diff --git a/services/surfaceflinger/EventThread.h b/services/surfaceflinger/EventThread.h index ed1d8872d..ccffe8b64 100644 --- a/services/surfaceflinger/EventThread.h +++ b/services/surfaceflinger/EventThread.h @@ -104,7 +104,11 @@ private: // protected by mLock SortedVector< wp<Connection> > mDisplayEventConnections; Vector< DisplayEventReceiver::Event > mPendingEvents; +#ifdef QCOM_HARDWARE DisplayEventReceiver::Event mVSyncEvent[HWC_NUM_DISPLAY_TYPES]; +#else + DisplayEventReceiver::Event mVSyncEvent[HWC_DISPLAY_TYPES_SUPPORTED]; +#endif bool mUseSoftwareVSync; // for debugging diff --git a/services/surfaceflinger/SurfaceFlinger.cpp b/services/surfaceflinger/SurfaceFlinger.cpp index 8ee77cc77..71a2b3b85 100644 --- a/services/surfaceflinger/SurfaceFlinger.cpp +++ b/services/surfaceflinger/SurfaceFlinger.cpp @@ -922,12 +922,18 @@ void SurfaceFlinger::rebuildLayerStacks() { for (size_t i=0 ; i<count ; i++) { const sp<Layer>& layer(currentLayers[i]); const Layer::State& s(layer->drawingState()); - Region drawRegion(tr.transform( - layer->visibleNonTransparentRegion)); - drawRegion.andSelf(bounds); - if (!drawRegion.isEmpty()) { - layersSortedByZ.add(layer); +#ifndef QCOM_HARDWARE + if (s.layerStack == hw->getLayerStack()) { +#endif + Region drawRegion(tr.transform( + layer->visibleNonTransparentRegion)); + drawRegion.andSelf(bounds); + if (!drawRegion.isEmpty()) { + layersSortedByZ.add(layer); + } +#ifndef QCOM_HARDWARE } +#endif } } hw->setVisibleLayersSortedByZ(layersSortedByZ); @@ -1079,6 +1085,7 @@ void SurfaceFlinger::handleTransaction(uint32_t transactionFlags) // here the transaction has been committed } +#ifdef QCOM_HARDWARE void SurfaceFlinger::setVirtualDisplayData( int32_t hwcDisplayId, const sp<IGraphicBufferProducer>& sink) @@ -1098,6 +1105,7 @@ void SurfaceFlinger::setVirtualDisplayData( mHwc->setVirtualDisplayProperties(hwcDisplayId, w, h, format); } +#endif void SurfaceFlinger::handleTransactionLocked(uint32_t transactionFlags) { @@ -1217,6 +1225,7 @@ void SurfaceFlinger::handleTransactionLocked(uint32_t transactionFlags) *mHwc, hwcDisplayId, state.surface, state.displayName); } else { +#ifdef QCOM_HARDWARE //Read virtual display properties and create a //rendering surface for it inorder to be handled //by hwc. @@ -1224,6 +1233,7 @@ void SurfaceFlinger::handleTransactionLocked(uint32_t transactionFlags) state.surface); dispSurface = new FramebufferSurface(*mHwc, state.type); +#endif } } } else { @@ -1427,11 +1437,13 @@ void SurfaceFlinger::computeVisibleRegions(size_t dpy, // Override layers created using presentation class by the layers having // ext_only flag enabled if(s.layerStack != layerStack && !bIgnoreLayers) { +#ifdef QCOM_HARDWARE // set the visible region as empty since we have removed the // layerstack check in rebuildLayerStack() function. Region visibleNonTransRegion; visibleNonTransRegion.set(Rect(0,0)); layer->setVisibleNonTransparentRegion(visibleNonTransRegion); +#endif continue; } /* diff --git a/services/surfaceflinger/SurfaceFlinger.h b/services/surfaceflinger/SurfaceFlinger.h index 8efe20841..7f1f4aad4 100644 --- a/services/surfaceflinger/SurfaceFlinger.h +++ b/services/surfaceflinger/SurfaceFlinger.h @@ -236,10 +236,11 @@ private: void handleTransaction(uint32_t transactionFlags); void handleTransactionLocked(uint32_t transactionFlags); +#ifdef QCOM_HARDWARE // Read virtual display properties void setVirtualDisplayData( int32_t hwcDisplayId, const sp<IGraphicBufferProducer>& sink); - +#endif /* handlePageFilp: this is were we latch a new buffer * if available and compute the dirty region. */ |