projects
/
libguac-client-rdp.git
/ commitdiff
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
17507c0
)
Fix artifacts.
author
Michael Jumper <zhangmaike@users.sourceforge.net>
Tue, 10 Apr 2012 18:51:46 +0000
(11:51 -0700)
committer
Michael Jumper <zhangmaike@users.sourceforge.net>
Tue, 10 Apr 2012 18:51:46 +0000
(11:51 -0700)
src/rdp_bitmap.c
patch
|
blob
|
history
diff --git
a/src/rdp_bitmap.c
b/src/rdp_bitmap.c
index
bf351be
..
2448fdb
100644
(file)
--- a/
src/rdp_bitmap.c
+++ b/
src/rdp_bitmap.c
@@
-58,12
+58,12
@@
void __guac_rdp_cache_bitmap(rdpContext* context, rdpBitmap* bitmap) {
guac_client* client = ((rdp_freerdp_context*) context)->client;
guac_socket* socket = client->socket;
guac_client* client = ((rdp_freerdp_context*) context)->client;
guac_socket* socket = client->socket;
+ /* Allocate buffer */
+ guac_layer* buffer = guac_client_alloc_buffer(client);
+
/* Cache image data if present */
if (bitmap->data != NULL) {
/* Cache image data if present */
if (bitmap->data != NULL) {
- /* Allocate buffer */
- guac_layer* buffer = guac_client_alloc_buffer(client);
-
/* Create surface from image data */
cairo_surface_t* surface = cairo_image_surface_create_for_data(
bitmap->data, CAIRO_FORMAT_RGB24,
/* Create surface from image data */
cairo_surface_t* surface = cairo_image_surface_create_for_data(
bitmap->data, CAIRO_FORMAT_RGB24,
@@
-76,11
+76,11
@@
void __guac_rdp_cache_bitmap(rdpContext* context, rdpBitmap* bitmap) {
/* Free surface */
cairo_surface_destroy(surface);
/* Free surface */
cairo_surface_destroy(surface);
- /* Store buffer reference in bitmap */
- ((guac_rdp_bitmap*) bitmap)->layer = buffer;
-
}
}
+ /* Store buffer reference in bitmap */
+ ((guac_rdp_bitmap*) bitmap)->layer = buffer;
+
}
}
@@
-171,9
+171,12
@@
void guac_rdp_bitmap_setsurface(rdpContext* context, rdpBitmap* bitmap, boolean
else {
else {
- if (((guac_rdp_bitmap*) bitmap)->layer != NULL)
- ((rdp_guac_client_data*) client->data)->current_surface
- = ((guac_rdp_bitmap*) bitmap)->layer;
+ /* If not available as a surface, make available. */
+ if (((guac_rdp_bitmap*) bitmap)->layer == NULL)
+ __guac_rdp_cache_bitmap(context, bitmap);
+
+ ((rdp_guac_client_data*) client->data)->current_surface
+ = ((guac_rdp_bitmap*) bitmap)->layer;
}
}