summaryrefslogtreecommitdiff
path: root/native/android/surface_control.cpp
diff options
context:
space:
mode:
authorScott Lobdell <slobdell@google.com>2021-04-10 00:27:34 +0000
committerGerrit Code Review <noreply-gerritcodereview@google.com>2021-04-10 00:27:34 +0000
commit01da99e3e562d93c902419316b2f6aa464777e16 (patch)
tree2fe6d242f8218ab669e2a98f757a85005ff88088 /native/android/surface_control.cpp
parent80bf29781b44a4c22692a3a1a1e60a371471c25a (diff)
parent6560a5b465795d6922ccd0c83693fa04be2910a6 (diff)
Merge changes from topic "SP1A.210407.002" into s-keystone-qcom-dev
* changes: Adapt to new ranking logic from upstream. Revert "Initial data pipeline for Smartspace media recommendations data in media carousel." Merge SP1A.210407.002
Diffstat (limited to 'native/android/surface_control.cpp')
-rw-r--r--native/android/surface_control.cpp33
1 files changed, 24 insertions, 9 deletions
diff --git a/native/android/surface_control.cpp b/native/android/surface_control.cpp
index 195fd5e60295..e0f637959cfb 100644
--- a/native/android/surface_control.cpp
+++ b/native/android/surface_control.cpp
@@ -634,24 +634,39 @@ void ASurfaceTransaction_setColor(ASurfaceTransaction* aSurfaceTransaction,
color.g = g;
color.b = b;
- transaction->setBackgroundColor(surfaceControl, color, alpha, static_cast<ui::Dataspace>(dataspace));
+ transaction->setBackgroundColor(surfaceControl, color, alpha,
+ static_cast<ui::Dataspace>(dataspace));
}
void ASurfaceTransaction_setFrameRate(ASurfaceTransaction* aSurfaceTransaction,
ASurfaceControl* aSurfaceControl, float frameRate,
int8_t compatibility) {
- ASurfaceTransaction_setFrameRateWithSeamlessness(aSurfaceTransaction, aSurfaceControl,
- frameRate, compatibility,
- /*shouldBeSeamless*/ true);
+ ASurfaceTransaction_setFrameRateWithChangeStrategy(
+ aSurfaceTransaction, aSurfaceControl, frameRate, compatibility,
+ ANATIVEWINDOW_CHANGE_FRAME_RATE_ONLY_IF_SEAMLESS);
}
-void ASurfaceTransaction_setFrameRateWithSeamlessness(ASurfaceTransaction* aSurfaceTransaction,
- ASurfaceControl* aSurfaceControl,
- float frameRate, int8_t compatibility,
- bool shouldBeSeamless) {
+void ASurfaceTransaction_setFrameRateWithChangeStrategy(ASurfaceTransaction* aSurfaceTransaction,
+ ASurfaceControl* aSurfaceControl,
+ float frameRate, int8_t compatibility,
+ int8_t changeFrameRateStrategy) {
CHECK_NOT_NULL(aSurfaceTransaction);
CHECK_NOT_NULL(aSurfaceControl);
Transaction* transaction = ASurfaceTransaction_to_Transaction(aSurfaceTransaction);
sp<SurfaceControl> surfaceControl = ASurfaceControl_to_SurfaceControl(aSurfaceControl);
- transaction->setFrameRate(surfaceControl, frameRate, compatibility, shouldBeSeamless);
+ transaction->setFrameRate(surfaceControl, frameRate, compatibility, changeFrameRateStrategy);
+}
+
+void ASurfaceTransaction_setEnableBackPressure(ASurfaceTransaction* aSurfaceTransaction,
+ ASurfaceControl* aSurfaceControl,
+ bool enableBackpressure) {
+ CHECK_NOT_NULL(aSurfaceControl);
+ CHECK_NOT_NULL(aSurfaceTransaction);
+
+ sp<SurfaceControl> surfaceControl = ASurfaceControl_to_SurfaceControl(aSurfaceControl);
+ Transaction* transaction = ASurfaceTransaction_to_Transaction(aSurfaceTransaction);
+
+ const uint32_t flags = enableBackpressure ?
+ layer_state_t::eEnableBackpressure : 0;
+ transaction->setFlags(surfaceControl, flags, layer_state_t::eEnableBackpressure);
}