Proposal for RFB 003.004 (was: Development)

Jens Wagner jwagner "at" hexonet.de
Thu, 03 Aug 2000 02:23:54 +0000


What about the following?

(my native tongue is NOT english)

Proposal for RFB 003.004
same as RFB 003.003, but with the following changes and additions:

- the protocol version is "RFB 003.004\n"
- the colour depth / bits per pixel can also be 4, 2 or 1, with 2, 4 or 8 pixels
per byte.



CLIENT TO SERVER MESSAGES


5.2.8 QueryFeatures

Asks the server for information about a given list of features. Before the
FeatureInformation message client and server should only use the message-types
defined by RFB 003.003 and this one.

--------------+-----------------+--------------------
 No. of bytes | Type    [Value] | Description
--------------+-----------------+--------------------
 1            | CARD8      255  | message-type
 1            | CARD8           | padding
 2            | CARD16          | number-of-features
--------------+-----------------+--------------------

followed by number-of-features repetitions of the following:

----------------+-----------------+----------------
 No. of bytes   | Type    [Value] | Description
----------------+-----------------+----------------
 1              | CARD8           | message-type
 1              |                 | padding
 2              | CARD16          | feature-length
 feature-length | CARD8 array     | feature-string
----------------+-----------------+----------------

The feature which the client is interested in gets defined by feature-string.
This string is case sensitive. Only feature names defined by this proposal are
allowed, in addition to private feature names. Private feature names always start
with "X-" and can be used for testing purposes.
message-type defines the number to be used for all messages related to the
feature.


5.2.9 ScaledFramebufferUpdateRequest

Feature string: "ScaledFramebufferUpdate"

This message is used to request a scaled framebuffer update.

--------------+-----------------+---------------------------
 No. of bytes | Type    [Value] | Description
--------------+-----------------+---------------------------
 1            | CARD8           | message-type
 1            | CARD8           | incremental
 2            | CARD16          | scaled-framebuffer-width
 2            | CARD16          | scaled-framebuffer-height
 2            | CARD16          | x-position
 2            | CARD16          | y-position
 2            | CARD16          | width
 2            | CARD16          | height
--------------+-----------------+---------------------------

message-type must be set to the value defined for "ScaledFramebufferUpdate".
incremental is used as in RFB 003.003.
scaled-framebuffer-width and scaled-framebuffer-height define the scaled
dimesions of the framebuffer. x-position, y-position, width and height define a
rectangle relative to the scaled framebuffer.


5.2.10 EnableZlibCompression

Feature string: "ServerZlib"

Asks the server to activate zlib compression for the complete server->client data
stream.

--------------+-----------------+-------------------
 No. of bytes | Type    [Value] | Description
--------------+-----------------+-------------------
 1            | CARD8           | message-type
 1            |                 | compression-level
--------------+-----------------+-------------------

message-type must be set to the value defined for "ServerZlib".
compression-level is used to init zlib compression.



SERVER TO CLIENT MESSAGES


5.3.5 FeatureInformation

After the server has receipt a QueryFeatures message it should reply with this
message.

--------------+-----------------+--------------------
 No. of bytes | Type    [Value] | Description
--------------+-----------------+--------------------
 1            | CARD8      255  | message-type
 1            |                 | padding
 2            | CARD16          | number-of-features
--------------+-----------------+--------------------

followed by number-of-features repetitions of the following:
number-of-features may be zero to show that no features are supported

----------------+-----------------+----------------
 No. of bytes   | Type    [Value] | Description
----------------+-----------------+----------------
 1              | CARD8           | message-type
 1              |                 | padding
 2              | CARD16          | feature-length
 feature-length | CARD8 array     | feature-string
----------------+-----------------+----------------

The field message-type defines the message number that the feature is bound to,
as given by the client. message-type must be set to 255 for features that are not
supported.


5.3.6 ScaledFramebufferUpdate

Feature string: "ScaledFramebufferUpdate"

This message is used to send a scaled update of the framebuffer.

--------------+-----------------+---------------------------
 No. of bytes | Type    [Value] | Description
--------------+-----------------+---------------------------
 1            | CARD8           | message-type
 1            |                 | padding
 2            | CARD16          | scaled-framebuffer-width
 2            | CARD16          | scaled-framebuffer-height
 2            | CARD16          | number-of-rectangles
--------------+-----------------+---------------------------

message-type must be set to the value defined for "ScaledFramebufferUpdate".
scaled-framebuffer-width and scaled-framebuffer-width define the scaled
dimensions of the framebuffer as requested by the ScaledFramebufferUpdateRequest
message. The rectangles following have the same format as defined in 5.3.1, but
they use dimensions relative to the scaled framebuffer.


5.3.7 SetFramebufferSize

Feature string: "FramebufferResize"

This message sends a new framebuffer size to the client.

--------------+-----------------+--------------------
 No. of bytes | Type    [Value] | Description
--------------+-----------------+--------------------
 1            | CARD8           | message-type
 1            |                 | padding
 2            | CARD16          | framebuffer-width
 2            | CARD16          | framebuffer-height
--------------+-----------------+--------------------

message-type must be set to the value defined for "FramebufferResize".
The new size is defined by framebuffer-width and framebuffer-height.


5.3.8 ZlibCompressionEnabled

Feature string: "ServerZlib"

After this message all data send to the client will be zlib compressed.

--------------+-----------------+-------------------
 No. of bytes | Type    [Value] | Description
--------------+-----------------+-------------------
 1            | CARD8           | message-type
--------------+-----------------+-------------------

message-type must be set to the value defined for "ServerZlib".



That's it!
This proposal does not yet include any new encodings.
Any suggestions (I hope so)?

- jens
---------------------------------------------------------------------
To unsubscribe, send a message with the line: unsubscribe vnc-list
to majordomo "at" uk.research.att.com
See also: http://www.uk.research.att.com/vnc/intouch.html
---------------------------------------------------------------------