fix build errors
diff --git a/src/AndroidDesktop.cpp b/src/AndroidDesktop.cpp
index b40b1b4..190ca86 100644
--- a/src/AndroidDesktop.cpp
+++ b/src/AndroidDesktop.cpp
@@ -38,8 +38,6 @@
}
void AndroidDesktop::start(rfb::VNCServer* vs) {
- mMainDpy = SurfaceComposerClient::getBuiltInDisplay(ISurfaceComposer::eDisplayIdMain);
-
mServer = vs;
mPixels = new AndroidPixelBuffer();
@@ -157,7 +155,13 @@
// refresh the display dimensions
status_t AndroidDesktop::updateDisplayInfo() {
- status_t err = SurfaceComposerClient::getDisplayInfo(mMainDpy, &mDisplayInfo);
+ const auto displayToken = SurfaceComposerClient::getInternalDisplayToken();
+ if (displayToken == nullptr) {
+ ALOGE("Failed to get display token\n");
+ return -1;
+ }
+
+ status_t err = SurfaceComposerClient::getDisplayInfo(displayToken, &mDisplayInfo);
if (err != NO_ERROR) {
ALOGE("Failed to get display characteristics\n");
return err;
diff --git a/src/AndroidDesktop.h b/src/AndroidDesktop.h
index f9f82de..1ceecc2 100644
--- a/src/AndroidDesktop.h
+++ b/src/AndroidDesktop.h
@@ -78,7 +78,6 @@
sp<VirtualDisplay> mVirtualDisplay;
// Primary display
- sp<IBinder> mMainDpy;
DisplayInfo mDisplayInfo;
// Virtual input device
diff --git a/src/VirtualDisplay.cpp b/src/VirtualDisplay.cpp
index 8000f8f..7692dc4 100644
--- a/src/VirtualDisplay.cpp
+++ b/src/VirtualDisplay.cpp
@@ -52,12 +52,17 @@
mDpy = SurfaceComposerClient::createDisplay(String8("VNC-VirtualDisplay"), false /*secure*/);
- SurfaceComposerClient::openGlobalTransaction();
- SurfaceComposerClient::setDisplaySurface(mDpy, mProducer);
+ const auto displayToken = SurfaceComposerClient::getInternalDisplayToken();
+ if (displayToken == nullptr) {
+ ALOGE("Failed to get display token\n");
+ return;
+ }
- SurfaceComposerClient::setDisplayProjection(mDpy, 0, mSourceRect, displayRect);
- SurfaceComposerClient::setDisplayLayerStack(mDpy, 0); // default stack
- SurfaceComposerClient::closeGlobalTransaction();
+ SurfaceComposerClient::Transaction t;
+ t.setDisplaySurface(displayToken, mProducer);
+ t.setDisplayProjection(displayToken, 0, mSourceRect, displayRect);
+ t.setDisplayLayerStack(displayToken, 0); // default stack
+ t.apply();
ALOGV("Virtual display (%ux%u [viewport=%ux%u] created", width, height, displayRect.getWidth(),
displayRect.getHeight());