]> source.dussan.org Git - tigervnc.git/commitdiff
LastRect pseudo-encoding documented.
authorConstantin Kaplinsky <const@tightvnc.com>
Sat, 5 May 2007 01:57:04 +0000 (01:57 +0000)
committerConstantin Kaplinsky <const@tightvnc.com>
Sat, 5 May 2007 01:57:04 +0000 (01:57 +0000)
git-svn-id: svn://svn.code.sf.net/p/tigervnc/code/trunk@2297 3789f03b-4d11-0410-bbf8-ca57d06f2519

doc/rfbtight.tex

index 8db1a0cc8bb4d4c0b085745601aa02da4ecd8184..ae8a9563212fe229167e26fd80b7f41128a4eb4e 100644 (file)
@@ -317,7 +317,33 @@ FIXME: Allow zero-size framebuffer?
 \subsection{PointerPos}
 \subsection{CompressLevel}
 \subsection{QualityLevel}
+
 \subsection{LastRect}
+\begin{verbatim}
+Encoding type:     0xFFFFFF20
+Name signature:    "LASTRECT"
+Vendor signature:  "TGHT"
+\end{verbatim}
+
+\typestr{LastRect} enables \typestr{FramebufferUpdate} messages that
+include less rectangles than was specified in the message header. For
+example, VNC server can send a big conter like 0xFFFF as
+\typestr{number-of-rectangles}, then arbitrary number of rectangles and
+pseudo-rectangles (less than 0xFFFF). Finally, it sends
+\typestr{LastRect} pseudo-rectangle which marks the end of current
+\typestr{FramebufferUpdate} message.
+
+\typestr{LastRect} pseudo-encoding is special -- it does not include
+\typestr{x-position}, \typestr{y-position}, \typestr{width} and
+\typestr{height} fields, and is not followed by any other data as
+well. Only 4 bytes is sent in \typestr{LastRect}, while other
+encodings and pseudo-encodings normally send 12 bytes as a rectangle
+header.
+
+To enable this pseudo-encoding, the client specifies
+\typestr{LastRect} in the \typestr{SetEncodings} message. From that
+moment, the server may use \typestr{LastRect} pseudo-encoding in some
+of the framebuffer updates it will send.
 
 % For each message, describe its place in the message sequence.