Testing updates pushed from the GL thread
diff --git a/src/VNCFlinger.cpp b/src/VNCFlinger.cpp
index a55b868..0ca2784 100644
--- a/src/VNCFlinger.cpp
+++ b/src/VNCFlinger.cpp
@@ -57,10 +57,6 @@
sQueue->addListener(this);
- mVirtualDisplay = new VirtualDisplay();
-
- mVNCBuf = new uint8_t[mWidth * mHeight * 4];
-
rfbLog = VNCFlinger::rfbLogger;
rfbErr = VNCFlinger::rfbLogger;
@@ -71,8 +67,9 @@
return NO_INIT;
}
+ mVNCBuf = new uint8_t[mWidth * mHeight * 4];
+ mVNCScreen->frameBuffer = (char *) mVNCBuf;
mVNCScreen->desktopName = "VNCFlinger";
- mVNCScreen->frameBuffer = (char *)mVNCBuf;
mVNCScreen->alwaysShared = TRUE;
mVNCScreen->httpDir = NULL;
mVNCScreen->port = VNC_PORT;
@@ -80,13 +77,16 @@
mVNCScreen->serverFormat.trueColour = true;
mVNCScreen->serverFormat.bitsPerPixel = 32;
mVNCScreen->handleEventsEagerly = true;
- mVNCScreen->deferUpdateTime = 5;
+ mVNCScreen->deferUpdateTime = 16;
rfbInitServer(mVNCScreen);
/* Mark as dirty since we haven't sent any updates at all yet. */
rfbMarkRectAsModified(mVNCScreen, 0, 0, mWidth, mHeight);
+
+ mVirtualDisplay = new VirtualDisplay(mVNCScreen);
+
return err;
}
@@ -129,11 +129,21 @@
ALOGI("Client disconnected (%zu)", mClientCount);
break;
+ /*
case EVENT_BUFFER_READY:
+ int64_t startWhenNsec, endWhenNsec;
+ startWhenNsec = systemTime(CLOCK_MONOTONIC);
+ if (event.mData == NULL) {
+ break;
+ }
+ //memcpy(mVNCBuf, (uint8_t *) event.mData, mWidth * mHeight * 4);
//mVNCScreen->frameBuffer = (char *) event.mData;
- memcpy(mVNCBuf, (uint8_t *) event.mData, mWidth * mHeight * 4);
rfbMarkRectAsModified(mVNCScreen, 0, 0, mWidth, mHeight);
+ endWhenNsec = systemTime(CLOCK_MONOTONIC);
+ ALOGV("got pixels (mark=%.3fms)",
+ (endWhenNsec - startWhenNsec) / 1000000.0);
break;
+ */
default:
ALOGE("Unhandled event: %d", event.mId);