Bilder bei der SDL strecken
-
Gibt es bei der SDL irgendeine Funktion, die wie StretchBlt funktioniert? Das normale Kopieren funktioniert ja mit SDL_BlitSurface. Aber ich würde eben auch gern ein Bild strecken. Zumindest was das fertige Bild für das Fenster angeht. Es muß ja nichtmal so sein, daß ich ein einzelnes Bild auf ein anderes strecke. Es reicht, wenn ich das Bild, das dann auf das Fenster kopiert wird, strecken kann. Wenn es keine direkte Funktion dafür gibt, gibt es dann wenigstens eine Möglichkeit, das trotzdem irgendwie hinzukriegen? (Nearest Neighbor reicht übrigens. Es soll kein bilinearer Filter sein.)
-
SDL_gfx oder SDL + OpenGL oder selber implementieren. Das sind AFAIK so die Möglichkeiten.
-
Keine native Unterstützung in der eigentlichen SDL? Wie kommt das? Ich meine, das ist doch eigentlich grundlegendes Zeug. Gibt's eine Erklärung, wieso das weggelassen wurde?
-
NES-Spieler schrieb:
Keine native Unterstützung in der eigentlichen SDL? Wie kommt das? Ich meine, das ist doch eigentlich grundlegendes Zeug. Gibt's eine Erklärung, wieso das weggelassen wurde?
Die SDL ist eigentlich eine effiziente Implementierung eines Pixel-Buffers. Also die Aufgabe der SDL ist es Pixel auf den Bildschirm zu bringen. Und das möglichst schnell. Ein Bild zu strecken passt da nicht wirklich ins Konzept. Dafür brauchst du schon einen relativ rechenintensiven Algorithmus oder 3D-Hardware.
-
ProgChild schrieb:
Also die Aufgabe der SDL ist es Pixel auf den Bildschirm zu bringen. Und das möglichst schnell.
Ich dachte, die Aufgabe der SDL ist es, eine Lib zu liefern, um Programme wie Spiele einfach und plattformunabhängig erstellen zu können? Und dafür ist Vergrößerung meiner Meinung nach notwendig.
ProgChild schrieb:
Ein Bild zu strecken passt da nicht wirklich ins Konzept. Dafür brauchst du schon einen relativ rechenintensiven Algorithmus oder 3D-Hardware.
3D-Hardware?
-
NES-Spieler schrieb:
Ich dachte, die Aufgabe der SDL ist es, eine Lib zu liefern, um Programme wie Spiele einfach und plattformunabhängig erstellen zu können? Und dafür ist Vergrößerung meiner Meinung nach notwendig.
Dann nimm SDL_gfx oder OpenGL.
NES-Spieler schrieb:
3D-Hardware?
Die (traditionell) einzige rechenintensive Operation, die eine Grafikkarte auszuführen hat, ist das strecken und stauchen von Bildern (texturen). Die restlichen Operationen sind da vernachlässigbar.
-
Also, die SFML kann Bilder strecken. Das wird sogar automatisch gemacht, wenn ich das Fenster größer ziehe, da muß ich nicht eine einzige Codezeile für schreiben. Auch ist die SFML weitaus schneller als die SDL. Ich werde dann wohl damit arbeiten. Oder gibt's da irgendeinen Nachteil gegenüber anderen Frameworks, den ich noch wissen sollte?
-
SDL läuft auf mehr Plattformen. Ansonsten kenne ich SFML nicht gut genug, um da mehr zu sagen.