When I run a program in X system on F7 ,the X crashed ,just like I press
CTRL+ALT+BACKSPACE.
It is sure that the code has no problem,I get it from linux game programming.
What’s the problem?
the code is below,
#include <SDL/SDL.h>
#include <stdio.h>
#include <stdlib.h>
Uint16 CreateHicolorPixel(SDL_PixelFormat * fmt, Uint8 red,
Uint8 green, Uint8 blue)
{
Uint16 value;
value = ((red >> fmt->Rloss) << fmt->Rshift) +
((green >> fmt->Gloss) << fmt->Gshift) +
((blue >> fmt->Bloss) << fmt->Bshift);
return value;
}
int main()
{
SDL_Surface *screen;
Uint16 *raw_pixels;
int x, y;
if (SDL_Init(SDL_INIT_VIDEO) != 0) {
printf(“Unable to initialize SDL: %s\n”, SDL_GetError());
return 1;
}
atexit(SDL_Quit);
screen = SDL_SetVideoMode(256, 256, 24, SDL_FULLSCREEN|SDL_SWSURFACE);
if (screen == NULL) {
printf(“Unable to set video mode: %s\n”, SDL_GetError());
return 1;
}
SDL_LockSurface(screen);
raw_pixels = (Uint16 *) screen->pixels;
for (x = 0; x < 256; x++) {
for (y = 0; y < 256; y++) {
Uint16 pixel_color;
int offset;
pixel_color = CreateHicolorPixel(screen->format,
x, 0, y);
offset = (screen->pitch / 2 * y + x);
raw_pixels[offset] = pixel_color;
}
}
SDL_UnlockSurface(screen);
SDL_UpdateRect(screen, 10, 10, 200, 120);
SDL_Delay(3000);
return 0;
}