C code einbinden (libnoise)
Übersicht

GrrBrrBetreff: C code einbinden (libnoise) |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Nachdem meine eigene perlin-noise-Funktion nicht allzugut funktioniert hat (aber immerhin) habe ich nun eine Lösung gefunden, die schöner ist: libnoise. (opensource library, die noise erzeugt, geschrieben in C++)
so... Die eleganteste Lösung wäre jetzt natürlich den C-Code per Modul in BMX reinzuholen. Das Problem ist, dass ich das letzte mal vor 5 Jahren C programmiert habe und keinen Schimmer habe, wie ich anfange. Ich habe mich in das Problem reingelesen und mit import und extern allerlei experimentiert. Das Problem ist nun, dass ich nicht sicher bin, welche Dateien ich importieren muss... Kann ich eigentlich auch C in einer normalen bmx-Datei importieren oder geht das nur per Modul? Was ist der Unterschied zwischen h und cpp dateien? Hoffentlich kann mir jemand helfen... Hier der Link zu den libnoise Dateien ----> http://libnoise.sourceforge.ne...index.html |
||
3D - GFX - Wallpaper - PixelArt - Galerie
>>> http://www.augensound.de <<< |
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
einfach import "source.c" in deiner bmx file und danach per extern die funktionen definieren, das wars ![]() h sind nur header also deklarationsfiles cpp sind c++ files c sind c files |
||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
GrrBrr |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
mit cpp-dateien klappt das nicht... ?!
muss ich jetzt noch ein c programm zu zwischenschalten schreiben... ohje... |
||
3D - GFX - Wallpaper - PixelArt - Galerie
>>> http://www.augensound.de <<< |
![]() |
Suco-XBetreff: ...... |
![]() Antworten mit Zitat ![]() |
---|---|---|
Reicht die DLL nicht erstmal aus?
Würde ja selbst auch ein bisschen rumtesten, habe aber ka wie die Funktionsnamen heißen und wo ich da eine Beschreibung finde. Mfg Suco |
||
Intel Core 2 Quad Q8300, 4× 2500 MHz, 4096 MB DDR2-Ram, GeForce 9600GT 512 MB |
GrrBrr |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
das problem ist das diese library modular aufgebaut ist und durch und durch objektorientiert. Es scheint keine wirklichen funktionen zu geben (nur methoden innerhalb der objekte)
zumindest glaube ich das so zu erkennen, trotz meiner schlechten c++ - kenntnisse. die dll müsste notfalls auch reichen. ich bevorzuge aber das mittels import zu lösen, um plattformunabhängig zu bleiben. und bei der dll habe ich die gleichen probleme, die konkreten funktionen zu finden, obwohl ja alles beschrieben ist... aber naja... ich werd mich aufjedenfall mal da reinknien... auf jedenfall sind die möglichkeiten dieser library genial... so ein flexibles system zum erstellen von noise ist genial.... |
||
3D - GFX - Wallpaper - PixelArt - Galerie
>>> http://www.augensound.de <<< |
![]() |
Suco-XBetreff: ....... |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ja, wird wohl ein gutes Stück Arbeit das ganze korrekt importiert zu kriegen. Du kannst Glücklicherweise auch Klassenbasierte Codes für BlitzMax aufbereiten, Siehe dazu die Language Refrence unter Advanced Topics.
Mfg Suco |
||
Intel Core 2 Quad Q8300, 4× 2500 MHz, 4096 MB DDR2-Ram, GeForce 9600GT 512 MB |
GrrBrr |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
oh, cool, danke für den hinweis... das sieht nützlich aus, was da steht... | ||
3D - GFX - Wallpaper - PixelArt - Galerie
>>> http://www.augensound.de <<< |
GrrBrr |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
oh hilfe... kennt sich jemand mit mingw aus?
wie schaff ich es diese library in mingw reinzubringen? hier ist nur eine anlietung für gcc und ich kapiers nicht... (ganz unten) --> http://libnoise.sourceforge.ne...1.html#gcc |
||
3D - GFX - Wallpaper - PixelArt - Galerie
>>> http://www.augensound.de <<< |
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Du musst die library nicht nach MingW rein bringen ...
Einfach import "libgen.c" (so hiess die source datei glaub), dann sollte es gehen. wenn nicht die andere c datei im source folder auch noch importen. Danach musst du nur noch die Funktionen als extern neu deklarieren mit den entsprechenden Datentypen von BlitzMax |
||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
GrrBrr |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
hab es probiert. Stellen sich aber neue Probleme...
Eine Klasse in der library heisst "module". Nun ist module aber ein von BlitzMax reserviertes Schlüsselwort. Folgender Code verdeutlicht das Problem: Code: [AUSKLAPPEN] Import "latlon.cpp"
Import "noisegen.cpp" Extern Type noise End Type Type Module End Type Type Perlin Extends Module Method Perlin:noise.module.perlin() Method GetValue:double( x:Double, y:Double, z:Double) End Type End Extern Local t:noise.module.perlin=noise.module.perlin.Perlin() Print t.GetValue (1.25, 0.75, 0.5); Gibt es eine Möglichkeit das zu umgehen ohne den gesamten C-Code umzuschreiben? Die Types müssen ja den gleichen Namen haben wie im C-Code... oder? als ob das problem nicht schon groß genug wäre.... Oder ich schreib wirklich ein kleines C-Programm das ich zwischenschalte, dass mir nur die Werte herausholt, die ich brauche.... aber ich bekomms ja nicht hin die Library für MinGW zu compilieren... *grr* |
||
3D - GFX - Wallpaper - PixelArt - Galerie
>>> http://www.augensound.de <<< |
![]() |
Suco-XBetreff: ..... |
![]() Antworten mit Zitat ![]() |
---|---|---|
Müssen nicht den gleichen Namen haben die Funktionen und types. Kommt nur auf die richtige Reihenfolge an.
Mfg Suco |
||
Intel Core 2 Quad Q8300, 4× 2500 MHz, 4096 MB DDR2-Ram, GeForce 9600GT 512 MB |
GrrBrr |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
huh, das sind soviele headerdateien... wie bekomme ich denn da die reihenfolge heraus??? gehe ich datei um datei durch?
in der hilfe habe ich auch gelesen ich kann direkt die header stattdessen mit *.h einbinden. welche reihenfolge wird dann verwendet?? oder auch die compilierte library als blah.a einbinden, aber dann ist die reihenfolge ja völlig unklar... andere geschichte: kann ich aus einer c-datei eigentlich nicht einzelne funktionen herausholen, oder muss ich die, die ich nicht brauche mit in extern deklarieren, damit die reihenfolge stimmt? jetzt sitze ich schon 3 tage an dem problem und habe noch nichts, niente, rien, nothing erreicht... langsam bin ich am verzweifeln... ![]() |
||
3D - GFX - Wallpaper - PixelArt - Galerie
>>> http://www.augensound.de <<< |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group