Use PixelBuffer objects as the interface for encoders and decoders
This avoid a lot of unnecessary middle men. This also pushes the
responsibility for pixel format conversion into the encoders and
decoders. The new bufferFromBuffer() is used for direct conversion,
rather than PixelTransformer/TransImageGetter.
diff --git a/vncviewer/PlatformPixelBuffer.cxx b/vncviewer/PlatformPixelBuffer.cxx
index ced0446..5bd50d2 100644
--- a/vncviewer/PlatformPixelBuffer.cxx
+++ b/vncviewer/PlatformPixelBuffer.cxx
@@ -24,3 +24,19 @@
FullFramePixelBuffer(pf, width, height, data, stride)
{
}
+
+void PlatformPixelBuffer::commitBufferRW(const rfb::Rect& r)
+{
+ FullFramePixelBuffer::commitBufferRW(r);
+ damage.assign_union(rfb::Region(r));
+}
+
+rfb::Rect PlatformPixelBuffer::getDamage(void)
+{
+ rfb::Rect r;
+
+ r = damage.get_bounding_rect();
+ damage.clear();
+
+ return r;
+}