Suface flags question

I’m creating a SDL_Surface with these flags:
unsigned long flags = SDL_HWSURFACE | SDL_ASYNCBLIT | SDL_HWACCEL | SDL_DOUBLEBUF; // 0x40000115
surface = SDL_SetVideoMode(1200, 800, 0, flags);

I’m then looking at the surface flags and see that it is this:
surface->flags = 0x00000010

Why isn’t surface->flags equal to flags? I thought this should be 0x40000115
instead of 0x00000010.

thanks,
Bob

Hi.

A lot of the SDL flags may not be available. SDL tries to give you as
close to what you asked for. However, on linux I believe you cannot
get a hardware surface without running as root (which is a bit much ),
and on windows I think you can only get a hardware surface in
fullscreen mode. The video drive affects the flags available too, it’s
different under GDI and DirectDraw. I don’t know what SDL_HWACCEL
does, I think its probably an internal flag you shoudln’t be setting.On 17/07/07, Bob Self wrote:

I’m creating a SDL_Surface with these flags:
unsigned long flags = SDL_HWSURFACE | SDL_ASYNCBLIT | SDL_HWACCEL | SDL_DOUBLEBUF; // 0x40000115
surface = SDL_SetVideoMode(1200, 800, 0, flags);

I’m then looking at the surface flags and see that it is this:
surface->flags = 0x00000010

Why isn’t surface->flags equal to flags? I thought this should be 0x40000115
instead of 0x00000010.

Hello !

I’m creating a SDL_Surface with these flags:
unsigned long flags = SDL_HWSURFACE | SDL_ASYNCBLIT | SDL_HWACCEL |
SDL_DOUBLEBUF; // 0x40000115

Using Uint32 flags is more portable.

CU