C++ Library , Header Translation, Fehler [ gelöst ]

Antworten
Benutzeravatar
corpsman
Lazarusforum e. V.
Beiträge: 1498
Registriert: Sa 28. Feb 2009, 08:54
OS, Lazarus, FPC: Linux Mint Mate, Lazarus GIT Head, FPC 3.0
CPU-Target: 64Bit
Wohnort: Stuttgart
Kontaktdaten:

C++ Library , Header Translation, Fehler [ gelöst ]

Beitrag von corpsman »

Guten Morgen allerseits,

Ich hab schon wieder das gleiche Problem wie immer :(

Es geht darum die Mesa Lib in meinem Programm zum laufen zu bekommen.

Im Speziellen geht es um die libOSMesa32.so

Ich muss hier ein OSMesa context aufbauen und das muss leider 32 Bit Pro Farbkanal haben.

Nun habe ich mich hingesetzt und die osmesa.h übersetzt ( Nach bestem wissen und einiger Hilfe ).

Mittels meiner Übersetzung kann ich die 8 Bit Variante auch wunderbar ansteuern.

Laut Source ( C Source ) ist die h Datei die selbe wie bei der 32 Bit Variante, das c Compilierte Programm, welches die 32 Bit .so File benutzt, produziert auch eine Ausgabe => die *.so File muss also korrekt gebaut worden sein.

Und da meine Übersetzung ja mit der 8 Bit Variante funktioniert, gehe ich davon aus, das ich auch hier alles richtig gemacht habe.

Nur Leider, leider geht es natürlich nicht , wenn ich es kombiniere, sprich meine Header File mit der 32 Bit Variante Starte.

Irr witziger weise kommt keinerlei Fehler oder der gleichen. Der Buffer bleibt einfach nur Schwarz :(.

Da ich einfach nicht mehr weiter weis, hoffe ich nun auf ein Wunder von Hier.

Anbei der Komplette meiner Meinung nach beteiligte source.
Files.zip
c, und pas dateien
(43.03 KiB) 85-mal heruntergeladen
Zuletzt geändert von corpsman am Mi 3. Feb 2010, 09:58, insgesamt 1-mal geändert.
--
Just try it

Benutzeravatar
theo
Beiträge: 10497
Registriert: Mo 11. Sep 2006, 19:01

Re: C++ Library , Header Translation, Fehler ...

Beitrag von theo »

Ich kann das nicht kompilieren. Was ist denn dglOpenGL und OpenGL_GraphikEngine ?
Kannst du nicht eine auf's wesentliche reduzierte Version mit allen benötigten units liefern?
So hat man ja keine Chance dir zu helfen.

Benutzeravatar
corpsman
Lazarusforum e. V.
Beiträge: 1498
Registriert: Sa 28. Feb 2009, 08:54
OS, Lazarus, FPC: Linux Mint Mate, Lazarus GIT Head, FPC 3.0
CPU-Target: 64Bit
Wohnort: Stuttgart
Kontaktdaten:

Re: C++ Library , Header Translation, Fehler ...

Beitrag von corpsman »

Graphik_enginge.pas, erstellt den Screenshoot, und kann daher ausgeklammert werden.

DGLOpenGL ist der Ersatz für , gl und glu auch die kannst du ausklammern und stattdessen die Units "gl" und "glu" einbinden. Der Fehler ist der Selbe.

Dann kannst du's Kompilieren, doch wenn du's starten willst, musst du noch hergehen und die Mesa bauen.

Hier ist es wichtig das du nur die Version 7.0 nimmst, da sich die anderen nicht bauen lassen, und selbst hier musst du einiges beachten.

entpacke das zip File "MesaLib-7.0.zip" navigiere in den Ordner Mesa7.0 tippe make linux

Wenn das fertig ist, kopiere alle *.so Dateien aus dem unter Ordner lib, tippe make clean, make realclean, dann make linux-osmesa32, nun wieder alle *.so files aus dem lib Verzeichnis kopieren.

Alle *.so files die du nun kopiert hast, müssen in das Verzeichnis, in dem du die Binarys' aus Post 1 erzeugst. Dann läuft zumindest die FPC Variante. Die mesa Demo zum laufen zu bekommen ist dann noch mal eine andere Geschichte ..

[Edit]

So ich habe hier mal die "angepasste" variante hochgeladen, das Prolem schein in der Kombination der *.so Dateien zu liegen, je nach dem welch ich von wo aus einbinde, gehts mal, oder es geht auch nicht. Nur egal welche Kombination ich ausprobiere die 32 Bit variante geht nie :(

[Edit2]

Ich weis nicht genau was ich nun anders gemacht habe, aber nun gehts ( 8 Bit und 32 Bit )*freu*, es bedurfte allerdings einiger Änderungen.
Sollte jemand tatsächlich an den Ergebnissen interessiert sein, eine kleine PN an mich.
Dateianhänge
unit1.pas
ohne dglOpenGL, mit gl, mit glu
funktioniert in der 8 Bit Version mit Mesa 6.5.3 und Mesa 7.5.0
(9.47 KiB) 67-mal heruntergeladen
--
Just try it

Targion
Beiträge: 688
Registriert: Mi 3. Okt 2007, 21:00
OS, Lazarus, FPC: Linux (L 0.9.29 FPC 2.4.2)
CPU-Target: x86_64

Re: C++ Library , Header Translation, Fehler [ gelöst ]

Beitrag von Targion »

Warum benutzt du eigentlich Mesa direkt? Ich habe das mal in C++ gemacht, und verglichen mit einer Grafikengine ist es ungefähr 20x komplizierter. Mesa 7.5 ist aktuell, warum nimmst du nicht diese Version?

Benutzeravatar
corpsman
Lazarusforum e. V.
Beiträge: 1498
Registriert: Sa 28. Feb 2009, 08:54
OS, Lazarus, FPC: Linux Mint Mate, Lazarus GIT Head, FPC 3.0
CPU-Target: 64Bit
Wohnort: Stuttgart
Kontaktdaten:

Re: C++ Library , Header Translation, Fehler [ gelöst ]

Beitrag von corpsman »

ich nutze Mesa weil es mir vorgeschrieben wurde.

Für meine Diplomarbeit benötige ich 32 Bit Genauigkeit Pro Farbkanal. Und Mesa bekommt das eben hin.

Und nun, läuft es ja auch mit 7.5.0
--
Just try it

Antworten