Tutorial
Schriftarten unter FreeBASIC
von ![]() | Seite 3 von 7 |
Die alte GfxPrint - Routine für den neuen Fontheader
Wer alle drei FBfonts mischen möchte kann dies mit der DrawString - Routine machen.
Hier wird das Zeichen aus dem gewählten FBFont Pixel für Pixel auf den Bildschirm oder in ein Image gezeichnet.
'DrawString.bas by Volta
'ab FB-Version 0.18 (neuer Header für die fb_font's)
'Idee von der alten GfxPrint-Routine
Type fb_font_x
As Integer breit, hoch
As Any Ptr start
End Type
Extern Font8 Alias "fb_font_8x8" As fb_font_x
Extern Font14 Alias "fb_font_8x14" As fb_font_x
Extern Font16 Alias "fb_font_8x16" As fb_font_x
Sub DrawString( ByVal buffer As Any Ptr=0, ByVal xpos As Integer, _
ByVal ypos As Integer, ByRef text As String, ByVal fgcol As Integer=Color, _
ByRef f As fb_font_x)
Dim As Integer l,bits,xend
Dim row As UByte Ptr
l = Len(text)-1
If l < 0 Then Exit Sub
ScreenInfo xend
ScreenLock
For i As Integer = 0 To l
row = text[i]*f.hoch+f.start
For y As Integer= ypos To ypos+f.hoch-1
bits = *row
For x As Integer= xpos To xpos+7
If (bits And 1) Then
If (buffer = 0) Then
PSet (x,y),fgcol
Else
PSet buffer,(x,y),fgcol
End If
End If
bits = bits Shr 1
Next
row +=1
Next
xpos +=f.breit
If xpos > xend Then Exit For
Next
ScreenUnLock
End Sub
In der FB-Version 0.24 hat sich die interne Bezeichnung der Font-Pointer geändert. Die alten Bezeichnungen "fb_font_8x8" sind zu "__fb_font" geworden deshalb muss ab FB 0.24 folgendes geändert werden:
..
Extern __fb_font(0 To 2) Alias "__fb_font" As fb_font_x
#Define Font8 __fb_font(0)
#Define Font14 __fb_font(1)
#Define Font16 __fb_font(2)
..
#Include "DrawString.bas"
Screen 18,32
DrawString ,20,10,"Schrifttyp 8x8 Font",&h0000ff,Font8
DrawString ,40,30,"Schrifttyp 8x14 Font",&h00ff00,Font14
DrawString ,60,60,"Schrifttyp 8x16 Font",&hff0000,Font16
Draw String (80,80),"Schrifttyp 8x16 Font (Draw String)",&Hffffff
Sleep
Die DrawString - Routine ist im wesentlichen an die FB-Anweisung DRAW STRING angelehnt, damit man sie möglichst mit nur kleine Änderungen statt DRAW STRING benutzen kann.
Vergleich:
DRAW STRING [Puffer,] (x, y), Text [, [Farbe] [, [Font] [, Methode] ]]
DrawString [Puffer] , x, y, Text , [Farbe] , Font
DrawString (ein Wort)
, ohne Puffer: Komma setzen
, x-y-Position ohne Klammer
, Text / String wie sonst
, ohne Farbangabe wird aktuelle Fordergrundfarbe benutzt
, einen der 3 Fontnamen angeben
(, keine Methode möglich)
Zusätzliche Informationen und Funktionen | |||||||
---|---|---|---|---|---|---|---|
|