From 80ee966054b748b5f4f8e2a257b46052a451db0e Mon Sep 17 00:00:00 2001 From: maxwen <max.weninger@gmail.com> Date: Tue, 5 Oct 2021 21:08:06 +0200 Subject: [PATCH] update for android S Change-Id: I02763a134f592280652d4cd7eb2eea630d01ee14 --- src/AndroidDesktop.cpp | 16 ++++------------ src/AndroidDesktop.h | 6 ++---- src/AndroidPixelBuffer.cpp | 8 +++----- src/AndroidPixelBuffer.h | 5 ++--- src/VirtualDisplay.cpp | 6 +++--- src/VirtualDisplay.h | 5 ++--- 6 files changed, 16 insertions(+), 30 deletions(-) diff --git a/src/AndroidDesktop.cpp b/src/AndroidDesktop.cpp index 253eefe..0234d0a 100644 --- a/src/AndroidDesktop.cpp +++ b/src/AndroidDesktop.cpp @@ -7,8 +7,6 @@ #include <gui/ISurfaceComposer.h> #include <gui/SurfaceComposerClient.h> -#include <ui/DisplayInfo.h> - #include <rfb/PixelFormat.h> #include <rfb/Rect.h> #include <rfb/ScreenSet.h> @@ -163,18 +161,12 @@ status_t AndroidDesktop::updateDisplayInfo() { return -1; } - status_t err = SurfaceComposerClient::getDisplayInfo(displayToken, &mDisplayInfo); - if (err != NO_ERROR) { - ALOGE("Failed to get display characteristics\n"); - return err; - } - - err = SurfaceComposerClient::getActiveDisplayConfig(displayToken, &mDisplayConfig); + status_t err = SurfaceComposerClient::getActiveDisplayMode(displayToken, &mDisplayMode); if (err != NO_ERROR) { ALOGE("Failed to get display configuration\n"); return err; } - ALOGV("updateDisplayInfo: [%d:%d]", mDisplayConfig.resolution.width, mDisplayConfig.resolution.height); + ALOGV("updateDisplayInfo: [%d:%d]", mDisplayMode.resolution.width, mDisplayMode.resolution.height); err = SurfaceComposerClient::getDisplayState(displayToken, &mDisplayState); if (err != NO_ERROR) { @@ -182,7 +174,7 @@ status_t AndroidDesktop::updateDisplayInfo() { return err; } - mPixels->setDisplayInfo(&mDisplayConfig, &mDisplayState); + mPixels->setDisplayInfo(&mDisplayMode, &mDisplayState); return NO_ERROR; } @@ -199,7 +191,7 @@ void AndroidDesktop::onBufferDimensionsChanged(uint32_t width, uint32_t height) mDisplayRect.getHeight(), width, height); mVirtualDisplay.clear(); - mVirtualDisplay = new VirtualDisplay(&mDisplayConfig, &mDisplayState, + mVirtualDisplay = new VirtualDisplay(&mDisplayMode, &mDisplayState, mPixels->width(), mPixels->height(), this); mDisplayRect = mVirtualDisplay->getDisplayRect(); diff --git a/src/AndroidDesktop.h b/src/AndroidDesktop.h index 993f466..41a8543 100644 --- a/src/AndroidDesktop.h +++ b/src/AndroidDesktop.h @@ -10,8 +10,7 @@ #include <gui/CpuConsumer.h> -#include <ui/DisplayInfo.h> -#include <ui/DisplayConfig.h> +#include <ui/DisplayMode.h> #include <ui/DisplayState.h> #include <rfb/PixelBuffer.h> @@ -80,8 +79,7 @@ class AndroidDesktop : public rfb::SDesktop, sp<VirtualDisplay> mVirtualDisplay; // Primary display - DisplayInfo mDisplayInfo; - DisplayConfig mDisplayConfig = {}; + ui::DisplayMode mDisplayMode = {}; ui::DisplayState mDisplayState = {}; // Virtual input device diff --git a/src/AndroidPixelBuffer.cpp b/src/AndroidPixelBuffer.cpp index b6ab0cb..ba7349a 100644 --- a/src/AndroidPixelBuffer.cpp +++ b/src/AndroidPixelBuffer.cpp @@ -18,8 +18,6 @@ #define LOG_TAG "VNCFlinger:AndroidPixelBuffer" #include <utils/Log.h> -#include <ui/DisplayInfo.h> - #include "AndroidPixelBuffer.h" using namespace vncflinger; @@ -98,12 +96,12 @@ void AndroidPixelBuffer::setWindowSize(uint32_t width, uint32_t height) { } } -void AndroidPixelBuffer::setDisplayInfo(DisplayConfig* config, ui::DisplayState* state) { +void AndroidPixelBuffer::setDisplayInfo(ui::DisplayMode* mode, ui::DisplayState* state) { bool rotated = isDisplayRotated(state->orientation); setBufferRotation(rotated); - uint32_t w = rotated ? config->resolution.height : config->resolution.width; - uint32_t h = rotated ? config->resolution.width : config->resolution.height; + uint32_t w = rotated ? mode->resolution.height : mode->resolution.width; + uint32_t h = rotated ? mode->resolution.width : mode->resolution.height; if (w != mSourceWidth || h != mSourceHeight) { ALOGV("Display dimensions changed: old=(%dx%d) new=(%dx%d)", mSourceWidth, mSourceHeight, w, diff --git a/src/AndroidPixelBuffer.h b/src/AndroidPixelBuffer.h index 174665f..5d06d8e 100644 --- a/src/AndroidPixelBuffer.h +++ b/src/AndroidPixelBuffer.h @@ -21,8 +21,7 @@ #include <utils/Mutex.h> #include <utils/RefBase.h> -#include <ui/DisplayConfig.h> -#include <ui/DisplayInfo.h> +#include <ui/DisplayMode.h> #include <ui/DisplayState.h> #include <ui/Rect.h> @@ -37,7 +36,7 @@ class AndroidPixelBuffer : public RefBase, public rfb::ManagedPixelBuffer { public: AndroidPixelBuffer(); - virtual void setDisplayInfo(DisplayConfig* config, ui::DisplayState* state); + virtual void setDisplayInfo(ui::DisplayMode* mode, ui::DisplayState* state); virtual void setWindowSize(uint32_t width, uint32_t height); diff --git a/src/VirtualDisplay.cpp b/src/VirtualDisplay.cpp index 1f616d1..3122ca8 100644 --- a/src/VirtualDisplay.cpp +++ b/src/VirtualDisplay.cpp @@ -27,16 +27,16 @@ using namespace vncflinger; -VirtualDisplay::VirtualDisplay(DisplayConfig* config, ui::DisplayState* state, +VirtualDisplay::VirtualDisplay(ui::DisplayMode* mode, ui::DisplayState* state, uint32_t width, uint32_t height, sp<CpuConsumer::FrameAvailableListener> listener) { mWidth = width; mHeight = height; if (state->orientation == ui::ROTATION_0 || state->orientation == ui::ROTATION_180) { - mSourceRect = Rect(config->resolution.width, config->resolution.height); + mSourceRect = Rect(mode->resolution.width, mode->resolution.height); } else { - mSourceRect = Rect(config->resolution.height, config->resolution.width); + mSourceRect = Rect(mode->resolution.height, mode->resolution.width); } Rect displayRect = getDisplayRect(); diff --git a/src/VirtualDisplay.h b/src/VirtualDisplay.h index cd2356e..55b2166 100644 --- a/src/VirtualDisplay.h +++ b/src/VirtualDisplay.h @@ -23,8 +23,7 @@ #include <gui/CpuConsumer.h> #include <gui/IGraphicBufferProducer.h> -#include <ui/DisplayConfig.h> -#include <ui/DisplayInfo.h> +#include <ui/DisplayMode.h> #include <ui/DisplayState.h> #include <ui/Rect.h> @@ -34,7 +33,7 @@ namespace vncflinger { class VirtualDisplay : public RefBase { public: - VirtualDisplay(DisplayConfig *config, ui::DisplayState* state, + VirtualDisplay(ui::DisplayMode *mode, ui::DisplayState* state, uint32_t width, uint32_t height, sp<CpuConsumer::FrameAvailableListener> listener); -- GitLab