Google Summer of Code bringt einige Neuerungen für SDL
Wie bereits vor Beginn des Google Summer of Code im SDL-Newsletter angekündigt wurde, nahm das SDL-Projekt dieses Jahr an dem von Google gestarteten Projekts teil. Und dies durchaus erfolgreich, denn einige wichtigen Neuerungen wurden in SDL implementiert, darunter ein Port für Android und Unterstützung für Multitouch und Fingergesten. Die Ankündigung auf der Mailingliste findet man hier, dort kann man auch den Quellcode herunterladen.
[C++] Bildschirmauflösung und Farbtiefe aus Datei lesen
Die Datei hat diese Struktur:
settings.ini:
Width = "640";
Height = "480";
BPP = "32";
Die Variablen liest man mit diesem Code aus:
// Variablen
int width;
int height;
int bpp;
// Konfigurationsdatei auslesen
ifstream in("settings.ini");
char c;
for( string key, value
; in >> key >> c && c == '='
&& in >> c && c == '"'
&& getline( in, value, '"' ); )
{
if( key == "Width" )
{
// in int umwandeln und in variable speichern
width = atoi(&value[0]);
}
else if(key == "Height")
{
// in int umwandeln und in variable speichern
height = atoi(&value[0]);
}
else if(key == "BPP")
{
// in int umwandeln und in variable speichern
bpp = atoi(&value[0]);
}
if( in >> c && c != ';' )
in.setstate( ios_base::failbit );
}
Das Fenster erzeugt man mit SDL wie gewohnt und setzt statt festen Werten die durch den Benutzer veränderbaren Variablen ein:
// Fenster erzeugen
SDL_Surface *screen = SDL_SetVideoMode(width, height, bpp, SDL_DOUBLEBUF);