diff options
| author | jsorg71 <jsorg71> | 2009-09-17 18:02:17 +0000 |
|---|---|---|
| committer | jsorg71 <jsorg71> | 2009-09-17 18:02:17 +0000 |
| commit | d350ec5bfd3553a03f5baee0d42e09aec6cd926e (patch) | |
| tree | 866a10dbc1edb7d28cc59dee3a79dc31c0a45d89 /xrdp/xrdp_bitmap.c | |
| parent | 347ab74a938bb6cfd9224049b3ea9f08ea29d6d0 (diff) | |
| download | xrdp-proprietary-d350ec5bfd3553a03f5baee0d42e09aec6cd926e.tar.gz xrdp-proprietary-d350ec5bfd3553a03f5baee0d42e09aec6cd926e.zip | |
improve login graphics
Diffstat (limited to 'xrdp/xrdp_bitmap.c')
| -rw-r--r-- | xrdp/xrdp_bitmap.c | 16 |
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); |
