diff options
Diffstat (limited to 'libs/gui/SurfaceComposerClient.cpp')
-rw-r--r-- | libs/gui/SurfaceComposerClient.cpp | 23 |
1 files changed, 17 insertions, 6 deletions
diff --git a/libs/gui/SurfaceComposerClient.cpp b/libs/gui/SurfaceComposerClient.cpp index 5db0eae416..11b8ebac81 100644 --- a/libs/gui/SurfaceComposerClient.cpp +++ b/libs/gui/SurfaceComposerClient.cpp @@ -1648,8 +1648,7 @@ SurfaceComposerClient::Transaction& SurfaceComposerClient::Transaction::setApply } SurfaceComposerClient::Transaction& SurfaceComposerClient::Transaction::setStretchEffect( - const sp<SurfaceControl>& sc, float left, float top, float right, float bottom, float vecX, - float vecY, float maxAmount) { + const sp<SurfaceControl>& sc, const StretchEffect& stretchEffect) { layer_state_t* s = getLayerState(sc); if (!s) { mStatus = BAD_INDEX; @@ -1657,10 +1656,22 @@ SurfaceComposerClient::Transaction& SurfaceComposerClient::Transaction::setStret } s->what |= layer_state_t::eStretchChanged; - s->stretchEffect = StretchEffect{.area = {left, top, right, bottom}, - .vectorX = vecX, - .vectorY = vecY, - .maxAmount = maxAmount}; + s->stretchEffect = stretchEffect; + return *this; +} + +SurfaceComposerClient::Transaction& SurfaceComposerClient::Transaction::setBufferCrop( + const sp<SurfaceControl>& sc, const Rect& bufferCrop) { + layer_state_t* s = getLayerState(sc); + if (!s) { + mStatus = BAD_INDEX; + return *this; + } + + s->what |= layer_state_t::eBufferCropChanged; + s->bufferCrop = bufferCrop; + + registerSurfaceControlForCallback(sc); return *this; } |