You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
240 lines
4.5 KiB
240 lines
4.5 KiB
<HTML |
|
><HEAD |
|
><TITLE |
|
>Initializing SDL</TITLE |
|
><META |
|
NAME="GENERATOR" |
|
CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+ |
|
"><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 |
|
SUMMARY="Header navigation 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" |
|
ACCESSKEY="P" |
|
>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" |
|
ACCESSKEY="N" |
|
>Next</A |
|
></TD |
|
></TR |
|
></TABLE |
|
><HR |
|
ALIGN="LEFT" |
|
WIDTH="100%"></DIV |
|
><DIV |
|
CLASS="SECT1" |
|
><H1 |
|
CLASS="SECT1" |
|
><A |
|
NAME="GUIDEBASICSINIT" |
|
></A |
|
>Initializing SDL</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(int argc, char *argv[]) { |
|
|
|
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 |
|
SUMMARY="Footer navigation table" |
|
WIDTH="100%" |
|
BORDER="0" |
|
CELLPADDING="0" |
|
CELLSPACING="0" |
|
><TR |
|
><TD |
|
WIDTH="33%" |
|
ALIGN="left" |
|
VALIGN="top" |
|
><A |
|
HREF="guidethebasics.html" |
|
ACCESSKEY="P" |
|
>Prev</A |
|
></TD |
|
><TD |
|
WIDTH="34%" |
|
ALIGN="center" |
|
VALIGN="top" |
|
><A |
|
HREF="index.html" |
|
ACCESSKEY="H" |
|
>Home</A |
|
></TD |
|
><TD |
|
WIDTH="33%" |
|
ALIGN="right" |
|
VALIGN="top" |
|
><A |
|
HREF="guidevideo.html" |
|
ACCESSKEY="N" |
|
>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" |
|
ACCESSKEY="U" |
|
>Up</A |
|
></TD |
|
><TD |
|
WIDTH="33%" |
|
ALIGN="right" |
|
VALIGN="top" |
|
>Graphics and Video</TD |
|
></TR |
|
></TABLE |
|
></DIV |
|
></BODY |
|
></HTML |
|
> |