// complicated as compared to the original VNC4.
writer()->setupCurrentEncoder();
int nRects = (ui.copied.numRects() +
- /* FIXME: Sending video area is not yet enabled.
(ui.video_area.is_empty() ? 0 : 1) +
- */
(drawRenderedCursor ? 1 : 0));
std::vector<Rect> rects;
std::vector<Rect>::const_iterator i;
}
writer()->writeFramebufferUpdateStart(nRects);
+ if (!ui.video_area.is_empty())
+ writer()->writeVideoRect(server->getPixelBuffer(), ui.video_area);
Region updatedRegion;
writer()->writeRects(ui, &image_getter, &updatedRegion);
updates.subtract(updatedRegion);
// protocol messages being sent, or clients being disconnected.
virtual void setPixelBuffer(PixelBuffer* pb) = 0;
+ // getPixelBuffer() returns a pointer to the PixelBuffer object.
+ virtual PixelBuffer* getPixelBuffer() const = 0;
+
// setColourMapEntries() tells the server that some entries in the colour
// map have changed. The server will retrieve them via the PixelBuffer's
// ColourMap object. This may result in protocol messages being sent.
// Methods overridden from VNCServer
virtual void setPixelBuffer(PixelBuffer* pb);
+ virtual PixelBuffer* getPixelBuffer() const { return pb; }
virtual void setColourMapEntries(int firstColour=0, int nColours=0);
virtual void serverCutText(const char* str, int len);
virtual void add_changed(const Region ®ion);