0,0 → 1,232 |
<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 |
> |