color->pixel; \
break; \
case 15: \
+ if (xd->visual->red_mask == 0x7c00) { \
xd->pixels[i] = \
(((color->red >> (8 + 3)) & 0x1f) << (5 + 5)) | \
(((color->green >> (8 + 2)) & 0x1f) << (5)) | \
(((color->blue >> (8 + 3)) & 0x1f) << (0)); \
+ } else { \
+ (((color->blue >> (8 + 3)) & 0x1f) << (5 + 5)) | \
+ (((color->green >> (8 + 2)) & 0x1f) << (5)) | \
+ (((color->red >> (8 + 3)) & 0x1f) << (0)); \
+ } \
break; \
case 16: \
+ if (xd->visual->red_mask == 0xf800) { \
xd->pixels[i] = \
(((color->red >> (8 + 3)) & 0x1f) << (6 + 5)) | \
(((color->green >> (8 + 2)) & 0x3f) << (5)) | \
(((color->blue >> (8 + 3)) & 0x1f) << (0)); \
+ } else { \
+ xd->pixels[i] = \
+ (((color->blue >> (8 + 3)) & 0x1f) << (6 + 5)) | \
+ (((color->green >> (8 + 2)) & 0x3f) << (5)) | \
+ (((color->red >> (8 + 3)) & 0x1f) << (0)); \
+ } \
break; \
case 24: \
+ case 32: \
+ if (xd->visual->red_mask == 0xff0000) { \
xd->pixels[i] = \
((color->red & 0xff) << 16) | \
((color->green & 0xff) << 8) | \
((color->blue & 0xff) << 0); \
- break; \
- case 32: \
+ } else { \
xd->pixels[i] = \
- ((color->red & 0xff) << 16) | \
+ ((color->blue & 0xff) << 16) | \
((color->green & 0xff) << 8) | \
- ((color->blue & 0xff) << 0); \
+ ((color->red & 0xff) << 0); \
+ } \
break; \
} \
} \
} else {
fprintf(stderr,
"Cool, I found the shared memory extension!\n");
- fprintf(stderr,
- "Disabled SHM, because it is currently broken!\n");
- xd->shared = 0;
+ xd->shared = 1;
}
}
}
InitNewView(SimView *view, char *title, int class, int w, int h)
{
int type, i;
+ int test = 1;
int d = 8;
unsigned long valuemask = 0;
char *t;
view->type = X_Mem_View;
}
+ view->x->needs_swap = !(*(unsigned char*) (&test));
+ view->x->x_big_endian = (ImageByteOrder(view->x->dpy) == MSBFirst);
+
+
GetPixmaps(view->x);
view->pixels = view->x->pixels;
view->pan_x = w / 2; view->pan_y = h / 2;
DoResizeView(view, w, h);
- GetViewTiles(view);
-
return (view);
}
view->pixel_bytes = 2;
view->depth = 15;
bitmap_pad = 16;
- bitmap_depth = 16;
+ bitmap_depth = 15;
view->line_bytes8 =
((view->m_width * view->pixel_bytes) + 3) & (~3);
break;
}
}
}
+
+ GetViewTiles(view);
+
}