Warum funktioniert mitten im Programm LoadFont nicht mehr?

Übersicht BlitzBasic Allgemein

Neue Antwort erstellen

Akiba

Betreff: Warum funktioniert mitten im Programm LoadFont nicht mehr?

BeitragDi, Apr 28, 2009 18:02
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich hab hier n kleines Programm welches einen Schriftzug immer wieder vergrößert und verkleinert darstellt. Das geht einige Sekunden lang gut und dann wars das auf einmal. Die Variable dafür bleibt auf 0. Ich hab keine Ahnung woran das liegt. Kann mir jemand helfen?

Code: [AUSKLAPPEN]
x = 1024
y = 768

Graphics x, y, 16, 2

SetBuffer BackBuffer()

modus = 1
groesse = 24
warten = CreateTimer(20)

While Not KeyHit(1)
Cls

   Color Rand(255), Rand(255), Rand(255)

   If modus = 1 Then
      groesse = groesse + 2
      If groesse >= 164 Then modus = 2
   Else
      groesse = groesse - 2
      If groesse <= 24 Then modus = 1
   EndIf
   
   ; nach einigen Sekunden wird diese Schleife nicht mehr verlassen
   Repeat
      schrift = LoadFont("Arial", groesse, 1);
   Until schrift <> 0
   SetFont schrift
   
   Text x/2, y/2, "Northern Lite", 1, 1
   
   WaitTimer(warten)

Flip
Wend


End
Luigi, man wendet sich nich gegen Familie...

Nicdel

BeitragDi, Apr 28, 2009 18:05
Antworten mit Zitat
Benutzer-Profile anzeigen
Wahrscheinlich stopfen die ganzen Fonts den Speicher voll und das Programm wird ewig langsam. versuch mal FreeFont.
Desktop: Intel Pentium 4 2650 Mhz, 2 GB RAM, ATI Radeon HD 3850 512 MB, Windows XP
Notebook: Intel Core i7 720 QM 1.6 Ghz, 4 GB DDR3 RAM, nVidia 230M GT, Windows 7

Akiba

BeitragDi, Apr 28, 2009 18:35
Antworten mit Zitat
Benutzer-Profile anzeigen
Cool, du hattest recht, jetzt funktionierts Smile
Luigi, man wendet sich nich gegen Familie...

jonas1996

Betreff: Ich bin auch nur ein Mensch!

BeitragMo, Mai 11, 2009 20:45
Antworten mit Zitat
Benutzer-Profile anzeigen
Also ich würde dir raten immer Font´s laden und nach dem benutzen gleich wieder Freefont zu nutzten! Denn es ist nicht gut wenn man den Arbeitsspeicher zu 100% auslastet.
Mfg jonas1996
iLive4myLive.de.tl
programmieren123.de.tl

ozzi789

BeitragMo, Mai 11, 2009 21:08
Antworten mit Zitat
Benutzer-Profile anzeigen
Klar und dann beim nächsten Schleifendruchgang wieder laden?
Ne lieber ned, da lastet man den PC noch viel mehr aus

lösch sie erst wenn du sie für eine längere Zeit / nicht mehr brauchst Wink
0x2B || ! 0x2B
C# | C++13 | Java 7 | PHP 5

jonas1996

BeitragDi, Mai 12, 2009 16:29
Antworten mit Zitat
Benutzer-Profile anzeigen
Naja wenn du sie zB nur brauchst um einen tirel zu schreiben und dann wieder am Ende dann lade sie lieber 2x
iLive4myLive.de.tl
programmieren123.de.tl

Smily

BeitragDi, Mai 12, 2009 17:19
Antworten mit Zitat
Benutzer-Profile anzeigen
Nein, die wird zwischengespeichert.

Cleverer wäre es z.B. den font in allen benötigten Größen am anfang zu laden und die referenzen in einem dim-feld zu speichern.

Grüße,
Smily
Lesestoff:
gegen Softwarepatente | Netzzensur | brain.exe | Unabhängigkeitserklärung des Internets

"Wir müssen die Rechte der Andersdenkenden selbst dann beachten, wenn sie Idioten oder schädlich sind. Wir müssen aufpassen. Wachsamkeit ist der Preis der Freiheit --- Keine Zensur!"
stummi.org

jonas1996

BeitragMi, Mai 13, 2009 17:51
Antworten mit Zitat
Benutzer-Profile anzeigen
Naja oder so... Embarassed Laughing
iLive4myLive.de.tl
programmieren123.de.tl

SpionAtom

BeitragMi, Mai 13, 2009 18:03
Antworten mit Zitat
Benutzer-Profile anzeigen
Jupp, Schriften vorher in Dim-Feld laden klappt wunderbar.
Wie hier zb.

Wenn der Text sich niemals verändert, so kann man auch mit Bildern arbeiten (nimmt natürlich mehr Grafikspeicher weg), bringt mehr Performance.

Am performantesten wäre sowas wohl in 3D zu lösen..

Nunja
os: Windows 10 Home cpu: Intel Core i7 6700K 4.00Ghz gpu: NVIDIA GeForce GTX 1080

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group