ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/rxvt-unicode/src/rxvtimg.C
(Generate patch)

Comparing rxvt-unicode/src/rxvtimg.C (file contents):
Revision 1.50 by root, Thu Jun 7 19:42:09 2012 UTC vs.
Revision 1.51 by root, Thu Jun 7 20:04:54 2012 UTC

78 xi.width = width; 78 xi.width = width;
79 xi.height = height; 79 xi.height = height;
80 xi.xoffset = 0; 80 xi.xoffset = 0;
81 xi.format = ZPixmap; 81 xi.format = ZPixmap;
82 xi.byte_order = LSBFirst; // maybe go for host byte order, because servers are usually local? 82 xi.byte_order = LSBFirst; // maybe go for host byte order, because servers are usually local?
83 xi.bitmap_unit = 32; 83 xi.bitmap_unit = 32; //XY only, unused
84 xi.bitmap_bit_order = LSBFirst; 84 xi.bitmap_bit_order = LSBFirst; //XY only, unused
85 xi.bitmap_pad = BitmapPad (dpy); 85 xi.bitmap_pad = BitmapPad (dpy);
86 xi.depth = depth; 86 xi.depth = depth;
87 xi.bytes_per_line = 0; 87 xi.bytes_per_line = 0;
88 xi.bits_per_pixel = 32; 88 xi.bits_per_pixel = 32; //Z only
89 xi.red_mask = 0x000000ff; 89 xi.red_mask = 0x000000ff; //Z only
90 xi.green_mask = 0x0000ff00; 90 xi.green_mask = 0x0000ff00; //Z only
91 xi.blue_mask = 0x00ff0000; 91 xi.blue_mask = 0x00ff0000; //Z only
92 xi.obdata = 0; // probbaly unused
92 93
93 if (!XInitImage (&xi)) 94 if (!XInitImage (&xi))
94 rxvt_fatal ("unable to initialise ximage, please report.\n"); 95 rxvt_fatal ("unable to initialise ximage, please report.\n");
95 96
96 if (height > INT_MAX / xi.bytes_per_line) 97 if (height > INT_MAX / xi.bytes_per_line)
119 uint32_t v = r | (g << 8) | (b << 16); 120 uint32_t v = r | (g << 8) | (b << 16);
120 121
121 if (ecb_big_endian ()) 122 if (ecb_big_endian ())
122 v = ecb_bswap32 (v); 123 v = ecb_bswap32 (v);
123 124
124 *dst++ = x; 125 *dst++ = v;
125 } 126 }
126 else 127 else
127 for (int x = 0; x < width; x++) 128 for (int x = 0; x < width; x++)
128 { 129 {
129 uint32_t v = *(uint32_t *)src; src += 4; 130 uint32_t v = *(uint32_t *)src; src += 4;
130 v = ecb_big_endian () ? ecb_rotr32 (v, 8) : ecb_rotl32 (v, 8); 131
132 if (ecb_big_endian ())
131 *dst++ = ecb_bswap32 (v); 133 v = ecb_bswap32 (v);
134
135 *dst++ = v;
132 } 136 }
133 137
134 row += rowstride; 138 row += rowstride;
135 line += xi.bytes_per_line; 139 line += xi.bytes_per_line;
136 } 140 }

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines