Willkommen ~Gast!
Registrieren || Einloggen || Hilfe/FAQ || Staff
Probleme mit der Registrierung im Forum? Melde dich unter registerEin Bild.
Autor Beitrag
000
09.11.2001, 08:48
Jehova-3



Also vorweg wollte ich mal sagen, daß mich die Tutorials von Prefect dazu gebracht haben, mich ein wenig damit zu beschäftigen und die Tutorials haben mir den Einstieg auch auf jeden Fall erleichtert und ich warte gierig auf weitere Tutorials ;) (hoffentlich greife ich da jetzt nicht vor)

Nun zu meinen Fragen:
1.
Ich habe das Programm des vierten SDL Tutorials ein wenig geändert, indem ich die Bildschirmgröße auf 1024x768 setzte und dementsprechend die Begrenzung für die Galaxien auf 1024x1024 gesetzt habe und eine Zählroutine hinzugefügt, welche Zählt, wie oft pro Sekunde der Bildschirm wieder erneuert wird.
Naja, ich habe das ganze dann einfach mal durchlaufen lassen und -oh Schreck- meine Ausbeute betrug magere 25 Bilder pro Sekunde :( (Wenn man bedenkt, daß ich bei HL bei einer höheren Auflösung und wesentlich mehr Action ;) im Schnitt drei mal so viele FPS habe), da das natürlich absolut inakzeptabel war habe ich dann ein wenig mit den Routinen rumgespielt um kam dann letztendlich dazu den Screen mit dem Flag SDL_DOUBLEBUF zu initialisieren, was letztendlich zu einer Leistungsteigerung auf 85 FPS führte, was mich auch wirklich wieder etwas zufrieden stimmte, wäre nicht plötzlich der Mauszeiger verschwunden.
Die eigentliche Frage lautet, wie krieg ich den Mauszeiger wieder ?
2.
Die andere kürzere Frage wäre dann noch, gibt es in SDL eine Möglichkeit Bilder zu drehen ?

PS. Ich bin mir ziemlich sicher, daß ich noch was schreiben wollte, ich weiß bloß nicht mehr was :D

--

Are you gonna miss me ?
Only until I go to the Newsstand and buy a Hustler

zum Seitenanfang zum Seitenende Profil || Suche
001
09.11.2001, 09:07
Jehova-3



Uhh, hätte ich doch fast vergessen zu erwähnen, daß das ganze im Vollbildmodus läuft.

--

Are you gonna miss me ?
Only until I go to the Newsstand and buy a Hustler

zum Seitenanfang zum Seitenende Profil || Suche
002
09.11.2001, 14:20
Prefect



Also das mit dem Mauszeiger kann ich nun wirklich nicht erklären. Ansonsten wäre es interessant zu wissen, auf was für einem System du das Programm laufen ließt. Betriebssystem, Grafikkarte, Prozessor, Bildschirmmodus usw..

Ich werde mich wohl zwangsweise auch noch mit Optimierungen beschäftigen, in nicht all zu ferner Zukunft. Dennoch wäre es ganz interessant, ein paar Tests zu machen.

Zuerst einmal: könntest du alle Framerates bei verschiedenen Bildschirmauflösungen (640x480, 800x600 und 1024x768) messen, wobei du wenn möglich auch noch die Farbtiefe veränderst (dritter Parameter von SDL_SetVideoMode)?

Wenn du alle Werte komplett hast, ersetze den SDL_LoadBMP("galaxien.bmp") Aufruf mal durch folgendes:

Quellcode:
{
SDL_Surface *temp;
temp = SDL_LoadBMP("galaxien.bmp");
if (!temp) {
fprintf(stderr, "galaxien.bmp konnte nicht geladen werden: %s\n",
SDL_GetError());
exit(1);
}
g_pSurfGalaxies = SDL_ConvertSurface(temp, g_pSurfScreen->format,
g_pSurfScreen->flags & SDL_HWSURFACE);
if (!g_pSurfGalaxies) {
fprintf(stderr, "Konnte galaxien.bmp nicht konvertieren: %s\n",
SDL_GetError());
exit(1);
}
SDL_FreeSurface(temp);
}

Es wäre interessant zu wissen, wie groß jeweils die Performanceunterschiede sind, besonders bei unterschiedlichen Farbtiefen. Der Clou ist nämlich, daß SDL_LoadBMP() das Bitmap in der originalen Farbtiefe lädt und nicht in der Farbtiefe des Bildschirms. Zudem wird das Bitmap im RAM und nicht auf der Grafikkarte gespeichert (SDL_HWSURFACE).

Ich hatte vor auf all diese Aspekte noch in einem späteren Kapitel einzugehen. Bei mir läuft das Programm selbst unter X Windows (und das ist verdammt langsam) mit 100fps (Bildwiederholfrequenz), von daher bin ich davon ausgegangen, daß ich die Optimierung etwas nach hinten verschieben kann und dafür dann mit ausgiebigen Tests ausschmücken könnte.

Und nein, es gibt keine Möglichkeit, Bilder zu drehen außer du programmierst das selbst. Oder aber du verwendest OpenGL. Wie man OpenGL von SDL aus verwendet werde ich wohl auch noch irgendwann einmal behandeln.

cu,
Prefect

--

Widelands - Gemütliche Aufbaustrategie, Free Software
Noch ein Blog - Lerne, wie die Welt wirklich ist, aber vergiss niemals, wie sie sein sollte.

zum Seitenanfang zum Seitenende Profil || Suche
003
09.11.2001, 19:04
Jehova-3



Zum System:
Win2k
3D Prophet II MX
750 MHz Duron
256 MB RAM

Zum Posten der Werte bei verschiedenen Bildschirmmodi komme ich später nochmal, wenn ich mal die ganzen Werte ausprobiert habe.

--

Are you gonna miss me ?
Only until I go to the Newsstand and buy a Hustler

zum Seitenanfang zum Seitenende Profil || Suche
004
10.11.2001, 04:31
Jehova-3



So, und nun zu den Frameraten

Ich hab einfach das das Programm von mir ein bischen umgeschrieben um meine Framezahlen in verschiedenen Modi zu testen und poste hier einfach mal den Quellcode, das fertige Programm sowie die Ergebnisse, liegen in der verlinkten Datei.

http://members.tripod.de/Scana/tools/Bildschirmtest.zip

PS. es gibt jetzt zwar keine Bewegung im Bild, allerdings sind die Ergebnisse immer noch vergleichbar mit den Werten, die beim alten Programm erstellt wurden.

--

Are you gonna miss me ?
Only until I go to the Newsstand and buy a Hustler


Dieser Beitrag wurde am 10.11.2001 um 04:33 von Jehova-3 bearbeitet.
zum Seitenanfang zum Seitenende Profil || Suche