home *** CD-ROM | disk | FTP | other *** search
- 49c49
- < #include <errnos.h>
- ---
- > #include <errno.h>
- 53a54
- > #include "i_video.h"
- 59a61,63
- > #include "r_main.h"
- >
- >
- 63a68
- > #if (LD_PIXEL_DEPTH == 3)
- 64a70,82
- > #define USE_PIXEL_DEPTH 8
- > #else
- > #if (LD_PIXEL_DEPTH == 4)
- > #define USE_PIXEL_DEPTH 16
- > #elif (LD_PIXEL_DEPTH == 5)
- > #define USE_PIXEL_DEPTH 24
- > #else
- > #error "Unsupported pixel depth!"
- > #endif
- > boolean PaletteChanged=false;
- > lighttable_t translated_colourmaps[256*(NUMCOLORMAPS+1)];
- > unsigned long light_multipliers[NUMCOLORMAPS];
- > #endif
- 93a112,113
- >
- >
- 151a172,182
- > case XK_0:
- > case XK_KP_0: rc = '0'; break;
- > case XK_KP_1: rc = '1'; break;
- > case XK_KP_2: rc = '2'; break;
- > case XK_KP_3: rc = '3'; break;
- > case XK_KP_4: rc = '4'; break;
- > case XK_KP_5: rc = '5'; break;
- > case XK_KP_6: rc = '6'; break;
- > case XK_KP_7: rc = '7'; break;
- > case XK_KP_8: rc = '8'; break;
- >
- 388c419
- < olineptrs[i] = (unsigned int *) &image->data[i*X_width];
- ---
- > olineptrs[i] = (unsigned int *) &image->data[i*X_width*sizeof(pixel_t)];
- 393a425
- > #if (LD_PIXEL_DEPTH == 3)
- 416a449,481
- > #elif (LD_PIXEL_DEPTH == 4)
- > do
- > {
- > fouripixels = *ilineptr++;
- > twoopixels = (fouripixels & 0xffff0000); twoopixels |= (twoopixels >> 16);
- > twomoreopixels = (fouripixels & 0xffff); twomoreopixels |= (twomoreopixels << 16);
- > #ifdef __BIG_ENDIAN__
- > *olineptrs[0]++ = twoopixels;
- > *olineptrs[1]++ = twoopixels;
- > *olineptrs[0]++ = twomoreopixels;
- > *olineptrs[1]++ = twomoreopixels;
- > #else
- > *olineptrs[0]++ = twomoreopixels;
- > *olineptrs[1]++ = twomoreopixels;
- > *olineptrs[0]++ = twoopixels;
- > *olineptrs[1]++ = twoopixels;
- > #endif
- > } while (x-=2);
- > olineptrs[0] += X_width/2;
- > olineptrs[1] += X_width/2;
- > #else
- > do
- > {
- > fouripixels = *ilineptr++;
- > *olineptrs[0]++ = fouripixels;
- > *olineptrs[0]++ = fouripixels;
- > *olineptrs[1]++ = fouripixels;
- > *olineptrs[1]++ = fouripixels;
- > }
- > while (x--);
- > olineptrs[0] += X_width;
- > olineptrs[1] += X_width;
- > #endif
- 430c495
- < olineptrs[i] = (unsigned int *) &image->data[i*X_width];
- ---
- > olineptrs[i] = (unsigned int *) &image->data[i*X_width*sizeof(pixel_t)];
- 435a501
- > #if (LD_PIXEL_DEPTH == 3)
- 472a539,587
- > #elif (LD_PIXEL_DEPTH == 4)
- > do
- > {
- > fouripixels = *ilineptr++;
- > #ifdef __BIG_ENDIAN__
- > fouropixels[0] = (fouripixels & 0xffff0000);
- > fouropixels[0] |= (fouropixels[0] >> 16);
- > fouropixels[1] = fouripixels;
- > fouropixels[2] = (fouripixels & 0xffff);
- > fouropixels[2] |= (fouropixels[2] << 16);
- > #else
- > fouropixels[0] = (fouripixels & 0xffff);
- > fouropixels[1] = fouropixels[0];
- > fouropixels[0] |= (fouropixels[0] << 16);
- > fouropixels[2] = (fouripixels & 0xffff0000);
- > fouropixels[1] |= fouropixels[2];
- > fouropixels[2] |= (fouropixels[2] >> 16);
- > #endif
- > *olineptrs[0]++ = fouropixels[0];
- > *olineptrs[0]++ = fouropixels[1];
- > *olineptrs[0]++ = fouropixels[2];
- > *olineptrs[1]++ = fouropixels[0];
- > *olineptrs[1]++ = fouropixels[1];
- > *olineptrs[1]++ = fouropixels[2];
- > *olineptrs[2]++ = fouropixels[0];
- > *olineptrs[2]++ = fouropixels[1];
- > *olineptrs[2]++ = fouropixels[2];
- > } while (x-=2);
- > olineptrs[0] += X_width;
- > olineptrs[1] += X_width;
- > olineptrs[2] += X_width;
- > #else
- > do
- > {
- > fouripixels = *ilineptr++;
- > *olineptrs[0]++ = fouripixels;
- > *olineptrs[0]++ = fouripixels;
- > *olineptrs[0]++ = fouripixels;
- > *olineptrs[1]++ = fouripixels;
- > *olineptrs[1]++ = fouripixels;
- > *olineptrs[1]++ = fouripixels;
- > *olineptrs[2]++ = fouripixels;
- > *olineptrs[2]++ = fouripixels;
- > *olineptrs[2]++ = fouripixels;
- > } while (x--);
- > olineptrs[0] += 2*X_width;
- > olineptrs[1] += 2*X_width;
- > olineptrs[2] += 2*X_width;
- > #endif
- 527c642
- < void I_ReadScreen (byte* scr)
- ---
- > void I_ReadScreen (pixel_t* scr)
- 529c644
- < memcpy (scr, screens[0], SCREENWIDTH*SCREENHEIGHT);
- ---
- > memcpy (scr, screens[0], SCREENWIDTH*SCREENHEIGHT*sizeof(pixel_t));
- 579a695,748
- >
- >
- > #if (LD_PIXEL_DEPTH > 3)
- >
- > void I_TranslatePalette(byte *palette)
- > {
- > unsigned char gamma_palette[768];
- > unsigned char* pal;
- > unsigned char* gt;
- > unsigned char* invul;
- > int i, j;
- > unsigned long* gp;
- > lighttable_t* cmap;
- > unsigned long intensity;
- > int red, green, blue;
- >
- > gt = (unsigned char*)(gammatable[usegamma]); gp = (unsigned long*)gamma_palette;
- > for (i=0; i<768/4; i++)
- > {
- > *gp++ =
- > #ifdef __BIG_ENDIAN__
- > (gt[(unsigned char)(palette[0])] << 24) | (gt[(unsigned char)(palette[1])] << 16) |
- > (gt[(unsigned char)(palette[2])] << 8) | (gt[(unsigned char)(palette[3])]);
- > #else
- > (gt[(unsigned char)(palette[0])]) | (gt[(unsigned char)(palette[1])] << 8) |
- > (gt[(unsigned char)(palette[2])] << 16) | (gt[(unsigned char)(palette[3])] << 24);
- > #endif
- > palette += 4;
- > }
- >
- > cmap = translated_colourmaps;
- > for (j=0; j<NUMCOLORMAPS; j++)
- > {
- > intensity = light_multipliers[j];
- > for (i=0, pal=gamma_palette; i<256; i++, pal+=3)
- > {
- > red = (intensity * pal[0]) >> 16;
- > green = (intensity * pal[1]) >> 16;
- > blue = (intensity * pal[2]) >> 16;
- > *cmap++ = BUILD_RGB_PIXEL(red, green, blue);
- > }
- > }
- >
- > invul = (unsigned char*)(colormaps + 32*256);
- > for (i=0; i<256; i++)
- > {
- > pal = gamma_palette + 3*((unsigned char)(invul[i]));
- > *cmap++ = BUILD_RGB_PIXEL(pal[0], pal[1], pal[2]);
- > }
- > }
- > #endif
- >
- >
- >
- 583a753
- > #if (LD_PIXEL_DEPTH == 3)
- 584a755,757
- > #else
- > I_TranslatePalette(palette);
- > #endif
- 771,772c944,952
- < if (!XMatchVisualInfo(X_display, X_screen, 8, PseudoColor, &X_visualinfo))
- < I_Error("xdoom currently only supports 256-color PseudoColor screens");
- ---
- > #if (LD_PIXEL_DEPTH == 3)
- > if (!XMatchVisualInfo(X_display, X_screen, USE_PIXEL_DEPTH, PseudoColor, &X_visualinfo))
- > #elif (LD_PIXEL_DEPTH == 4)
- > if (!XMatchVisualInfo(X_display, X_screen, USE_PIXEL_DEPTH, TrueColor, &X_visualinfo))
- > #else
- > if (!XMatchVisualInfo(X_display, X_screen, USE_PIXEL_DEPTH, TrueColor, &X_visualinfo))
- > #endif
- > I_Error("Can't claim visual for pixel depth %d. Try another binary.", USE_PIXEL_DEPTH);
- >
- 792a973
- > #if (LD_PIXEL_DEPTH == 3)
- 795a977,986
- > attribs.colormap = X_cmap;
- > #else
- > attribs.colormap = 0;
- >
- > /* Init the lighttable intensities */
- > for (n=0; n<NUMCOLORMAPS; n++)
- > {
- > light_multipliers[n] = 0x10000 - (n * (0x10000 - 0x2000)) / (NUMCOLORMAPS - 1);
- > }
- > #endif
- 805d995
- < attribs.colormap = X_cmap;
- 814c1004
- < 8, /* depth*/
- ---
- > USE_PIXEL_DEPTH, /* depth*/
- 861c1051
- < 8,
- ---
- > USE_PIXEL_DEPTH,
- 900c1090
- < 8,
- ---
- > USE_PIXEL_DEPTH,
- 903c1093
- < (char*)malloc(X_width * X_height),
- ---
- > (char*)malloc(X_width * X_height * sizeof(pixel_t)),
- 906c1096
- < X_width );
- ---
- > X_width * sizeof(pixel_t) );
- 911c1101
- < screens[0] = (unsigned char *) (image->data);
- ---
- > screens[0] = (pixel_t *) (image->data);
- 913c1103
- < screens[0] = (unsigned char *) malloc (SCREENWIDTH * SCREENHEIGHT);
- ---
- > screens[0] = (pixel_t *) malloc (SCREENWIDTH * SCREENHEIGHT * sizeof(pixel_t));
- 917a1108
- > #if (LD_PIXEL_DEPTH == 3)
- 1049a1241,1254
- > #else
- >
- > void InitExpand(void) {;}
- >
- > void InitExpand2(void) {;}
- >
- > void
- > Expand4
- > ( unsigned* lineptr,
- > double* xline )
- > {
- > printf("-4 not supported!\n");
- > }
- > #endif
-