summaryrefslogtreecommitdiffstats
path: root/xrdp/xrdp_bitmap.c
diff options
context:
space:
mode:
authorjsorg71 <jsorg71>2009-09-17 18:02:17 +0000
committerjsorg71 <jsorg71>2009-09-17 18:02:17 +0000
commitd350ec5bfd3553a03f5baee0d42e09aec6cd926e (patch)
tree866a10dbc1edb7d28cc59dee3a79dc31c0a45d89 /xrdp/xrdp_bitmap.c
parent347ab74a938bb6cfd9224049b3ea9f08ea29d6d0 (diff)
downloadxrdp-proprietary-d350ec5bfd3553a03f5baee0d42e09aec6cd926e.tar.gz
xrdp-proprietary-d350ec5bfd3553a03f5baee0d42e09aec6cd926e.zip
improve login graphics
Diffstat (limited to 'xrdp/xrdp_bitmap.c')
-rw-r--r--xrdp/xrdp_bitmap.c16
1 files changed, 10 insertions, 6 deletions
diff --git a/xrdp/xrdp_bitmap.c b/xrdp/xrdp_bitmap.c
index e3e80c81..0b82b3d6 100644
--- a/xrdp/xrdp_bitmap.c
+++ b/xrdp/xrdp_bitmap.c
@@ -451,8 +451,8 @@ xrdp_bitmap_load(struct xrdp_bitmap* self, const char* filename, int* palette)
/* read palette */
g_file_seek(fd, 14 + header.size);
init_stream(s, 8192);
- g_file_read(fd, s->data, 256 * sizeof(int));
- for (i = 0; i < 256; i++)
+ g_file_read(fd, s->data, header.clr_used * sizeof(int));
+ for (i = 0; i < header.clr_used; i++)
{
in_uint32_le(s, palette1[i]);
}
@@ -501,8 +501,8 @@ xrdp_bitmap_load(struct xrdp_bitmap* self, const char* filename, int* palette)
/* read palette */
g_file_seek(fd, 14 + header.size);
init_stream(s, 8192);
- g_file_read(fd, s->data, 16 * sizeof(int));
- for (i = 0; i < 16; i++)
+ g_file_read(fd, s->data, header.clr_used * sizeof(int));
+ for (i = 0; i < header.clr_used; i++)
{
in_uint32_le(s, palette1[i]);
}
@@ -527,9 +527,13 @@ xrdp_bitmap_load(struct xrdp_bitmap* self, const char* filename, int* palette)
if ((j & 1) == 0)
{
in_uint8(s, k);
+ color = (k >> 4) & 0xf;
}
- color = palette1[(k & 0xf0) >> 4];
- k <<= 4;
+ else
+ {
+ color = k & 0xf;
+ }
+ color = palette1[color];
if (self->bpp == 8)
{
color = xrdp_bitmap_get_index(self, palette, color);