Additions:
Additions:
Der Basisaufbau eines Grafikfensters ist sehr übersichtlich und besteht nur aus wenigen Codezeilen, wie das folgende Programm beweist. Es öffnet ein Fenster, setzt den Fenstertitel und startet eine Spielschleife, die mit Escape/Quit beendet wird.
Deletions:
Der Basisaufbau einer Windows-Anwendung ist sehr übersichtlich und besteht nur aus wenigen Codezeilen, wie das folgende Programm beweist. Es öffnet ein Fenster, setzt den Fenstertitel und startet eine Spielschleife, die mit Escape/Quit beendet wird.
Additions:
Initialisierung der SDL und Erzeugung eines Fensters
Deletions:
Initialisierung der SDL
Additions:
#include "SDL.h"
#include "SDL.h"
Deletions:
#include <SDL/SDL.h>
#include <SDL/SDL.h>
Additions:
%%(cpp;1;SDL_Fenster.c)
if ((SDL_Init( SDL_INIT_VIDEO )
-1)) {
Deletions:
%%(cpp;1;SDL_Fenster.cpp)
if ((SDL_Init( SDL_INIT_VIDEO )
-1)) {
Additions:
Der Basisaufbau einer Windows-Anwendung ist sehr übersichtlich und besteht nur aus wenigen Codezeilen, wie das folgende Programm beweist. Es öffnet ein Fenster, setzt den Fenstertitel und startet eine Spielschleife, die mit Escape/Quit beendet wird.
%%(cpp;1;SDL_Fenster.cpp)
#include <SDL/SDL.h>
enum {
SCREENWIDTH = 800,
SCREENHEIGHT = 400,
SCREENBPP = 0,
SCREENFLAGS = SDL_ANYFORMAT
};
if ((SDL_Init( SDL_INIT_VIDEO )
-1)) {
atexit ( SDL_Quit );
SDL_Surface* pSurface = SDL_SetVideoMode ( SCREENWIDTH, SCREENHEIGHT,
SCREENBPP, SCREENFLAGS );
SDL_WM_SetCaption( "capribeach software", 0 );
SDL_Event event;
for ( ; ; )
{
if ( SDL_PollEvent ( &event ))
{
if ( event.type
SDL_QUIT ) break;
}
return ( 0 );
Additions:
Das folgende Programmbeispiel zeigt, wie die SDL mit den voreingestellten Subsystemen sowie Video und Audio initialisiert wird. Über printf werden die Schritte im Standard-Outputstream (stdout.txt) dokumentiert, und bei einem Problem wirft die Funktion SDL_GetError() ihre Fehlermeldung aus.
Deletions:
Das folgende Programmbeispiel zeigt, wie die SDL mit den voreingestellten Subsystemen sowie Video und Audio initialisiert wird. Über printf werden die Schritte dokumentiert, und bei einem Problem wirft die Funktion SDL_GetError() ihre Fehlermeldung im Standard-Outputstream (stdout.txt) aus.
Additions:
Jedes SDL-System muss sich am Ende auch wieder mit einem Quit-Befehl verabschieden. Der Aufruf von SDL_Init wird mit SDL_Quit abgeschlossen. Dieser Befehl fährt sämtliche Subsysteme herunter. Es können auch einzelne Subsysteme über SDL_QuitSubSystem im Verlaufe eines größeren Programmes beendet und damit deaktiviert werden. Zur Überprüfung einer sauberen Initialisierung der SDL kann der Rückgabewert von SDL_Init dienen. Wenn eines der Subsysteme nicht initialisiert werden konnte, dann liefert die Funktion SDL_Init den Wert -1 zurück. Zur Fehlerdiagnose stellt die SDL Mitteilungen bereit, die nähere Hinweise über die Art des Problemes geben. Immer wenn ein Fehler auftritt, speichert die SDL eine entsprechende Mitteilung. Diese kann mit der Funktion SDL_GetError abgerufen werden.
Das folgende Programmbeispiel zeigt, wie die SDL mit den voreingestellten Subsystemen sowie Video und Audio initialisiert wird. Über printf werden die Schritte dokumentiert, und bei einem Problem wirft die Funktion SDL_GetError() ihre Fehlermeldung im Standard-Outputstream (stdout.txt) aus.
Deletions:
Jedes SDL-System muss sich am Ende auch wieder mit einem Quit-Befehl verabschieden. Der Aufruf von SDL_Init wird mit SDL_Quit abgeschlossen. Dieser Befehl fährt sämtliche Subsysteme herunter. Es können auch einzelne Subsysteme über SDL_QuitSubSystem im Verlaufe eines größeren Programmes beendet und damit deaktiviert werden. Zur Überprüfung einer sauberen Initialisierung der SDL kann der Rückgabewert von SDL_Init dienen. Wenn eines der Subsysteme nicht initialisiert werden konnte, dann liefert die Funktion SDL_Init den Wert -1 zurück. Zur Fehlerdiagnose stellt die SDL Mitteilungen bereit, die nähere Hinweise über die Art des Problemes geben. Immer wenn ein Fehler auftritt speichert die SDL eine entsprechende Mitteilung. Diese kann mit der Funktion SDL_GetError abgerufen werden.
Das folgende Programmbeispiel zeigt, wie die SDL mit den voreingestellten Subsystemen sowie Video und Audio initialisiert wird. Über printf werden die Schritte dokumentiert, und bei einem Problem wirft die Funktion SDL_GetError() ihre Fehlermeldung aus.
Additions:
%%(c;1;SDL_Initialisierung.c)
Deletions:
%%(cpp;1;SDL_Initialisierung.c)
No differences.
Additions:
#include <SDL/SDL.h>
#include <stdio.h>
int main ( int argc, char** argv )
{
printf("Initialisierung der SDL.\n");
if ((SDL_Init(SDL_INIT_VIDEO | SDL_INIT_AUDIO) == -1)) {
printf("Houston wir haben ein SDL-Problem: %s.\n", SDL_GetError());
exit(-1);
}
printf("SDL wurde initialisiert.\n");
printf("Beenden der SDL.\n");
SDL_Quit();
printf("SDL-Systeme heruntergefahren...\n");
exit(0);
}
No differences.
Initialisierung der SDL
Die Grafikbibliothek SDL (Simple Direct Media Layer) besteht aus acht Blöcken. Diese Subsysteme stellen Funktionen für fast alle Bereiche der Spieleprogrammierung zur Verfügung:
Audio
CDROM
Event Handling
File I/O
Joystick Handling
Threading
Timers
Video
Bevor eines dieser Subsysteme zum Einsatz kommen kann, muss es initialisiert werden, und zwar über die Befehle SDL_Init und SDL_InitSubSystem. SDL_Init initialisiert auf einen Schlag die Abteilungen Event Handling, File I/O und Threading. Wer diesen Befehl verwendet und das Subsystem für die Grafikfunktionen Video initialisiert, kann auf die Kernfunktionen der SDL zugreifen. Dazu ist lediglich eine Codezeile notwendig:
SDL_Init ( SDL_INIT_VIDEO );
Um die voreingestellten drei SDL-Systeme (Event Handling, File I/O, Threading), das Videosystem und das Timersystem in Gang zu setzen, kann folgender Code geschrieben werden:
SDL_Init ( SDL_INIT_VIDEO | SDL_INIT_TIMER );
Wer auf Audio, CDROM oder Joystick Handling zugreifen will, kann die Initialisierung dieser Subsysteme der SDL in entsprechender Weise vornehmen und die einzelnen Subsysteme jeweils getrennt durch das Pipesymbol | auflisten.
Jedes SDL-System muss sich am Ende auch wieder mit einem Quit-Befehl verabschieden. Der Aufruf von SDL_Init wird mit SDL_Quit abgeschlossen. Dieser Befehl fährt sämtliche Subsysteme herunter. Es können auch einzelne Subsysteme über SDL_QuitSubSystem im Verlaufe eines größeren Programmes beendet und damit deaktiviert werden. Zur Überprüfung einer sauberen Initialisierung der SDL kann der Rückgabewert von SDL_Init dienen. Wenn eines der Subsysteme nicht initialisiert werden konnte, dann liefert die Funktion SDL_Init den Wert -1 zurück. Zur Fehlerdiagnose stellt die SDL Mitteilungen bereit, die nähere Hinweise über die Art des Problemes geben. Immer wenn ein Fehler auftritt speichert die SDL eine entsprechende Mitteilung. Diese kann mit der Funktion SDL_GetError abgerufen werden.
Das folgende Programmbeispiel zeigt, wie die SDL mit den voreingestellten Subsystemen sowie Video und Audio initialisiert wird. Über printf werden die Schritte dokumentiert, und bei einem Problem wirft die Funktion SDL_GetError() ihre Fehlermeldung aus.