summaryrefslogtreecommitdiffstats
path: root/rfb
diff options
context:
space:
mode:
authorChristian Beier <dontmind@freeshell.org>2017-03-26 14:32:46 +0200
committerChristian Beier <dontmind@freeshell.org>2017-03-26 14:32:46 +0200
commite03b5750f84ce9816d5c6055ba3da34755aff934 (patch)
tree44e23decd21c5caf5fb09f6c286b8e980ee120e5 /rfb
parent0d0a2fc2b5567365b142a77fa961b0c9658b6010 (diff)
parenta01a18df1d44ec875708d5fc9d6c4e0934535974 (diff)
downloadlibtdevnc-e03b5750f84ce9816d5c6055ba3da34755aff934.tar.gz
libtdevnc-e03b5750f84ce9816d5c6055ba3da34755aff934.zip
Merge branch 'circle' of https://github.com/ldmnyblzs/libvncserver into ldmnyblzs-circle
Conflicts: libvncclient/rfbproto.c
Diffstat (limited to 'rfb')
-rw-r--r--rfb/rfbclient.h15
1 files changed, 15 insertions, 0 deletions
diff --git a/rfb/rfbclient.h b/rfb/rfbclient.h
index 9fdb008..505dd9c 100644
--- a/rfb/rfbclient.h
+++ b/rfb/rfbclient.h
@@ -186,6 +186,9 @@ typedef void (*BellProc)(struct _rfbClient* client);
*/
typedef void (*GotCursorShapeProc)(struct _rfbClient* client, int xhot, int yhot, int width, int height, int bytesPerPixel);
typedef void (*GotCopyRectProc)(struct _rfbClient* client, int src_x, int src_y, int w, int h, int dest_x, int dest_y);
+typedef void (*GotFillRectProc)(struct _rfbClient* client, int x, int y, int w, int h, uint32_t colour);
+typedef void (*GotBitmapProc)(struct _rfbClient* client, const uint8_t* buffer, int x, int y, int w, int h);
+typedef rfbBool (*GotJpegProc)(struct _rfbClient* client, const uint8_t* buffer, int length, int x, int y, int w, int h);
typedef rfbBool (*LockWriteToTLSProc)(struct _rfbClient* client);
typedef rfbBool (*UnlockWriteToTLSProc)(struct _rfbClient* client);
@@ -371,6 +374,18 @@ typedef struct _rfbClient {
LockWriteToTLSProc LockWriteToTLS;
UnlockWriteToTLSProc UnlockWriteToTLS;
+ /** Hooks for custom rendering
+ *
+ * VNC rendering boils down to 3 activities:
+ * - GotCopyRect: copy an area of the framebuffer
+ * - GotFillRect: fill an area of the framebuffer with a solid color
+ * - GotBitmap: copy the bitmap in the buffer into the framebuffer
+ * The client application should either set all three of these or none!
+ */
+ GotFillRectProc GotFillRect;
+ GotBitmapProc GotBitmap;
+ /** Hook for custom JPEG decoding and rendering */
+ GotJpegProc GotJpeg;
} rfbClient;
/* cursor.c */