int vga_getpalvec(int start, int num, int *pal) { int i; for (i = start; i < start + num; ++i) { vga_getpalette(i, pal + 0, pal + 1, pal + 2); pal += 3; } return num; }
void VL_GetPalette(byte *palette) { myint i, r, g, b; for (i = 0; i < 256; i++) { vga_getpalette(i, &r, &g, &b); palette[i*3+0] = r; palette[i*3+1] = g; palette[i*3+2] = b; } }
void GetHardPalette(void) { int lr,lg,lb; for(int i=0; i<256; i++) { vga_getpalette(i,&lr,&lg,&lb); d[i][0] = lr; d[i][1] = lg; d[i][2] = lb; } };
void SvgalibScreen::initColorMap() { const int numColors = vga_getcolors(); if (numColors == 2 || numColors > 256) { screencols = 0; return; // not a palette based mode } if (numColors == 16) { if (grayscale) { for (int i = 0; i < 256; ++i) { const int c = i * 16 / 256; vga_setpalette(i, c, c, c); } screencols = 256; // XXX: takes advantage of optimization in alloc() } else { // read in EGA palette int r, g, b; for (int i = 0; i < 16; ++i) { vga_getpalette(i, &r, &g, &b); screenclut[i] = qRgb(r, g, b); } screencols = 16; } return; } Q_ASSERT(numColors == 256); if (grayscale) { for (int i = 0; i < 256; ++i) { const int c = i * 64 / 256; vga_setpalette(i, c, c, c); } } else { int i = 0; #if 0 // read in EGA palette while (i < 16) { int r, g, b; vga_getpalette(i, &r, &g, &b); screenclut[i] = qRgb(r, g, b); ++i; } screencols = 16; #endif // 6 * 6 * 6 color cube for (int r = 0; r < 6; ++r) { for (int g = 0; g < 6; ++g) { for (int b = 0; b < 6; ++b) { vga_setpalette(i, r * 64/6, g * 64/6, b * 64/6); screenclut[i] = qRgb(r * 256/6, g * 256/6, b * 256/6); ++i; } } } screencols = i; while (i < 256) { screenclut[i] = qRgb(0, 0, 0); ++i; } } }