int window_width, window_height, x_offset, y_offset;
gdk_drawable_get_size (draw, &window_width, &window_height);
double _r, _g, _b, _y, _u, _v, u_palette, v_palette;
+ int cr, cg, cb;
int _c, preview_asis = 0;
if (w < 0)
compose[j*3+2] = 128;
}
} else {
- compose[j*3] = mark_palette[c-1].r;
- compose[j*3+1] = mark_palette[c-1].g;
- compose[j*3+2] = mark_palette[c-1].b;
+ cr = mark_palette[c-1].r;
+ cg = mark_palette[c-1].g;
+ cb = mark_palette[c-1].b;
+ if (cr == 255 && cg == 255 && cb == 255) {
+ compose[j*3] = compose[j*3+1] = compose[j*3+2] = ((((i+y)>>3)&1) == (((j+x)>>3)&1)) ? 255 : 192;
+ } else
+ {
+ compose[j*3] = cr;
+ compose[j*3+1] = cg;
+ compose[j*3+2] = cb;
+ }
}
}
}
pixbuf = gdk_pixbuf_new(GDK_COLORSPACE_RGB, FALSE, 8, COLOR_WIDTH, COLOR_HEIGHT);
data = gdk_pixbuf_get_pixels(pixbuf);
rs = gdk_pixbuf_get_rowstride(pixbuf);
- for (k = 0; k < COLOR_WIDTH; k++) {
- /* we use height as horizontal size of original color area */
- if (k >= COLOR_HEIGHT+3) {
- y = (double)(k-COLOR_HEIGHT-3) / (double)((COLOR_WIDTH-COLOR_HEIGHT-3)-1);
- y = (y - 0.5) * contrast + 0.5;
- y += bright;
- if (y < 0)
- y = 0;
- if (y > 1)
- y = 1;
- yuv2rgb_pixle(y, u, v, &r, &g, &b);
- cr = r * 255.0F;
- if (cr < 0)
- cr = 0;
- else if (cr > 255)
+ if (cr == 255 && cg == 255 && cb == 255) {
+ for (k = 0; k < COLOR_WIDTH; k++) {
+ for (j = 0; j < COLOR_HEIGHT; j++) {
+ data[j * rs + k * 3 + 0] = 255;
+ data[j * rs + k * 3 + 1] = 255;
+ data[j * rs + k * 3 + 2] = 255;
+ }
+ }
+ } else {
+ for (k = 0; k < COLOR_WIDTH; k++) {
+ /* we use height as horizontal size of original color area */
+ if (k >= COLOR_HEIGHT+3) {
+ y = (double)(k-COLOR_HEIGHT-3) / (double)((COLOR_WIDTH-COLOR_HEIGHT-3)-1);
+ y = (y - 0.5) * contrast + 0.5;
+ y += bright;
+ if (y < 0)
+ y = 0;
+ if (y > 1)
+ y = 1;
+ yuv2rgb_pixle(y, u, v, &r, &g, &b);
+ cr = r * 255.0F;
+ if (cr < 0)
+ cr = 0;
+ else if (cr > 255)
+ cr = 255;
+ cg = g * 255.0F;
+ if (cg < 0)
+ cg = 0;
+ else if (cg > 255)
+ cg = 255;
+ cb = b * 255.0F;
+ if (cb < 0)
+ cb = 0;
+ else if (cb > 255)
+ cb = 255;
+ } else
+ if (k >= COLOR_HEIGHT) {
cr = 255;
- cg = g * 255.0F;
- if (cg < 0)
- cg = 0;
- else if (cg > 255)
cg = 255;
- cb = b * 255.0F;
- if (cb < 0)
- cb = 0;
- else if (cb > 255)
cb = 255;
- } else
- if (k >= COLOR_HEIGHT) {
- cr = 255;
- cg = 255;
- cb = 255;
- }
- for (j = 0; j < COLOR_HEIGHT; j++) {
- data[j * rs + k * 3 + 0] = cr;
- data[j * rs + k * 3 + 1] = cg;
- data[j * rs + k * 3 + 2] = cb;
+ }
+ for (j = 0; j < COLOR_HEIGHT; j++) {
+ data[j * rs + k * 3 + 0] = cr;
+ data[j * rs + k * 3 + 1] = cg;
+ data[j * rs + k * 3 + 2] = cb;
+ }
}
}