232 lines
4.3 KiB
HTML
232 lines
4.3 KiB
HTML
|
<HTML
|
||
|
><HEAD
|
||
|
><TITLE
|
||
|
>Initializing SDL</TITLE
|
||
|
><META
|
||
|
NAME="GENERATOR"
|
||
|
CONTENT="Modular DocBook HTML Stylesheet Version 1.64
|
||
|
"><LINK
|
||
|
REL="HOME"
|
||
|
TITLE="SDL Library Documentation"
|
||
|
HREF="index.html"><LINK
|
||
|
REL="UP"
|
||
|
TITLE="The Basics"
|
||
|
HREF="guidethebasics.html"><LINK
|
||
|
REL="PREVIOUS"
|
||
|
TITLE="The Basics"
|
||
|
HREF="guidethebasics.html"><LINK
|
||
|
REL="NEXT"
|
||
|
TITLE="Graphics and Video"
|
||
|
HREF="guidevideo.html"></HEAD
|
||
|
><BODY
|
||
|
CLASS="SECT1"
|
||
|
BGCOLOR="#FFF8DC"
|
||
|
TEXT="#000000"
|
||
|
LINK="#0000ee"
|
||
|
VLINK="#551a8b"
|
||
|
ALINK="#ff0000"
|
||
|
><DIV
|
||
|
CLASS="NAVHEADER"
|
||
|
><TABLE
|
||
|
WIDTH="100%"
|
||
|
BORDER="0"
|
||
|
CELLPADDING="0"
|
||
|
CELLSPACING="0"
|
||
|
><TR
|
||
|
><TH
|
||
|
COLSPAN="3"
|
||
|
ALIGN="center"
|
||
|
>SDL Library Documentation</TH
|
||
|
></TR
|
||
|
><TR
|
||
|
><TD
|
||
|
WIDTH="10%"
|
||
|
ALIGN="left"
|
||
|
VALIGN="bottom"
|
||
|
><A
|
||
|
HREF="guidethebasics.html"
|
||
|
>Prev</A
|
||
|
></TD
|
||
|
><TD
|
||
|
WIDTH="80%"
|
||
|
ALIGN="center"
|
||
|
VALIGN="bottom"
|
||
|
>Chapter 1. The Basics</TD
|
||
|
><TD
|
||
|
WIDTH="10%"
|
||
|
ALIGN="right"
|
||
|
VALIGN="bottom"
|
||
|
><A
|
||
|
HREF="guidevideo.html"
|
||
|
>Next</A
|
||
|
></TD
|
||
|
></TR
|
||
|
></TABLE
|
||
|
><HR
|
||
|
ALIGN="LEFT"
|
||
|
WIDTH="100%"></DIV
|
||
|
><DIV
|
||
|
CLASS="SECT1"
|
||
|
><H1
|
||
|
CLASS="SECT1"
|
||
|
><A
|
||
|
NAME="GUIDEBASICSINIT"
|
||
|
>Initializing SDL</A
|
||
|
></H1
|
||
|
><P
|
||
|
>SDL is composed of eight subsystems - Audio, CDROM, Event Handling, File I/O, Joystick Handling, Threading, Timers and Video. Before you can use any of these subsystems they must be initialized by calling <A
|
||
|
HREF="sdlinit.html"
|
||
|
><TT
|
||
|
CLASS="FUNCTION"
|
||
|
>SDL_Init</TT
|
||
|
></A
|
||
|
> (or <A
|
||
|
HREF="sdlinitsubsystem.html"
|
||
|
><TT
|
||
|
CLASS="FUNCTION"
|
||
|
>SDL_InitSubSystem</TT
|
||
|
></A
|
||
|
>. <TT
|
||
|
CLASS="FUNCTION"
|
||
|
>SDL_Init</TT
|
||
|
> must be called before any other SDL function. It automatically initializes the Event Handling, File I/O and Threading subsystems and it takes a parameter specifying which other subsystems to initialize. So, to initialize the default subsystems and the Video subsystems you would call:
|
||
|
<PRE
|
||
|
CLASS="PROGRAMLISTING"
|
||
|
> SDL_Init ( SDL_INIT_VIDEO );</PRE
|
||
|
>
|
||
|
To initialize the default subsystems, the Video subsystem and the Timers subsystem you would call:
|
||
|
<PRE
|
||
|
CLASS="PROGRAMLISTING"
|
||
|
> SDL_Init ( SDL_INIT_VIDEO | SDL_INIT_TIMER );</PRE
|
||
|
></P
|
||
|
><P
|
||
|
><TT
|
||
|
CLASS="FUNCTION"
|
||
|
>SDL_Init</TT
|
||
|
> is complemented by <A
|
||
|
HREF="sdlquit.html"
|
||
|
><TT
|
||
|
CLASS="FUNCTION"
|
||
|
>SDL_Quit</TT
|
||
|
></A
|
||
|
> (and <A
|
||
|
HREF="sdlquitsubsystem.html"
|
||
|
><TT
|
||
|
CLASS="FUNCTION"
|
||
|
>SDL_QuitSubSystem</TT
|
||
|
></A
|
||
|
>). <TT
|
||
|
CLASS="FUNCTION"
|
||
|
>SDL_Quit</TT
|
||
|
> shuts down all subsystems, including the default ones. It should always be called before a SDL application exits.</P
|
||
|
><P
|
||
|
>With <TT
|
||
|
CLASS="FUNCTION"
|
||
|
>SDL_Init</TT
|
||
|
> and <TT
|
||
|
CLASS="FUNCTION"
|
||
|
>SDL_Quit</TT
|
||
|
> firmly embedded in your programmers toolkit you can write your first and most basic SDL application. However, we must be prepare to handle errors. Many SDL functions return a value and indicates whether the function has succeeded or failed, <TT
|
||
|
CLASS="FUNCTION"
|
||
|
>SDL_Init</TT
|
||
|
>, for instance, returns -1 if it could not initialize a subsystem. SDL provides a useful facility that allows you to determine exactly what the problem was, every time an error occurs within SDL an error message is stored which can be retrieved using <TT
|
||
|
CLASS="FUNCTION"
|
||
|
>SDL_GetError</TT
|
||
|
>. Use this often, you can never know too much about an error.</P
|
||
|
><DIV
|
||
|
CLASS="EXAMPLE"
|
||
|
><A
|
||
|
NAME="AEN60"
|
||
|
></A
|
||
|
><P
|
||
|
><B
|
||
|
>Example 1-1. Initializing SDL</B
|
||
|
></P
|
||
|
><PRE
|
||
|
CLASS="PROGRAMLISTING"
|
||
|
>#include "SDL.h" /* All SDL App's need this */
|
||
|
#include <stdio.h>
|
||
|
|
||
|
int main() {
|
||
|
|
||
|
printf("Initializing SDL.\n");
|
||
|
|
||
|
/* Initialize defaults, Video and Audio */
|
||
|
if((SDL_Init(SDL_INIT_VIDEO|SDL_INIT_AUDIO)==-1)) {
|
||
|
printf("Could not initialize SDL: %s.\n", SDL_GetError());
|
||
|
exit(-1);
|
||
|
}
|
||
|
|
||
|
printf("SDL initialized.\n");
|
||
|
|
||
|
printf("Quiting SDL.\n");
|
||
|
|
||
|
/* Shutdown all subsystems */
|
||
|
SDL_Quit();
|
||
|
|
||
|
printf("Quiting....\n");
|
||
|
|
||
|
exit(0);
|
||
|
} </PRE
|
||
|
></DIV
|
||
|
></DIV
|
||
|
><DIV
|
||
|
CLASS="NAVFOOTER"
|
||
|
><HR
|
||
|
ALIGN="LEFT"
|
||
|
WIDTH="100%"><TABLE
|
||
|
WIDTH="100%"
|
||
|
BORDER="0"
|
||
|
CELLPADDING="0"
|
||
|
CELLSPACING="0"
|
||
|
><TR
|
||
|
><TD
|
||
|
WIDTH="33%"
|
||
|
ALIGN="left"
|
||
|
VALIGN="top"
|
||
|
><A
|
||
|
HREF="guidethebasics.html"
|
||
|
>Prev</A
|
||
|
></TD
|
||
|
><TD
|
||
|
WIDTH="34%"
|
||
|
ALIGN="center"
|
||
|
VALIGN="top"
|
||
|
><A
|
||
|
HREF="index.html"
|
||
|
>Home</A
|
||
|
></TD
|
||
|
><TD
|
||
|
WIDTH="33%"
|
||
|
ALIGN="right"
|
||
|
VALIGN="top"
|
||
|
><A
|
||
|
HREF="guidevideo.html"
|
||
|
>Next</A
|
||
|
></TD
|
||
|
></TR
|
||
|
><TR
|
||
|
><TD
|
||
|
WIDTH="33%"
|
||
|
ALIGN="left"
|
||
|
VALIGN="top"
|
||
|
>The Basics</TD
|
||
|
><TD
|
||
|
WIDTH="34%"
|
||
|
ALIGN="center"
|
||
|
VALIGN="top"
|
||
|
><A
|
||
|
HREF="guidethebasics.html"
|
||
|
>Up</A
|
||
|
></TD
|
||
|
><TD
|
||
|
WIDTH="33%"
|
||
|
ALIGN="right"
|
||
|
VALIGN="top"
|
||
|
>Graphics and Video</TD
|
||
|
></TR
|
||
|
></TABLE
|
||
|
></DIV
|
||
|
></BODY
|
||
|
></HTML
|
||
|
>
|