ich wollte mit einem kollegen zusammen eine kleine 3d-engine basteln.
Sollte dann so laufen, dass das cross-compilierbar sein soll mindestens linux windows.
wir wollten FPC2.2.2, lazarus und SDL benutzen.
nun habe ich mal versucht die jedi sdl und eure sdl header auf meiner kiste (linux debian etch) zu compilieren.
Leider bekomme ich einen haufen typecast fehlermeldungen. habe eine amd X86_64 CPU, denke das ist das problem.
kennt jemand eine loesung oder hatte diese probleme schon einmal?
Registriert: Do Sep 02, 2004 19:42 Beiträge: 4158
Programmiersprache: FreePascal, C++
64-Bit und SDL sind ein kleines großes Problem. Zumindest mit FPC. Die C header sollten dafür eventuell sogar auf aktuellerem Stand sein, ich weiss es nicht. Auf jeden Fall hatte ich da schon meine Probleme mit Texturen, die zwar von SDL_image geladen werden (und auch als bitmap gespeichert werden können), dann aber bei openGL nicht ankommen.
Ich würde das ganze erstmal mit Compilertarget i386 entwickeln und dann zusehen, wie man es für 64 ready macht.
Gruß Lord Horazont
_________________ If you find any deadlinks, please send me a notification – Wenn du tote Links findest, sende mir eine Benachrichtigung. current projects: ManiacLab; aioxmpp zombofant network • my photostream „Writing code is like writing poetry“ - source unknown
„Give a man a fish, and you feed him for a day. Teach a man to fish and you feed him for a lifetime. “ ~ A Chinese Proverb
Registriert: Di Okt 03, 2006 14:07 Beiträge: 1277 Wohnort: Wien
Ich habe auch eine 64 Bit CPU, weil das zu meinem System so schön dazupasst. Aber ich habe - um eben solche Probleme zu vermeiden - sowohl in Windows als auch in Linux jeweils ein 32 bit Betriebssystem draufgespielt und verwende auch den 32-Bit FPC-Compiler. Ich verwende zwar kein SDL, aber Opengl verwende ich auch. Und ich habe keine Probleme irgendwelche Texturen zu laden oder Schriften anzuzeigen.
Und ich werde auch bestimmt erst dann auf 64 bit umsteigen, wenn mir mehrere (zumindest 20) VERLÄSSLICHE Berichte über korrekt laufende Anwendungen vorliegen. Derzeit scheint das nicht der Fall zu sein.
Meine Programme verhalten sich in Windows (XP 32 Bit SP 2) und Linux (Ubuntu Hardy Heron 32 bit) vollkommen gleich stabil.
Traude
Registriert: Do Sep 02, 2004 19:42 Beiträge: 4158
Programmiersprache: FreePascal, C++
Das Problem bei Linux betrifft einzig und allein das übertragen von Texturen von SDL zu OpenGL (z.B. beim Laden mit sdl_image). Meine vermutung ist, dass die Pointer im SDL_Surface-Ding nicht ganz in ordnung sind.
Gruß Lord Horazont
_________________ If you find any deadlinks, please send me a notification – Wenn du tote Links findest, sende mir eine Benachrichtigung. current projects: ManiacLab; aioxmpp zombofant network • my photostream „Writing code is like writing poetry“ - source unknown
„Give a man a fish, and you feed him for a day. Teach a man to fish and you feed him for a lifetime. “ ~ A Chinese Proverb
Registriert: Do Dez 05, 2002 10:35 Beiträge: 4234 Wohnort: Dortmund
Bei meinen Fonts weiß ich, dass die Größen die ich von SDL bekomme ziemlicher murks sind. 0x15 für die Größe von Buchstaben. Stimme da aber durch aus zu, dass dort irgendwas mit den Strukturen nicht stimmt. Obendrein ist die dglOpenGL aber auch nicht 64Bit kompatibel. Und FPC hatte bis vor kurzem auch noch einige Probleme mit 64Bit (glaube aber mittlerweile stabil).
Generell noch was zu 64Bit: Man sollte eventuell auch überlegen ob man nicht lieber eine 32Bit und 64Bit Versionen (oder nur 32Bit) zur Verfügung stellt. Denn eine 32Bit Anwendung läuft auf einem 64Bit Betriebssystem trotzdem noch. Wären eine 64Bit Anwendung zwingend 64Bit Hardware und ein 64Bit Betriebssystem vorrasusetzt. Wenn man also seine Anwendung weiter geben möchte kann man sich mit nur einer 64Bit Version schnell ins aus schießen. Denn ich denke der 32Bit Systeme Anteil ist noch deutlich höher als der 64er.
Registriert: Do Sep 02, 2004 19:42 Beiträge: 4158
Programmiersprache: FreePascal, C++
Hu? (dgl)OpenGL Funktioniert auch nicht offiziell unter 64-Bit systemen? Das erklärt einiges ...
Gruß Lord Horazont
_________________ If you find any deadlinks, please send me a notification – Wenn du tote Links findest, sende mir eine Benachrichtigung. current projects: ManiacLab; aioxmpp zombofant network • my photostream „Writing code is like writing poetry“ - source unknown
„Give a man a fish, and you feed him for a day. Teach a man to fish and you feed him for a lifetime. “ ~ A Chinese Proverb
Tanila: Lässt es sich nur kompilieren oder funktioniert es auch? Weswegen ich Frage. Meine Fonts lassen sich unter 64Bit auch kompilieren. Nur wenn man sie startet, dann gibt es an verschiedenen Stellen Fehler.
@ Lossy eX: Im Moment konnte ich noch nichts wirklich ausprobieren, obs auch funktioniert. Lediglich das compilieren klappt nun. Habe einige Demos von den SDL-JEDies zum laufen gekommen. Aber eben auch nicht alle ausprobiert.
Ich geb euch n Report, was geht und was nicht, wenn ich dazu komm.
Registriert: Do Sep 02, 2004 19:42 Beiträge: 4158
Programmiersprache: FreePascal, C++
Oh, stimmt. Das hatte ich ganz vergessen. Aber wegen diesem geringen Problem mit THandle/Pointer sollte es entweder komplett crashen beim ersten Funktionsaufruf oder halt eigentlich garnicht.
Gruß Lord Horazont
_________________ If you find any deadlinks, please send me a notification – Wenn du tote Links findest, sende mir eine Benachrichtigung. current projects: ManiacLab; aioxmpp zombofant network • my photostream „Writing code is like writing poetry“ - source unknown
„Give a man a fish, and you feed him for a day. Teach a man to fish and you feed him for a lifetime. “ ~ A Chinese Proverb
Registriert: Di Mai 18, 2004 16:45 Beiträge: 2623 Wohnort: Berlin
Programmiersprache: Go, C/C++
Als ich noch mit fpc gearbeitet habe, hatte ich anfangs auch Probleme mit sdl,dglopengl unter 64bit windows xp und fedora 64bit aber bei mir lief es.
Ich hab mal kurz in mein svn geguckt und fand am dglopengl.pas nur ein einzigen fix.
https://svn.linuxprofessionals.org/diff.php?repname=karmarama&path=%2Fprerelease%2Flibs%2FdglOpenGL.pas&rev=179&sc=1 SDL hatte ich gegen die einzelnen os API ausgetaucht, da SDL nur 32Bit war und es meines Wissens Probleme im Stackaufbau und Abbau gab(wegen 32bit-64bit pointer).
_________________ "Wer die Freiheit aufgibt um Sicherheit zu gewinnen, der wird am Ende beides verlieren" Benjamin Franklin
Registriert: Sa Nov 24, 2007 11:59 Beiträge: 116
Programmiersprache: FreePascal
Ich habe _kein_ Problem mit 64Bit und SDL/dglOpenGL. Weder mit dem stabilen FPC 2.2 noch mit 2.3.1, den ich jetzt verwenden muss. Das Problem ist eher, dass sich die dglOpenGL mit fpc 2.2.2 nicht unter 32bit- Mac OS X kompilieren lässt. Ich hab selbst zwar keinen Mac, aber bisher sind alle Versuche, das auf einem zu kompilieren, an irgendwelchen Fehlern gescheitert.
Registriert: Do Sep 02, 2004 19:42 Beiträge: 4158
Programmiersprache: FreePascal, C++
Hmm... Wer weiss, vielleicht war das garkein SDL sondern ein FPC-Problem... Ich müsste es mal wieder ausprobieren. Kommt auf die ToDo für morgen.
Gruß Lord Horazont
_________________ If you find any deadlinks, please send me a notification – Wenn du tote Links findest, sende mir eine Benachrichtigung. current projects: ManiacLab; aioxmpp zombofant network • my photostream „Writing code is like writing poetry“ - source unknown
„Give a man a fish, and you feed him for a day. Teach a man to fish and you feed him for a lifetime. “ ~ A Chinese Proverb
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.