On Fri, 10 Aug 2007 21:39:47 +0000 (UTC) Hendrik Boom <[EMAIL PROTECTED]> wrote:
> I have a small program that makes a time-varying pattern on the > screen. It works fine with SDL_RESIZABLE, but not with SDL_FULLSCREEN. > > In full-screen mode everything is sheared off into wavy lines, as if the > screen geometry I'm using is not the actual one. > > Now I understand that it may be unable to deliver the desired resolution, > but if so SDL_SetVideoMode should be returning error indication, > right? > > Although I don't get an error return, i called SDL_GetError anyway and got > the following message: > > Failed loading DPMSDisable: /usr/lib/libX11.so.6: undefined symbol: > DPMSDisable > > I don't know if that means anything important, because it happens > both with SDL_FULLSCREEN and with SDL_RESIZABLE. > > Here's the code. The #if is how I switch between full-screen and > resizable. Am I doing something obviously wrong? > > > #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, t; > > printf("At start GetError says: %s\n", SDL_GetError()); > if(SDL_Init(SDL_INIT_VIDEO) != 0) > { > printf("unable to initialize SDL: %s\n", SDL_GetError()); > return 1; > } > atexit(SDL_Quit); > > printf("After SDL_INIT GetError says: %s\n", SDL_GetError()); > #if 1 > screen = SDL_SetVideoMode(640, 480, 16, SDL_FULLSCREEN); > #else > screen = SDL_SetVideoMode(640, 480, 16, SDL_RESIZABLE); > #endif > > printf("after SetVideoMods GetError says: %s\n", SDL_GetError()); > if(screen == NULL) > { > printf("unable to set video mode: %s\n", SDL_GetError()); > return 1; > } > > for(t = 0; t < 20; ++t) > { > SDL_LockSurface(screen); > raw_pixels = (Uint16 *) screen->pixels; > for(x = 0; x < screen->w; x++) > { > for(y = 0; y < screen->h; y++) > { > Uint16 pixel_color; > int offset; > pixel_color = CreateHicolorPixel(screen->format, > (x * t) >> 4, > (x ^ y) + t, > (y * t) >> 4 > > ); > offset = (screen->pitch / 2 * y + x); > raw_pixels[offset] = pixel_color; > } > } > SDL_UnlockSurface(screen); > SDL_UpdateRect(screen, 0, 0, 0, 0); > SDL_Delay(8); > } > > SDL_Delay(3000); > printf("success!\n"); > return 0; > } > > > -- > To UNSUBSCRIBE, email to [EMAIL PROTECTED] > with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED] Which version of SDL you have? Maybe this problem it's coming from rhe windowed system (xorg), -olr -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]