1178 |
|
XSetWindowAttributes wattr; |
1179 |
|
wattr.event_mask = eventmask = dga_eventmask; |
1180 |
|
wattr.override_redirect = True; |
1181 |
+ |
wattr.colormap = (mode.depth == VDEPTH_1BIT ? DefaultColormap(x_display, screen) : cmap[0]); |
1182 |
|
|
1183 |
|
w = XCreateWindow(x_display, rootwin, 0, 0, width, height, 0, xdepth, |
1184 |
< |
InputOutput, vis, CWEventMask | CWOverrideRedirect, &wattr); |
1184 |
> |
InputOutput, vis, CWEventMask | CWOverrideRedirect | |
1185 |
> |
(color_class == DirectColor ? CWColormap : 0), &wattr); |
1186 |
|
|
1187 |
|
// Set window name/class |
1188 |
|
set_window_name(w, STR_WINDOW_TITLE); |
1216 |
|
|
1217 |
|
// Init blitting routines |
1218 |
|
int bytes_per_row = TrivialBytesPerRow((v_width + 7) & ~7, mode.depth); |
1219 |
< |
#if VIDEO_VOSF |
1219 |
> |
#if ENABLE_VOSF |
1220 |
> |
bool native_byte_order; |
1221 |
> |
#ifdef WORDS_BIGENDIAN |
1222 |
> |
native_byte_order = (XImageByteOrder(x_display) == MSBFirst); |
1223 |
> |
#else |
1224 |
> |
native_byte_order = (XImageByteOrder(x_display) == LSBFirst); |
1225 |
> |
#endif |
1226 |
|
#if REAL_ADDRESSING || DIRECT_ADDRESSING |
1227 |
|
// Screen_blitter_init() returns TRUE if VOSF is mandatory |
1228 |
|
// i.e. the framebuffer update function is not Blit_Copy_Raw |
1229 |
< |
use_vosf = Screen_blitter_init(&visualInfo, true, mode.depth); |
1229 |
> |
use_vosf = Screen_blitter_init(&visualInfo, native_byte_order, mode.depth); |
1230 |
|
|
1231 |
|
if (use_vosf) { |
1232 |
|
// Allocate memory for frame buffer (SIZE is extended to page-boundary) |