vnc: Use CpuConsumer

There's no need to use a GLConsumer unless we really want to draw
on the surface or send it to a hardware encoder. Get rid of all
this stuff and just use CpuConsumer.
diff --git a/src/VNCFlinger.cpp b/src/VNCFlinger.cpp
index 70f741a..efd6cbc 100644
--- a/src/VNCFlinger.cpp
+++ b/src/VNCFlinger.cpp
@@ -14,6 +14,8 @@
 
 using namespace android;
 
+Mutex VNCFlinger::sUpdateMutex;
+
 status_t VNCFlinger::start() {
     Mutex::Autolock _l(mMutex);
 
@@ -74,19 +76,20 @@
     mVNCScreen->newClientHook = (rfbNewClientHookPtr) VNCFlinger::onNewClient;
     mVNCScreen->kbdAddEvent = InputDevice::keyEvent;
     mVNCScreen->ptrAddEvent = InputDevice::pointerEvent;
+    mVNCScreen->displayHook = (rfbDisplayHookPtr) VNCFlinger::onFrameStart;
+    mVNCScreen->displayFinishedHook = (rfbDisplayFinishedHookPtr) VNCFlinger::onFrameDone;
     mVNCScreen->serverFormat.trueColour = true;
     mVNCScreen->serverFormat.bitsPerPixel = 32;
     mVNCScreen->handleEventsEagerly = true;
-    mVNCScreen->deferUpdateTime = 16;
+    mVNCScreen->deferUpdateTime = 0;
     mVNCScreen->screenData = this;
-
     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);
+    mVirtualDisplay = new VirtualDisplay(mVNCScreen, &sUpdateMutex);
 
     return err;
 }
@@ -147,6 +150,23 @@
     return RFB_CLIENT_ACCEPT;
 }
 
+void VNCFlinger::onFrameStart(rfbClientPtr /* cl */) {
+    sUpdateMutex.lock();
+    ALOGV("frame start");
+}
+
+void VNCFlinger::onFrameDone(rfbClientPtr /* cl */, int status) {
+    sUpdateMutex.unlock();
+    ALOGV("frame done! %d", status);
+}
+
+void VNCFlinger::markFrame(void* frame, size_t stride) {
+    Mutex::Autolock _l(sUpdateMutex);
+    mVNCScreen->frameBuffer = (char *)frame;
+    mVNCScreen->paddedWidthInBytes = stride * 4;
+    rfbMarkRectAsModified(mVNCScreen, 0, 0, mWidth, mHeight);
+}
+
 void VNCFlinger::rfbLogger(const char *format, ...) {
     va_list args;
     char buf[256];