[GELÖST] LoadImageFont aus TBank?

Übersicht BlitzMax, BlitzMax NG Allgemein

Neue Antwort erstellen

 

CO2

ehemals "SirMO"

Betreff: [GELÖST] LoadImageFont aus TBank?

BeitragSo, Mai 29, 2016 15:49
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo,

ich versucht mich schon seit ein paar Stunden daran, einen ImageFont aus einer Bank zu laden, doch es will nicht so recht gelingen. Hier wurde schon darüber "diskutiert", die Lösung des Problems ist jedoch nicht enthalten.

Hier mal der Testcode in BlitzMax: [AUSKLAPPEN]
Local Stream:TStream 	= ReadStream("common/DIGITALDREAM.ttf")
Local Bank:TBank = CreateBank(StreamSize(Stream))

ReadBank(Bank, Stream, 0, StreamSize(Stream))

Local Font:TImageFont = LoadImageFont(Bank, 12)
Notify(Font <> Null)

CloseStream(Stream)


Wenn ich den Dateipfad direkt bei LoadImageFont einsetze, funktioniert es ohne Probleme, nur so nicht. Auch ein Graphics() davor auszuführen bringt nichts. Warum ist die url bei LoadImageFont ein Object wenn sowieso nur String geht?
mfG, CO²

Sprachen: BlitzMax, C, C++, C#, Java
Hardware: Windows 7 Ultimate 64-Bit, AMX FX-6350 (6x3,9 GHz), 32 GB RAM, Nvidia GeForce GTX 750 Ti
  • Zuletzt bearbeitet von CO2 am So, Mai 29, 2016 16:46, insgesamt einmal bearbeitet

Holzchopf

Meisterpacker

BeitragSo, Mai 29, 2016 16:23
Antworten mit Zitat
Benutzer-Profile anzeigen
Tja, da sieht man mal, was passiert, wenn man dem Hilfeleistenden keine Antwort mehr geben mag Razz Dann verschwindet der Thread eben in der Senke Rolling Eyes

Ich hab' mal eben recherchiert:
Es wird nicht funktionieren. LoadImageFont läuft nur mit echten Dateien - nicht aus dem RAM wie z.B. einer Bank oder IncBin Confused Schade. Aber die Erklärung dafür kommt immerhin von Mark Sibly höchst persönlich:
marksibly hat Folgendes geschrieben:
Because the FreeType library doesn't provide any IO 'hooks', the way the jpeg, png, ogg etc libraries do. Instead, it just uses the standard 'C' IO commands, which Max doesn't/can't intercept.
Quelle: http://www.blitzbasic.com/Comm...opic=45132

Ein möglicher Workaround wäre, die Datei einfach temporär auf die Festplatte zu schreiben und von da aus zu laden.

MfG
Holzchopf
Erledige alles Schritt um Schritt - erledige alles. - Holzchopf
CC BYBinaryBorn - Yogurt ♫ (31.10.2018)
Im Kopf da knackt's und knistert's sturm - 's ist kein Gedanke, nur ein Wurm
 

CO2

ehemals "SirMO"

BeitragSo, Mai 29, 2016 16:46
Antworten mit Zitat
Benutzer-Profile anzeigen
Na das ist doch mal eine Antwort Very Happy

Damit ist das dann wohl gelöst. Werde die Datei einfach nicht in ein Archiv packen sondern direkt laden...

Danke
mfG, CO²

Sprachen: BlitzMax, C, C++, C#, Java
Hardware: Windows 7 Ultimate 64-Bit, AMX FX-6350 (6x3,9 GHz), 32 GB RAM, Nvidia GeForce GTX 750 Ti

Midimaster

BeitragMo, Mai 30, 2016 7:22
Antworten mit Zitat
Benutzer-Profile anzeigen
also ich laden schon immer Imagefonts aus einem (Koriolis-)gezippten INCBIN ohne Probleme:

Code: [AUSKLAPPEN]
   Incbin "DATEN.ZIP"

DatenPfad="ZIP::Incbin::DATEN.ZIP//"
   ArialNormal=LoadImageFont(DatenPfad + "arial.ttf",24)
Gewinner des BCC #53 mit "Gitarrist vs Fussballer" http://www.midimaster.de/downl...ssball.exe
 

CO2

ehemals "SirMO"

BeitragMo, Mai 30, 2016 16:18
Antworten mit Zitat
Benutzer-Profile anzeigen
Mhm... Könnte es sein, dass die Daten lokal einmal ausgepackt werden und dann die entpackten Daten geladen werden?
mfG, CO²

Sprachen: BlitzMax, C, C++, C#, Java
Hardware: Windows 7 Ultimate 64-Bit, AMX FX-6350 (6x3,9 GHz), 32 GB RAM, Nvidia GeForce GTX 750 Ti

Neue Antwort erstellen


Übersicht BlitzMax, BlitzMax NG Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group