static int32_t init_colors (void) { if (gfxvidinfo.pixbytes > 1) { int32_t red_bits = bitsInMask(Rmask); int32_t green_bits = bitsInMask(Gmask); int32_t blue_bits = bitsInMask(Bmask); int32_t red_shift = maskShift(Rmask); int32_t green_shift = maskShift(Gmask); int32_t blue_shift = maskShift(Bmask); if (Amask == 0) { alloc_colors64k (red_bits, green_bits, blue_bits, red_shift, green_shift, blue_shift, 0, 0, 0, 0); } else { int32_t alpha_shift = maskShift(Amask); int32_t alpha_bits = bitsInMask(Amask); alloc_colors64k (red_bits, green_bits, blue_bits, red_shift, green_shift, blue_shift, alpha_bits, alpha_shift, /* alpha = */ 0xffffffff, 0); } } else { DEBUG_LOG ("init_colors: only 256 colors\n"); return 0; } return 1; }
static int init_colors (void) { if (visualInfo.VI_CLASS == TrueColor) { red_bits = bitsInMask (visualInfo.red_mask); green_bits = bitsInMask (visualInfo.green_mask); blue_bits = bitsInMask (visualInfo.blue_mask); red_shift = maskShift (visualInfo.red_mask); green_shift = maskShift (visualInfo.green_mask); blue_shift = maskShift (visualInfo.blue_mask); } if (need_dither) { if (bitdepth == 1) setup_greydither (1, get_color); else setup_dither (bitdepth, get_color); } else { if (bitdepth != 8 && bitdepth != 12 && bitdepth != 15 && bitdepth != 16 && bitdepth != 24) { write_log ("Unsupported bit depth (%d)\n", bitdepth); return 0; } switch (visualInfo.VI_CLASS) { case TrueColor: alloc_colors64k (red_bits, green_bits, blue_bits, red_shift, green_shift, blue_shift, 0, 0, 0, inverse_byte_order); XParseColor (display, cmap, "#000000", &black); if (! XAllocColor (display, cmap, &black)) write_log ("Whoops??\n"); XParseColor (display, cmap, "#ffffff", &white); if (! XAllocColor (display, cmap, &white)) write_log ("Whoops??\n"); break; case GrayScale: case PseudoColor: alloc_colors256 (get_color); break; default: write_log ("Unsupported visual class (%d)\n", visualInfo.VI_CLASS); return 0; } } return 1; }
/* * Find the colour depth of the display */ static int get_display_depth (void) { const SDL_VideoInfo *vid_info; int depth = 0; if ((vid_info = SDL_GetVideoInfo())) { depth = vid_info->vfmt->BitsPerPixel; /* Don't trust the answer if it's 16 bits; the display * could actually be 15 bits deep. We'll count the bits * ourselves */ if (depth == 16) depth = bitsInMask (vid_info->vfmt->Rmask) + bitsInMask (vid_info->vfmt->Gmask) + bitsInMask (vid_info->vfmt->Bmask); } return depth; }
static int init_colors (void) { int i; int red_bits, green_bits, blue_bits; int red_shift, green_shift, blue_shift; /* Truecolor: */ red_bits = bitsInMask(prSDLScreen->format->Rmask); green_bits = bitsInMask(prSDLScreen->format->Gmask); blue_bits = bitsInMask(prSDLScreen->format->Bmask); red_shift = maskShift(prSDLScreen->format->Rmask); green_shift = maskShift(prSDLScreen->format->Gmask); blue_shift = maskShift(prSDLScreen->format->Bmask); alloc_colors64k (red_bits, green_bits, blue_bits, red_shift, green_shift, blue_shift, 0); notice_new_xcolors(); for (i = 0; i < 4096; i++) xcolors[i] = xcolors[i] * 0x00010001; return 1; }
static int init_colors (void) { int i; #ifdef DEBUG_GFX dbg("Function: init_colors"); #endif /* Truecolor: */ red_bits = bitsInMask(prSDLScreen->format->Rmask); green_bits = bitsInMask(prSDLScreen->format->Gmask); blue_bits = bitsInMask(prSDLScreen->format->Bmask); red_shift = maskShift(prSDLScreen->format->Rmask); green_shift = maskShift(prSDLScreen->format->Gmask); blue_shift = maskShift(prSDLScreen->format->Bmask); alloc_colors64k (red_bits, green_bits, blue_bits, red_shift, green_shift, blue_shift); for (i = 0; i < 4096; i++) xcolors[i] = xcolors[i] * 0x00010001; return 1; }