easySDL
(Mehr Informationen/weitere Artikel) {{{1}}} |
Phobeus: Kurze übersicht über easySDL und seiner Funktionalität geben. Dies ist mehr als ein Stub anzusehen.
Inhaltsverzeichnis
Wichtiger Hinweis
EasySDL befindet sich aktuell noch in einem sehr frühen experimentellen Status und kann daher an einigen Stellen noch massiv verändert werden. Bitte behaltet dies im Hinterkopf, wenn Ihr eine Software mit easySDL entwickelt. Für etwaige Fragen oder Anpassungsschwierigkeiten neuerer Versionen könnt ihr das Forum unter OpenGL verwenden.
Was ist easySDL?
EasySDL ist ein von DGL genormtes Framework, dass dazu dienen soll innerhalb kurzer Zeit einen Prototypen zu entwickeln oder möglichst einfach Source Code für ein Tutorial oder Sample zur Verfügung zu stellen. Es richtet sich nicht an Entwickler, die ein komplettes Projekt entwickeln wollen. Die Funktionen sind darauf ausgelegt, dass man mit wenig Aufwand schnell eine funktionierende Anwendung erhält ohne das die Anwendung aufgebläht wirkt. Es ist nicht das Ziel, dass easySDL ein komplettes Framework wird, dass für jedes Problem eine Lösung anbietet.
Da easySDL auf SDL basiert ist es zudem eine einfache Möglichkeit seine Beispiele auf mehre Plattformen zum laufen zu kriegen. So ist eine für easySDL geschriebene Anwendung (sofern keine fremden Bibliotheken verwendet werden) sofort unter Windows, Linux und FreeBSD verwendbar. EasySDL und seine Abhängigkeiten werden mit der DGLSDK installiert.
Module
easySDL.pas Enthält das Grundsystem für easySDL zum Initalisieren von Fenstern, der Verarbeitung von Events, sowie der grundlegenden Steuerung mit Tastatur und Maus.
easySDLTextures.pas Ein Texturemanager mit dessen Hilfe von wenigen Zeile eine Textur laden kann. Die Ansteuerung der Textur erfolgt über die gewohnt ID oder einem vergebenen Namen.
Funktionsweise
Fenster initalisieren
program easySDLSample; uses dglOpenGL, SDL, easySDL; type TMyProgram = class (TEasySDL) procedure DrawScene; override; end; var MyProgram :TMyProgram; procedure TMyProgram.DrawScene; begin glClear( GL_COLOR_BUFFER_BIT or GL_DEPTH_BUFFER_BIT ); glLoadIdentity; glTranslatef(0, 0,-6); glBegin(GL_TRIANGLES); glColor3f(1,0,0); glVertex3f(-1.0,-1.0, 0.0); glColor3f(0,0,1); glVertex3f(1.0,-1.0, 0.0); glColor3f(0,1,0); glVertex3f(0.0, 1.0, 0.0); glEnd(); end; begin MyProgram := TMyProgram.Create('www.delphigl.com .:. easySDL'); MyProgram.Start; MyProgram.Loop; MyProgram.Stop; end.
Texturen benutzten
Eingaben verarbeiten
// Bearbeitung der Events procedure TMyProgram.handleKey(keysym: TSDL_keysym); begin case keysym.sym of SDLK_F1 : done := -1; end; end; // Abfragen bei der Berechnung procedure TMyProgramm.UpdateWorld(Seconds:TGLFloat); begin if KeyDown(SDLK_D) then moveRight; if MouseDownOnce(SDL_BUTTON_LEFT) then doAction; end;
FAQ
- F : Darf ich easySDL verwenden?
Was für eine Frage! Das Framework wurde von DGL-Mitgliedern für DGL-Mitglieder entwickelt und ist definitiv dafür gedacht worden, verwendet zu werden. EasySDL untersteht der üblichen DGL-Lizenz und darf daher frei (auch in geschlossenen Projekten) verwendet werden, solange der Header innerhalb des Quellcodes erhalten bleibt. Wir bitten jedoch darum, dass Verbesserungen den Autoren mitgeteilt werden, damit diese in künftige Versionen von easySDL einfließen können. Sehr freuen wir uns natürlich auch über die Nennung von DGL in den Credits ;)
- F : Ersetzt easySDL SDL?
Ein klares Nein! EasySDL baut auf SDL auf und kapselt dessen Funktionalität in Form einiger Klassen. SDL ist daher absolut notwendig um Anwendungen, die mit easySDL geschrieben wurden zum laufen zu bekommen.