summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSteve Kondik <shade@chemlab.org>2013-07-26 16:18:35 -0700
committerSteve Kondik <shade@chemlab.org>2013-07-26 16:18:35 -0700
commitb857867ce5ccffdf419679caa5886016e25e8164 (patch)
treef49015afdc9ede65c9fab2d5221b50823225ed3c
parentf9ab1f64656773988633bf34210df84ba7056730 (diff)
downloadandroid_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.h2
-rw-r--r--services/surfaceflinger/DisplayHardware/HWComposer.cpp4
-rw-r--r--services/surfaceflinger/DisplayHardware/HWComposer.h4
-rw-r--r--services/surfaceflinger/EventThread.h4
-rw-r--r--services/surfaceflinger/SurfaceFlinger.cpp22
-rw-r--r--services/surfaceflinger/SurfaceFlinger.h3
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.
*/