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.h b/vncviewer/PlatformPixelBuffer.h
index 03842ac..21b93be 100644
--- a/vncviewer/PlatformPixelBuffer.h
+++ b/vncviewer/PlatformPixelBuffer.h
@@ -20,14 +20,20 @@
#define __PLATFORMPIXELBUFFER_H__
#include <rfb/PixelBuffer.h>
+#include <rfb/Region.h>
class PlatformPixelBuffer: public rfb::FullFramePixelBuffer {
public:
PlatformPixelBuffer(const rfb::PixelFormat& pf, int width, int height,
rdr::U8* data, int stride);
- virtual void draw(int src_x, int src_y, int x, int y, int w, int h) = 0;
+ virtual void commitBufferRW(const rfb::Rect& r);
+ virtual void draw(int src_x, int src_y, int x, int y, int w, int h) = 0;
+ rfb::Rect getDamage(void);
+
+protected:
+ rfb::Region damage;
};
#endif