hi,
Ich bin gerade dabei mir ne kleine 2D-Engine zu basteln und der erste Schritt dabei ist das programmieren einer kleinen SDL-Wrapper Klasse.
Doch schon hierbei hapert es
Versuch ich mein Programm zu starten kompiliert er es zunächst Problemlos ,doch nach dem starten bekomme ich ein Popup mit einer SIGSEV nachricht welches mich auf diese procedure meiner Klasse verweist:
Code:
procedure TScreen.flip;
begin
SDL_GL_SwapBuffers;
end;
Ich kann mir ehrlichgesagt nicht vorstellen wo da der Fehler sein könnte, zumal ich diesen SDL-Wrapper auch schon in C++ verwendet habe...
Falls ihr noch nähere Informationen braucht lasst es mich Wissen. (hab auch Quellcode der Klasse beigelegt ,ist sehr wenig)
Danke für die Hilfe, n!x:wink:
P.S: Ich möchte noch schnell darauf hinweisen das ich kein Delphi sondern fpc verwende (dürfte aber wohl hierbei keinen unterschied machen).
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
Registriert: Sa Jan 01, 2005 17:11 Beiträge: 2068
Programmiersprache: C++
Bist du dir sicher das du SDL richtig initialisiert hat?
Du rufst ja nur SDL_INIT(SDL_INIT_VIDEO) und SDL_SetVideoMode auf.
Die Varibale FFlags enthält aber (zumindest im Quellcode) keine Flags.
Vorallem nicht dem Flag SDL_OPENGL.
Somit ist das SDL-OpenGL-System nicht initialisiert und der Befehl Flush kann nicht funktionieren.
Andere Frage:
Müsste es nicht:
TScreen =class(TObject) heissen?
TScreen=class
bedeutet doch nur, dass später eine Classe mit den Namen noch definiert wird?
Registriert: Mi Apr 13, 2005 16:06 Beiträge: 67 Wohnort: Fulda
i0n0s hat geschrieben:
Andere Frage: Müsste es nicht: TScreen =class(TObject) heissen? TScreen=class bedeutet doch nur, dass später eine Classe mit den Namen noch definiert wird?
Nein, zumindest bei Delphi sind class und class(TObject) gleichbedeutend.
Registriert: Do Dez 05, 2002 10:35 Beiträge: 4234 Wohnort: Dortmund
Da hat Robert recht. In Delphi stammen alle Klassen immer von TObject ab. Den Klassenamen definierst du nur dann, wenn direkt dahinter ein Semikolon steht.
Ich weiß nicht ob das Probleme machen kann. Aber in Delphi ist die Klasse TScreen bereits definiert. Glaube aber nicht, dass es daran liegt, da sonst der Kompiler bereits gespruckt hätte.
Meintest du vielleicht SIGSEGV? Und dazu hat mir Google folgendes ausgespuckt. Da wird gezeigt, dass so etwas passiert, wenn man auf einen nicht initialisierten Pointer zugreift. Würde also Schlussfolgern, dass das Laden des Pointers der Methode SDL_GL_SwapBuffers nicht geklappt oder nicht stattgefunden hat.
PS: Kann es sein, dass du unter Linux entwickelst?
Mitglieder in diesem Forum: 0 Mitglieder und 7 Gäste
Du darfst keine neuen Themen in diesem Forum erstellen. Du darfst keine Antworten zu Themen in diesem Forum erstellen. Du darfst deine Beiträge in diesem Forum nicht ändern. Du darfst deine Beiträge in diesem Forum nicht löschen. Du darfst keine Dateianhänge in diesem Forum erstellen.