function SDL_Init( flags : uint32 ) : Integer;Examples of flags taken from the documentation are SDL_INIT_TIMER, SDL_INIT_AUDIO, SDL_INIT_VIDEO, SDL_INIT_CDROM and SDL_INIT_JOYSTICK. The values for these flags are given in SDL.pas as the hex values 1, 10, 20, 100 and 200 respectively. The flags are stored as 32-bit unsigned integers. For each of these flags, the first 20 bits are zero. The remaining 12 bits are tabulated below.
|SDL_INIT_TIMER||0000 0000 0001|
|SDL_INIT_AUDIO||0000 0001 0000|
|SDL_INIT_VIDEO||0000 0010 0000|
|SDL_INIT_CDROM||0001 0000 0000|
|SDL_INIT_JOYSTICK||0010 0000 0000|
Note that in each flag there is a single 1-bit. In order to combine flags, we just perform a bitwise OR operation. For example, SDL_INIT_AUDIO OR SDL_INIT_VIDEO has the bit pattern 0000 0000 0000 0000 0000 0000 0011 0000.
In the source code SDL.c, each flag appears in expressions such as: flags & SDL_INIT_VIDEO (where & in c is the equivalent of the bitwise operator AND in Pascal). Confirm for yourself that this expression will evaluate to 0 (and be treated as False in C) if the video flag has not been included.
Note that the instruction SDL_Init(SDL_INIT_AUDIO OR SDL_INIT_VIDEO) will initialise the Audio and Video parts of SDL.