Kann MiniB3D kein INCBIN?
Übersicht

![]() |
MidimasterBetreff: Kann MiniB3D kein INCBIN? |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hallo ich versuche gerade MINIB3D dazu zu überreden, seine Files aus einem INCBIN zu holen. Aber scheinbar misslingt das. Mache ich da was falsch, oder kann MINIB3D das nicht.
Hier ein Testprogramm, das das Problem zeigt. Es benötigt irgend ein PNG-File im Wurzelverzeichnis. BlitzMax: [AUSKLAPPEN] SuperStrict Das sollte man hier beobachten können: Das DrawImage kann das mit INCBIN eingebundene PNG-Bild darstellen. Auch das von der Platte geladene PNG-Bild wird als Sprite dargestellt. Allerdings der INCBIN-Sprite ist nur als weißes Feld zu sehen. Nightphoenix: Da haste dann gleich was gegen die "Langeweile" ![]() |
||
![]() |
klin |
![]() Antworten mit Zitat ![]() |
---|---|---|
Vermutung:
incbin:: ist normal bei Streams vorhanden.Genauso wie z.B. http:: usw. Wahrscheinlich hat das 3D Modul nicht das incbin:: eingetragen. Überprüf mal ob SpriteB=Null ist. MFG Klin |
||
![]() |
Midimaster |
![]() Antworten mit Zitat ![]() |
---|---|---|
nein, SpriteB ist nicht NULL. Man erkennt ja auch, dass es die Größe des PNG-Bildes nachahmt. Jedoch als weiße Box. | ||
![]() |
Noobody |
![]() Antworten mit Zitat ![]() |
---|---|---|
Soweit ich mich richtig erinnere, liegt das daran, dass MiniB3D mit FileType überprüft, ob die Datei vorhanden ist. Das geht bei Incbin natürlich in die Hose, weswegen MiniB3D keine Incbin-Dateien laden kann. | ||
Man is the best computer we can put aboard a spacecraft ... and the only one that can be mass produced with unskilled labor. -- Wernher von Braun |
klepto2 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
minib3d kann leider kein natives incbin. Das Problem liegt beim loader management. Theoretisch würde es funktionieren, wenn man die materialien bzw Texturen "incbin::texturenname" nennen würde. Meshes funktionieren somit, das Texturen laden macht allerdings probleme. Ich schau mal ob ich nachher (nach der Arbeit) meine modifizierte Version finde. In der wird neben den angegebenen Pfaden auch im incbin space gesucht. | ||
Matrix Screensaver
Console Modul für BlitzMax KLPacker Modul für BlitzMax HomePage : http://www.brsoftware.de.vu |
![]() |
Midimaster |
![]() Antworten mit Zitat ![]() |
---|---|---|
Sch...
was mach ich dann jetzt? Ich will die Bilder und Sounds ja nicht als Einzeldaten in einem Verzeichnis an die Kunden ausliefern. Fürs Windows-B3D hab ich hier immer ein Wrapper-Programm (Molebox), das alles zu einer EXE zusammenschmiedet. Aber auf dem MAC? Außerdem bin ich noch nicht davon überzeugt, dass dieses Handicap zu der Professionalität von MINIB3D passt. Da muss es noch eine andere Lösung geben.... Eigentlich brauch ich ja sogar die Kombination vo ZIP und INCBIN als Kombination mit Koriolis-Zipstream |
||
klepto2 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
hmm, ich hätte da eine idee, mit der ich meinen Code erweitern könnte. Damit sollte es auch möglich sein incbin:: und zip:: dateien laden.
Mein Vorschlag wäre sowas wie: RegisterSearchExtension(ext:String) oder ähnliches. Dann würde man zb: am anfang einfach RegisterSearchExtension("incbin") RegisterSearchExtension("zip") RegisterSearchExtension("incbin::zip") das hinzufügen. |
||
Matrix Screensaver
Console Modul für BlitzMax KLPacker Modul für BlitzMax HomePage : http://www.brsoftware.de.vu |
![]() |
Midimaster |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hallo Klepto2,
ist das Original MINIB3D eigentlich von Dir? [EDIT] Ah, ich hab mich jetzt mal schlau gemacht... MINIB3D ist von "SimonH". Von Klepto2 ist die EXT-Version. Der Support für INCBIN und ZIP wäre, denk ich, überaus hilfreich. Du hattest da ja auch mal eine Post im engl. Forum: http://www.blitzbasic.com/Comm...501#811490 und Peter Scheutz hat da auch schon mal was versucht: http://www.blitzbasic.com/Comm...655#907922 |
||
- Zuletzt bearbeitet von Midimaster am Mi, Feb 03, 2010 17:03, insgesamt einmal bearbeitet
![]() |
BtbN |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich verstehe nicht, wo MiniB3D da das Problem hat? Einfach den FileType Check weg und mit OpenStream laden, und statt nem String als url nen Object nehmen, schon gehts? | ||
![]() |
Midimaster |
![]() Antworten mit Zitat ![]() |
---|---|---|
Kann ich das selbst bewerkstelligen? Hört sich nach einer Änderung direkt in der MINIB3D an...
Wegen der Pflegbarkeit der Programme in der Zukunft ist es immer total wichtig, dass wir mit so wenig Patches wie möglich arbeiten. Daher würde ich ein ev. Update der Original MINIB3D vorziehen. Ich hab da sowieso gleich noch einmal eine Frage dazu. Da gab es doch die EXT-Version. Ist das nun eine Ergänzung zu MINIB3D oder ein Ersatz? Irgendwo hab ich gelesen, dass die EXT-Version nicht weiterentwickelt wird. Arbeitet Ihr dennoch damit? Was ratet Ihr mir? Wäre es nicht viel klüger das Wissen der EXT-Version in die Weiterentwicklung des Originals einfließen zu lassen? Oder wenigsten die richtig geilen Verbesserungen weiterzupflegen? Oder versteh ich da was falsch? |
||
- Zuletzt bearbeitet von Midimaster am Mi, Feb 03, 2010 17:04, insgesamt einmal bearbeitet
klepto2 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
BtbN, leider geht das nicht so einfach. Bei Sprites ist das mit dem FileType korrekt, bei Modellen,die texturen nutzen geht das nicht so einfach. Da gibt es eine Funktion die versucht die korrekte Textur zu laden, da Texturen aber nicht zwangsläufig korrekt im Model selber angegeben sind sucht minib3d in unterschiedlichen Ordnern. Dabei wird aber kein Incbin o.ä unterstützt. Ein FileType check findet dort zwar auch (sinnvollerweise) statt, hat aber dort nix mit dem eigentlichen Problem in minib3d zu tun.
@midimaster: Nein, minib3d ist von simonh. Ich hatte mir damals nur zur aufgabe gemacht minib3d zu erweitern und es aufzuräumen, bzw anders zu strukturieren. Da solche Sachen wie dein jetziges Problem im Design von minib3d liegen und es noch mehrere unglückliche konstruktionen im inneren gibt, habe ich mein Projekt fallen gelassen. (Leider, ich hätte gerne weiter gemacht aber mit jeder neuen Version musste ich alles praktisch neu einbauen). Hier mein altes Worklog: https://www.blitzforum.de/worklogs/27/ |
||
Matrix Screensaver
Console Modul für BlitzMax KLPacker Modul für BlitzMax HomePage : http://www.brsoftware.de.vu |
![]() |
Midimaster |
![]() Antworten mit Zitat ![]() |
---|---|---|
Das ist genau mein Bedenken gegenüber irgndwelcher Patches am Original. Bei jedem Update muss man die Patches wieder aufspielen und wenn man eines vergisst, funktioniert eines meiner Programme nicht mehr. Das bedeutet oft Sucherei und Zeitverschwendung.
Wie lässt sich denn mit simonh reden? Wäre es nicht klüger ihn zu Verbesserungen zu bewegen, bzw. sie an ihn zu posten, damit er sie aufnimmt? Hast du einen guten Kontakt zu ihm? (Ich war ja ganz überrascht, dass das tolle Kommando "BeginMax2D" in die Original gefunden hatte. Das war glaub ich auch zuerst nur in deiner Variante.) |
||
- Zuletzt bearbeitet von Midimaster am Mi, Feb 03, 2010 19:26, insgesamt einmal bearbeitet
![]() |
ChaosCoder |
![]() Antworten mit Zitat ![]() |
---|---|---|
Auf dem Mac kannst du doch einfach die Dateien in die .app reinbauen. Das kannst du auch manuell tun. Und am Anfang deines Programms machst du ein
Code: [AUSKLAPPEN] ChangeDir("name.app/Contents/Resources/")
So befindet sich alles im Resourceordner innerhalb der .app und du kannst von da auch alles öffnen. Das machen auch die großen Hersteller nicht anders. |
||
Projekte: Geolaria | aNemy
Webseite: chaosspace.de |
![]() |
Midimaster |
![]() Antworten mit Zitat ![]() |
---|---|---|
Dann kann aber auch jeder andere die Daten dort finden, oder? | ||
![]() |
Mr.HydeNewsposter |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ja. Rechtsklick auf die App-Datei -> "Paketinhalt anzeigen" erlaubt Vollzugriff. Um die Dateien zu schützen müsstest du sie verschlüsseln. | ||
BBP News RSS | Chaos Interactive | Watanien 2 Screens, Infos und Download | Watanien 2 Worklog | PuzzleMasters
http://abgeordnetenwatch.de - http://www.regierungs-beratung.de - Der Regierung auf die Finger schauen |
![]() |
Midimaster |
![]() Antworten mit Zitat ![]() |
---|---|---|
Nachtrag:
Ich habe mit SimonH gesprochen und er hat angekündigt, die beiden Features INCBIN-Support und ZIP-Support in sein nächstes Update mit aufzunehmen. Außerdem plant er auch, die etwa 20 Verbesserungen von Peter Scheutz einzubauen: http://www.blitzbasic.com/Comm...opic=88252 So ist das natürlich die beste Lösung für alle... |
||
![]() |
BlitzMoritz |
![]() Antworten mit Zitat ![]() |
---|---|---|
Auch wenn der Thread schon ein Jahr alt ist, ist er ja immer noch ungelöst, daher möchte ich Euch einen kleinen Eingriff in das Modul posten, mit dem auch die Standart-Version keine Probleme haben sollte, Modelle und Texturen per Incbin einzubinden:
Erstens öffne man die Datei TTexture.bmx im Verzeichnis sidesign.mod/minib3d.mod/inc/ und ergänze ganz am Anfang der Function FileFind(file$ Var) die Zeile BlitzMax: [AUSKLAPPEN] If Left(file$,8) = "incbin::" Then Return True Zweitens öffne man im gleichen Verzeichnis die Datei TMesh.bmx und ersetze in der Function LoadAnimMesh:TMesh(file$,parent_ent:TEntity=Null) die Zeile BlitzMax: [AUSKLAPPEN] If FileType(file$)=0 Then Return TMesh.CreateCube()durch die Zeile BlitzMax: [AUSKLAPPEN] If Left(file$, 8) <> "incbin::" And FileType(file$)=0 Then Return TMesh.CreateCube() Drittens öffne man im gleichen Verzeichnis die Datei TModel.bmx und ersetze in der Function LoadAnimB3D:TMesh(f_name$,parent_ent_ext:TEntity=Null) die Zeile BlitzMax: [AUSKLAPPEN] file=OpenStream("littleendian::"+f_name$)durch die Zeilen BlitzMax: [AUSKLAPPEN] If Left(f_name$, 8) = "incbin::" Then Und viertens kompiliere man das Modul erneut. Der Eingriff in das Modul beschränkt sich lediglich auf Dateinamen, die "incbin::" vorangestellt haben, sonst bleibt alles beim Alten, und wenn eine "incbin"-Datei fehlt, sollte einem der BlitzMax-Compiler das unabhängig von minib3d schon vorher gemeldet haben. Edit: ![]() Man erstelle mit milkshape sein Modell und lade die entsprechenden Texturen. Dann exportiere man das Modell im Textformat "Milkshape 3D ASCII Export" und öffnet die Datei mit einem Text-Editor. Dort suche man (meist gegen Ende) die Dateinamen der für die Texturen verwendeten Bilddateien und fügt bei jedem am Anfang ein incbin:: ein und speichert. Diese Datei importiert man wieder in milkshape (wobei dort die Texturen nicht mehr ladbar bzw. sichtbar sind!) und exportiert direkt ins b3d-Format. Die in BlitzMax per incbin eingebundenen Bilddateien findet dann ebenfalls das per incbin eingebundene Modell. |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group