New cursor instruction format (allowing buffering of cursors).

This commit is contained in:
Michael Jumper 2012-02-15 10:04:31 -08:00
parent a17cd6202b
commit 124460b5d9
2 changed files with 18 additions and 5 deletions

View File

@ -333,10 +333,15 @@ int guac_protocol_send_png(guac_socket* socket, guac_composite_mode mode,
* @param socket The guac_socket connection to use. * @param socket The guac_socket connection to use.
* @param x The X coordinate of the cursor hotspot. * @param x The X coordinate of the cursor hotspot.
* @param y The Y coordinate of the cursor hotspot. * @param y The Y coordinate of the cursor hotspot.
* @param surface A cairo surface containing the image data to send. * @param srcl The source layer.
* @param srcx The X coordinate of the source rectangle.
* @param srcy The Y coordinate of the source rectangle.
* @param w The width of the source rectangle.
* @param h The height of the source rectangle.
* @return Zero on success, non-zero on error. * @return Zero on success, non-zero on error.
*/ */
int guac_protocol_send_cursor(guac_socket* socket, int x, int y, cairo_surface_t* surface); int guac_protocol_send_cursor(guac_socket* socket, int x, int y,
const guac_layer* srcl, int srcx, int srcy, int w, int h);
/** /**
* Returns whether new instruction data is available on the given guac_socket * Returns whether new instruction data is available on the given guac_socket

View File

@ -336,15 +336,23 @@ int guac_protocol_send_png(guac_socket* socket, guac_composite_mode mode,
} }
int guac_protocol_send_cursor(guac_socket* socket, int x, int y, cairo_surface_t* surface) { int guac_protocol_send_cursor(guac_socket* socket, int x, int y,
const guac_layer* srcl, int srcx, int srcy, int w, int h) {
return return
guac_socket_write_string(socket, "6.cursor,") guac_socket_write_string(socket, "6.cursor,")
|| __guac_socket_write_length_int(socket, x) || __guac_socket_write_length_int(socket, x)
|| guac_socket_write_string(socket, ",") || guac_socket_write_string(socket, ",")
|| __guac_socket_write_length_int(socket, y) || __guac_socket_write_length_int(socket, y)
|| guac_socket_write_string(socket, ",") || guac_socket_write_string(socket, ",")
|| __guac_socket_write_length_png(socket, surface) || __guac_socket_write_length_int(socket, srcl->index)
|| guac_socket_write_string(socket, ",")
|| __guac_socket_write_length_int(socket, srcx)
|| guac_socket_write_string(socket, ",")
|| __guac_socket_write_length_int(socket, srcy)
|| guac_socket_write_string(socket, ",")
|| __guac_socket_write_length_int(socket, w)
|| guac_socket_write_string(socket, ",")
|| __guac_socket_write_length_int(socket, h)
|| guac_socket_write_string(socket, ";"); || guac_socket_write_string(socket, ";");
} }