GUAC-1389: Document graphical functions and handlers.
This commit is contained in:
parent
880553bf3e
commit
c3584c8d04
@ -43,6 +43,7 @@
|
|||||||
|
|
||||||
#include <stdarg.h>
|
#include <stdarg.h>
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
|
#include <stdint.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <syslog.h>
|
#include <syslog.h>
|
||||||
|
|
||||||
@ -85,15 +86,15 @@ void guac_vnc_cursor(rfbClient* client, int x, int y, int w, int h, int bpp) {
|
|||||||
/* Read current pixel value */
|
/* Read current pixel value */
|
||||||
switch (bpp) {
|
switch (bpp) {
|
||||||
case 4:
|
case 4:
|
||||||
v = *((unsigned int*) fb_current);
|
v = *((uint32_t*) fb_current);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 2:
|
case 2:
|
||||||
v = *((unsigned short*) fb_current);
|
v = *((uint16_t*) fb_current);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
v = *((unsigned char*) fb_current);
|
v = *((uint8_t*) fb_current);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Translate mask to alpha */
|
/* Translate mask to alpha */
|
||||||
|
@ -20,14 +20,41 @@
|
|||||||
* THE SOFTWARE.
|
* THE SOFTWARE.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef GUAC_DISPLAY_CURSOR_H
|
#ifndef GUAC_VNC_CURSOR_H
|
||||||
#define GUAC_DISPLAY_CURSOR_H
|
#define GUAC_VNC_CURSOR_H
|
||||||
|
|
||||||
#include "config.h"
|
#include "config.h"
|
||||||
|
|
||||||
#include <rfb/rfbclient.h>
|
#include <rfb/rfbclient.h>
|
||||||
#include <rfb/rfbproto.h>
|
#include <rfb/rfbproto.h>
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Callback invoked by libVNCServer when it receives a new cursor image from
|
||||||
|
* the VNC server. The cursor image itself will be split across
|
||||||
|
* client->rcSource and client->rcMask, where rcSource is an image buffer of
|
||||||
|
* the format natively used by the current VNC connection, and rcMask is an
|
||||||
|
* array if bitmasks. Each bit within rcMask corresponds to a pixel within
|
||||||
|
* rcSource, where a 0 denotes full transparency and a 1 denotes full opacity.
|
||||||
|
*
|
||||||
|
* @param client
|
||||||
|
* The VNC client associated with the VNC session in which the new cursor
|
||||||
|
* image was received.
|
||||||
|
*
|
||||||
|
* @param x
|
||||||
|
* The X coordinate of the new cursor image's hotspot, in pixels.
|
||||||
|
*
|
||||||
|
* @param y
|
||||||
|
* The Y coordinate of the new cursor image's hotspot, in pixels.
|
||||||
|
*
|
||||||
|
* @param w
|
||||||
|
* The width of the cursor image, in pixels.
|
||||||
|
*
|
||||||
|
* @param h
|
||||||
|
* The height of the cursor image, in pixels.
|
||||||
|
*
|
||||||
|
* @param bpp
|
||||||
|
* The number of bytes in each pixel, which must be either 4, 2, or 1.
|
||||||
|
*/
|
||||||
void guac_vnc_cursor(rfbClient* client, int x, int y, int w, int h, int bpp);
|
void guac_vnc_cursor(rfbClient* client, int x, int y, int w, int h, int bpp);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
@ -42,6 +42,7 @@
|
|||||||
|
|
||||||
#include <stdarg.h>
|
#include <stdarg.h>
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
|
#include <stdint.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <syslog.h>
|
#include <syslog.h>
|
||||||
|
|
||||||
@ -99,15 +100,15 @@ void guac_vnc_update(rfbClient* client, int x, int y, int w, int h) {
|
|||||||
|
|
||||||
switch (bpp) {
|
switch (bpp) {
|
||||||
case 4:
|
case 4:
|
||||||
v = *((unsigned int*) fb_current);
|
v = *((uint32_t*) fb_current);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 2:
|
case 2:
|
||||||
v = *((unsigned short*) fb_current);
|
v = *((uint16_t*) fb_current);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
v = *((unsigned char*) fb_current);
|
v = *((uint8_t*) fb_current);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Translate value to RGB */
|
/* Translate value to RGB */
|
||||||
|
@ -29,23 +29,88 @@
|
|||||||
#include <rfb/rfbproto.h>
|
#include <rfb/rfbproto.h>
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Called for normal binary VNC image data.
|
* Callback invoked by libVNCServer when it receives a new binary image data.
|
||||||
|
* the VNC server. The image itself will be stored in the designated sub-
|
||||||
|
* rectangle of client->framebuffer.
|
||||||
|
*
|
||||||
|
* @param client
|
||||||
|
* The VNC client associated with the VNC session in which the new image
|
||||||
|
* was received.
|
||||||
|
*
|
||||||
|
* @param x
|
||||||
|
* The X coordinate of the upper-left corner of the destination rectangle
|
||||||
|
* in which the image should be drawn, in pixels.
|
||||||
|
*
|
||||||
|
* @param y
|
||||||
|
* The Y coordinate of the upper-left corner of the destination rectangle
|
||||||
|
* in which the image should be drawn, in pixels.
|
||||||
|
*
|
||||||
|
* @param w
|
||||||
|
* The width of the image, in pixels.
|
||||||
|
*
|
||||||
|
* @param h
|
||||||
|
* The height of the image, in pixels.
|
||||||
*/
|
*/
|
||||||
void guac_vnc_update(rfbClient* client, int x, int y, int w, int h);
|
void guac_vnc_update(rfbClient* client, int x, int y, int w, int h);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Called for updates which contain data from existing rectangles of the
|
* Callback invoked by libVNCServer when it receives a CopyRect message.
|
||||||
* display.
|
* CopyRect specified a rectangle of source data within the display and a
|
||||||
|
* set of X/Y coordinates to which that rectangle should be copied.
|
||||||
|
*
|
||||||
|
* @param client
|
||||||
|
* The VNC client associated with the VNC session in which the CopyRect
|
||||||
|
* was received.
|
||||||
|
*
|
||||||
|
* @param src_x
|
||||||
|
* The X coordinate of the upper-left corner of the source rectangle
|
||||||
|
* from which the image data should be copied, in pixels.
|
||||||
|
*
|
||||||
|
* @param src_y
|
||||||
|
* The Y coordinate of the upper-left corner of the source rectangle
|
||||||
|
* from which the image data should be copied, in pixels.
|
||||||
|
*
|
||||||
|
* @param w
|
||||||
|
* The width of the source and destination rectangles, in pixels.
|
||||||
|
*
|
||||||
|
* @param h
|
||||||
|
* The height of the source and destination rectangles, in pixels.
|
||||||
|
*
|
||||||
|
* @param dest_x
|
||||||
|
* The X coordinate of the upper-left corner of the destination rectangle
|
||||||
|
* in which the copied image data should be drawn, in pixels.
|
||||||
|
*
|
||||||
|
* @param dest_y
|
||||||
|
* The Y coordinate of the upper-left corner of the destination rectangle
|
||||||
|
* in which the copied image data should be drawn, in pixels.
|
||||||
*/
|
*/
|
||||||
void guac_vnc_copyrect(rfbClient* client, int src_x, int src_y, int w, int h, int dest_x, int dest_y);
|
void guac_vnc_copyrect(rfbClient* client, int src_x, int src_y, int w, int h,
|
||||||
|
int dest_x, int dest_y);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Called when the pixel format of future updates is changing.
|
* Callback invoked by libVNCServer when the pixel format of future graphical
|
||||||
|
* updates is changing.
|
||||||
|
*
|
||||||
|
* @param client
|
||||||
|
* The VNC client associated with the VNC session whose pixel format is
|
||||||
|
* changing.
|
||||||
|
*
|
||||||
|
* @param color_depth
|
||||||
|
* The new color depth, in bits per pixel. Valid values are 8, 16, 24, and
|
||||||
|
* 32.
|
||||||
*/
|
*/
|
||||||
void guac_vnc_set_pixel_format(rfbClient* client, int color_depth);
|
void guac_vnc_set_pixel_format(rfbClient* client, int color_depth);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Called when the display is being resized (or initially allocated).
|
* Overridden implementation of the rfb_MallocFrameBuffer function invoked by
|
||||||
|
* libVNCServer when the display is being resized (or initially allocated).
|
||||||
|
*
|
||||||
|
* @param client
|
||||||
|
* The VNC client associated with the VNC session whose display needs to be
|
||||||
|
* allocated or reallocated.
|
||||||
|
*
|
||||||
|
* @return
|
||||||
|
* The original value returned by rfb_MallocFrameBuffer().
|
||||||
*/
|
*/
|
||||||
rfbBool guac_vnc_malloc_framebuffer(rfbClient* rfb_client);
|
rfbBool guac_vnc_malloc_framebuffer(rfbClient* rfb_client);
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user