Dark Bit Factory & Gravity

PROGRAMMING => Freebasic => Topic started by: ninogenio on May 28, 2007

Title: Texture mapped binary font
Post by: ninogenio on May 28, 2007
heres a little experiment of mine from this afternoon.

probably not the best texture but it looks ok.

i might expand my font to 16*16 to allow for more detailed texures.

Code: [Select]
defint a-z

#include "tinyptc.bi"
#include "crt.bi"

const ScrWidth = 640
const ScrHeight = 480
const ScrSize = ScrWidth*ScrHeight

Declare     Sub         ClsBuffer      ()
Declare     Sub         FlipBuffers    ()
declare     Sub         DrawPixel      ( ScreenAddy() , byval x as integer, byval y as integer ,byval col as integer)
declare     Sub         DrawChar       ( ScreenAddy() , byval lft as integer, byval top as integer, byval letter as string, byval col as integer , byval text_size as integer )
declare     Sub         NinosPrint     ( ScreenAddy() , byval lft as integer , byval top as integer, byval stri as string, byval col as integer , byval text_size as integer , byval right_clip as integer)

Dim Shared Buffer( 0 to ScrSize-1 ) as integer
Dim Shared Font(0 to 5952) as Integer
Dim Shared Texture(8*8) As Uinteger
Dim Shared As String Message


ptc_open( "freeBASIC v0.01 - tinyPTC test", ScrWidth, ScrHeight )

Restore FontTexture
For X = 0 To 8*8
          Read Texture(X)
Next

Restore BinFontSet
For X = 0 To 5952
          Read Font(X)
Next

Message = "ABCDEF NINOGENIO TEST"


Do

   NinosPrint( Buffer() , 10 , 10 , Message , Rgb( 255 , 255 , 0 ) , 32 , ScrWidth )

   FlipBuffers()
   ClsBuffer()

Loop While Inkey$<>Chr(27)

Ptc_Close



Sub flipbuffers()
        ptc_update @buffer(0)
End Sub



Sub ClsBuffer()
        MemSet( @Buffer(0) , 0 , ScrSize*SizeOf(Integer) )
End Sub



Sub drawpixel( ScreenAddy() , Byval X As Integer, byval Y As Integer, byval Col As Integer)
        ScreenAddy(Y*ScrWidth+X) = Col
End Sub



Sub NinosPrint( ScreenAddy() , byval lft as integer , byval top as integer, byval stri as string, byval col as integer , byval text_size as integer , byval right_clip as integer)
         dim as zstring ptr temp
         dim posi as integer
         dim str_pos as integer
         temp = allocate( len(stri) )
         *temp = stri
         str_pos=0

         do

               drawchar( ScreenAddy() , lft + posi , top, temp[str_pos] , col , text_size )
               str_pos += 1
               posi += text_size
               if posi > right_clip - ( text_size * 4 ) then
                             posi = 0
                             top = top + (text_size+3)
               endif
         loop until ( str_pos = len(stri) )

         deallocate ( temp )

End Sub



Sub drawchar(ScreenAddy() , byval lft as integer, byval top as integer , byval letter as string , byval col as integer , byval text_size as integer )

              dim x as integer , y as integer
              dim drw as integer

              for y = 0 to 7
                      y_pos = y_pos+1
                      x_pos = text_size / 8
                      my_x_pos = lft
                      for x = 0 to 7

                                drw = font( (asc(letter)-32) * 64 +  y * 8  + x)
                                if (drw) = 1 then
                                         for pixe_x = my_x_pos to my_x_pos+x_pos
                                                    DrawPixel ScreenAddy() , pixe_x , top + y_pos, Texture(8*Y+X)
                                         next
                                endif
                                my_x_pos += x_pos
                      next
              next

End Sub



FontTexture:
data &h00FF8282,&h00FF7272,&h00FF6A6A,&h00FF6464,&h00FF6060,&h00FF5B5B,&h00FF5454,&h007A2121
data &h00FF7070,&h00FF8080,&h00FF7B7B,&h00FF6D6D,&h00FF5D5D,&h00FF4646,&h008E2626,&h00FBABAB
data &h00FF6A6A,&h00FF7B7B,&h00FF8282,&h00FF7575,&h00FF5353,&h00812323,&h00FBABAB,&h00FBABAB
data &h00FF6464,&h00FF6C6C,&h00FF7575,&h00FF7878,&h00BC3333,&h00FBABAB,&h00FBABAB,&h00FBABAB
data &h00FF6060,&h00FF5D5D,&h00FF5353,&h00BC3333,&h00FBABAB,&h00FBABAB,&h00FBABAB,&h00FBABAB
data &h00FF5B5B,&h00FF4646,&h00812323,&h00FBABAB,&h00FBABAB,&h00FBABAB,&h00FBABAB,&h00FBABAB
data &h00FF5656,&h009D2A2A,&h00FBABAB,&h00FBABAB,&h00FBABAB,&h00FBABAB,&h00FBABAB,&h00FBABAB
data &h007F2222,&h00FBABAB,&h00FBABAB,&h00FBABAB,&h00FBABAB,&h00FBABAB,&h00FBABAB,&h00FBABAB



BinFontSet:
'32 space
data 0,0,0,0,0,0,0,0
data 0,0,0,0,0,0,0,0
data 0,0,0,0,0,0,0,0
data 0,0,0,0,0,0,0,0
data 0,0,0,0,0,0,0,0
data 0,0,0,0,0,0,0,0
data 0,0,0,0,0,0,0,0
data 0,0,0,0,0,0,0,0
'33 !
data 0,0,1,1,0,0,0,0
data 0,0,1,1,0,0,0,0
data 0,0,1,1,0,0,0,0
data 0,0,1,1,0,0,0,0
data 0,0,1,1,0,0,0,0
data 0,0,0,0,0,0,0,0
data 0,0,1,1,0,0,0,0
data 0,0,1,1,0,0,0,0
'34 "
data 0,0,0,0,0,0,0,0
data 0,1,1,0,1,1,0,0
data 0,1,1,0,1,1,0,0
data 0,0,1,0,0,1,0,0
data 0,0,1,0,0,1,0,0
data 0,0,0,0,0,0,0,0
data 0,0,0,0,0,0,0,0
data 0,0,0,0,0,0,0,0
'35 #
data 0,0,0,0,0,0,0,0
data 0,0,1,0,0,1,0,0
data 0,1,1,1,1,1,1,0
data 0,0,1,0,0,1,0,0
data 0,0,1,0,0,1,0,0
data 0,1,1,1,1,1,1,0
data 0,0,1,0,0,1,0,0
data 0,0,0,0,0,0,0,0
' $ 36
data 0,0,0,1,0,0,0,0
data 0,0,1,1,1,1,0,0
data 0,1,0,1,0,0,0,0
data 0,0,1,1,1,0,0,0
data 0,0,0,1,0,1,0,0
data 0,1,1,1,1,0,0,0
data 0,0,0,1,0,0,0,0
data 0,0,0,0,0,0,0,0
' % 37
data 0,0,0,0,0,0,0,0
data 0,0,0,0,0,0,0,0
data 0,1,1,0,0,1,0,0
data 0,1,1,0,1,0,0,0
data 0,0,0,1,0,0,0,0
data 0,0,1,0,1,1,0,0
data 0,1,0,0,1,1,0,0
data 0,0,0,0,0,0,0,0
' & 38
data 0,0,0,0,0,0,0,0
data 0,0,1,1,1,0,0,0
data 0,1,0,0,0,1,0,0
data 0,0,1,1,1,0,0,0
data 0,1,0,1,0,0,0,0
data 0,1,0,0,1,0,1,0
data 0,0,1,1,1,1,0,0
data 0,0,0,0,0,0,1,0
' ' 39
data 0,0,0,1,1,0,0,0
data 0,0,0,1,1,0,0,0
data 0,0,0,0,1,0,0,0
data 0,0,0,0,1,0,0,0
data 0,0,0,0,0,0,0,0
data 0,0,0,0,0,0,0,0
data 0,0,0,0,0,0,0,0
data 0,0,0,0,0,0,0,0
' ( 40
data 0,0,0,0,0,0,1,0
data 0,0,0,0,0,1,0,0
data 0,0,0,0,0,1,0,0
data 0,0,0,0,0,1,0,0
data 0,0,0,0,0,1,0,0
data 0,0,0,0,0,1,0,0
data 0,0,0,0,0,1,0,0
data 0,0,0,0,0,0,1,0
' ) 41
data 0,1,0,0,0,0,0,0
data 0,0,1,0,0,0,0,0
data 0,0,1,0,0,0,0,0
data 0,0,1,0,0,0,0,0
data 0,0,1,0,0,0,0,0
data 0,0,1,0,0,0,0,0
data 0,0,1,0,0,0,0,0
data 0,1,0,0,0,0,0,0
' * 42
data 0,0,0,0,0,0,0,0
data 0,0,0,1,0,0,0,0
data 0,1,0,1,0,1,0,0
data 0,0,1,1,1,0,0,0
data 0,0,1,1,1,0,0,0
data 0,0,1,1,1,0,0,0
data 0,1,0,0,0,1,0,0
data 0,0,0,0,0,0,0,0
' + 43
data 0,0,0,0,0,0,0,0
data 0,0,0,1,1,0,0,0
data 0,0,0,1,1,0,0,0
data 0,1,1,1,1,1,1,0
data 0,1,1,1,1,1,1,0
data 0,0,0,1,1,0,0,0
data 0,0,0,1,1,0,0,0
data 0,0,0,0,0,0,0,0
' , 44
data 0,0,0,0,0,0,0,0
data 0,0,0,0,0,0,0,0
data 0,0,0,0,0,0,0,0
data 0,0,0,0,0,0,0,0
data 0,0,0,0,0,0,0,0
data 0,0,0,1,0,0,0,0
data 0,0,1,1,0,0,0,0
data 0,0,1,0,0,0,0,0
' - 45
data 0,0,0,0,0,0,0,0
data 0,0,0,0,0,0,0,0
data 0,0,0,0,0,0,0,0
data 0,1,1,1,1,1,1,0
data 0,1,1,1,1,1,1,0
data 0,0,0,0,0,0,0,0
data 0,0,0,0,0,0,0,0
data 0,0,0,0,0,0,0,0
' . 46
data 0,0,0,0,0,0,0,0
data 0,0,0,0,0,0,0,0
data 0,0,0,0,0,0,0,0
data 0,0,0,0,0,0,0,0
data 0,0,0,0,0,0,0,0
data 0,0,1,1,0,0,0,0
data 0,0,1,1,0,0,0,0
data 0,0,0,0,0,0,0,0
' / 47
data 0,0,0,0,0,0,0,0
data 0,0,0,0,0,0,1,0
data 0,0,0,0,0,1,1,0
data 0,0,0,0,1,1,0,0
data 0,0,0,1,1,0,0,0
data 0,0,1,1,0,0,0,0
data 0,1,1,0,0,0,0,0
data 0,1,0,0,0,0,0,0
' 0 48
data 0,0,1,1,1,1,0,0
data 0,1,1,0,0,0,1,0
data 0,1,1,0,0,1,1,0
data 0,1,1,0,1,0,1,0
data 0,1,1,1,0,0,1,0
data 0,1,1,0,0,0,1,0
data 0,1,1,0,0,0,1,0
data 0,0,1,1,1,1,0,0
' 1 49
data 0,0,0,0,1,0,0,0
data 0,0,1,1,1,0,0,0
data 0,0,0,1,1,0,0,0
data 0,0,0,1,1,0,0,0
data 0,0,0,1,1,0,0,0
data 0,0,0,1,1,0,0,0
data 0,0,0,1,1,0,0,0
data 0,0,1,1,1,1,0,0
' 2 50
data 0,0,1,1,1,1,0,0
data 0,1,1,1,1,1,1,0
data 0,1,0,0,0,0,1,0
data 0,0,0,0,0,1,1,0
data 0,0,0,0,1,1,0,0
data 0,0,0,1,1,0,0,0
data 0,0,1,1,0,0,0,0
data 0,1,1,1,1,1,1,0
' 3 51
data 0,0,1,1,1,1,0,0
data 0,1,1,1,1,1,1,0
data 0,1,0,0,0,0,1,0
data 0,0,0,0,0,0,1,0
data 0,0,0,1,1,1,0,0
data 0,0,0,0,0,0,1,0
data 0,1,0,0,0,0,1,0
data 0,0,1,1,1,1,0,0
' 4 52
data 0,0,0,0,1,1,0,0
data 0,0,0,1,1,1,0,0
data 0,0,1,1,0,1,0,0
data 0,1,1,0,0,1,0,0
data 0,1,1,1,1,1,0,0
data 0,0,0,0,1,1,0,0
data 0,0,0,0,1,1,0,0
data 0,0,0,0,1,1,0,0
' 5 53
data 0,1,1,1,1,1,1,0
data 0,1,1,1,1,1,1,0
data 0,1,1,0,0,0,0,0
data 0,1,1,0,0,0,0,0
data 0,0,1,1,1,1,0,0
data 0,0,0,0,0,0,1,0
data 0,1,0,0,0,0,1,0
data 0,0,1,1,1,1,0,0
' 6 54
data 0,0,0,1,1,1,1,0
data 0,0,1,1,1,1,1,0
data 0,1,1,0,0,0,0,0
data 0,1,1,0,0,0,0,0
data 0,1,1,1,1,1,0,0
data 0,1,1,0,0,0,1,0
data 0,1,1,0,0,0,1,0
data 0,0,1,1,1,1,0,0
' 7 55
data 0,1,1,1,1,1,1,0
data 0,1,1,1,1,1,1,0
data 0,1,0,0,0,1,1,0
data 0,0,0,0,1,1,0,0
data 0,0,0,0,1,1,0,0
data 0,0,0,1,1,0,0,0
data 0,0,0,1,1,0,0,0
data 0,0,1,1,0,0,0,0
' 8 56
data 0,0,1,1,1,1,0,0
data 0,1,1,1,1,1,1,0
data 0,1,1,0,0,0,1,0
data 0,0,1,0,0,0,1,0
data 0,0,1,1,1,1,0,0
data 0,1,1,0,0,0,1,0
data 0,1,1,0,0,0,1,0
data 0,0,1,1,1,1,0,0
' 9 57
data 0,0,1,1,1,1,0,0
data 0,1,1,1,1,1,1,0
data 0,1,1,0,0,0,1,0
data 0,1,1,0,0,0,1,0
data 0,0,1,1,1,1,1,0
data 0,0,0,0,0,1,1,0
data 0,0,0,0,0,1,1,0
data 0,0,0,0,0,1,1,0
' : 58
data 0,0,0,0,0,0,0,0
data 0,0,1,1,0,0,0,0
data 0,0,1,1,0,0,0,0
data 0,0,0,0,0,0,0,0
data 0,0,0,0,0,0,0,0
data 0,0,1,1,0,0,0,0
data 0,0,1,1,0,0,0,0
data 0,0,0,0,0,0,0,0
' ; 59
data 0,0,1,1,0,0,0,0
data 0,0,1,1,0,0,0,0
data 0,0,0,0,0,0,0,0
data 0,0,0,0,0,0,0,0
data 0,0,1,1,0,0,0,0
data 0,0,1,1,0,0,0,0
data 0,1,1,0,0,0,0,0
data 0,1,1,0,0,0,0,0
' < 60
data 0,0,0,0,1,1,0,0
data 0,0,0,1,1,0,0,0
data 0,0,1,1,0,0,0,0
data 0,1,1,0,0,0,0,0
data 0,1,1,0,0,0,0,0
data 0,0,1,1,0,0,0,0
data 0,0,0,1,1,0,0,0
data 0,0,0,0,1,1,0,0
' = 61
data 0,0,0,0,0,0,0,0
data 0,1,1,1,1,1,0,0
data 0,1,1,1,1,1,0,0
data 0,0,0,0,0,0,0,0
data 0,1,1,1,1,1,0,0
data 0,1,1,1,1,1,0,0
data 0,0,0,0,0,0,0,0
data 0,0,0,0,0,0,0,0
' > 62
data 0,1,1,0,0,0,0,0
data 0,0,1,1,0,0,0,0
data 0,0,0,1,1,0,0,0
data 0,0,0,0,1,1,0,0
data 0,0,0,0,1,1,0,0
data 0,0,0,1,1,0,0,0
data 0,0,1,1,0,0,0,0
data 0,1,1,0,0,0,0,0
' ? 63
data 0,0,1,1,1,1,0,0
data 0,1,1,1,1,1,1,0
data 0,1,0,0,0,1,1,0
data 0,0,0,0,1,1,0,0
data 0,0,0,1,1,0,0,0
data 0,0,0,0,0,0,0,0
data 0,0,0,1,1,0,0,0
data 0,0,0,1,1,0,0,0
' @ 64
data 0,0,0,0,0,0,0,0
data 0,0,1,1,1,0,0,0
data 0,1,0,0,0,1,0,0
data 0,1,0,1,1,0,0,0
data 0,1,0,1,1,0,0,0
data 0,1,0,0,0,0,1,0
data 0,0,1,1,1,1,0,0
data 0,0,0,0,0,0,0,0
' A 65
data 0,0,1,1,1,0,0,0
data 0,1,1,1,1,1,0,0
data 0,1,1,0,0,1,0,0
data 0,1,1,0,0,1,0,0
data 0,1,1,1,1,1,0,0
data 0,1,1,1,1,1,0,0
data 0,1,1,0,0,1,0,0
data 0,1,1,0,0,1,0,0
' B 66
data 0,1,1,1,1,1,0,0
data 0,1,1,1,1,1,1,0
data 0,1,1,0,0,1,1,0
data 0,1,1,0,0,1,0,0
data 0,1,1,1,1,1,0,0
data 0,1,1,0,0,1,1,0
data 0,1,1,0,0,1,1,0
data 0,1,1,1,1,1,0,0
' C 67
data 0,0,1,1,1,1,0,0
data 0,1,1,1,1,1,1,0
data 0,1,1,0,0,0,1,0
data 0,1,1,0,0,0,0,0
data 0,1,1,0,0,0,0,0
data 0,1,1,0,0,0,0,0
data 0,1,1,0,0,0,1,0
data 0,0,1,1,1,1,0,0
' D 68
data 0,1,1,1,1,1,0,0
data 0,1,1,1,1,1,1,0
data 0,1,1,0,0,0,1,0
data 0,1,1,0,0,0,1,0
data 0,1,1,0,0,0,1,0
data 0,1,1,0,0,0,1,0
data 0,1,1,0,0,0,1,0
data 0,1,1,1,1,1,0,0
' E 69
data 0,1,1,1,1,1,1,0
data 0,1,1,1,1,1,1,0
data 0,1,1,0,0,0,0,0
data 0,1,1,0,0,0,0,0
data 0,1,1,1,1,0,0,0
data 0,1,1,0,0,0,0,0
data 0,1,1,0,0,0,0,0
data 0,1,1,1,1,1,1,0
' F 70
data 0,1,1,1,1,1,1,0
data 0,1,1,1,1,1,1,0
data 0,1,1,0,0,0,0,0
data 0,1,1,0,0,0,0,0
data 0,1,1,1,1,0,0,0
data 0,1,1,0,0,0,0,0
data 0,1,1,0,0,0,0,0
data 0,1,1,0,0,0,0,0
' G 71
data 0,0,1,1,1,1,0,0
data 0,1,1,1,1,1,1,0
data 0,1,1,0,0,0,1,0
data 0,1,1,0,0,0,0,0
data 0,1,1,0,1,1,1,0
data 0,1,1,0,0,0,1,0
data 0,1,1,0,0,0,1,0
data 0,0,1,1,1,1,0,0
' H 72
data 0,1,1,0,0,0,1,0
data 0,1,1,0,0,0,1,0
data 0,1,1,0,0,0,1,0
data 0,1,1,0,0,0,1,0
data 0,1,1,1,1,1,1,0
data 0,1,1,0,0,0,1,0
data 0,1,1,0,0,0,1,0
data 0,1,1,0,0,0,1,0
' I 73
data 0,0,1,1,1,1,0,0
data 0,0,1,1,1,1,0,0
data 0,0,0,1,1,0,0,0
data 0,0,0,1,1,0,0,0
data 0,0,0,1,1,0,0,0
data 0,0,0,1,1,0,0,0
data 0,0,0,1,1,0,0,0
data 0,0,1,1,1,1,0,0
' J 74
data 0,0,0,0,1,1,0,0
data 0,0,0,0,1,1,0,0
data 0,0,0,0,1,1,0,0
data 0,0,0,0,1,1,0,0
data 0,0,0,0,1,1,0,0
data 0,1,0,0,1,1,0,0
data 0,1,1,1,1,1,0,0
data 0,0,1,1,1,0,0,0
' K 75
data 0,1,1,0,0,0,1,0
data 0,1,1,0,0,1,1,0
data 0,1,1,0,1,1,0,0
data 0,1,1,1,1,0,0,0
data 0,1,1,1,1,0,0,0
data 0,1,1,0,1,1,0,0
data 0,1,1,0,0,1,1,0
data 0,1,1,0,0,0,1,0
' L 76
data 0,1,1,0,0,0,0,0
data 0,1,1,0,0,0,0,0
data 0,1,1,0,0,0,0,0
data 0,1,1,0,0,0,0,0
data 0,1,1,0,0,0,0,0
data 0,1,1,0,0,0,0,0
data 0,1,1,0,0,0,0,0
data 0,1,1,1,1,1,1,0
' M 77
data 0,1,1,0,0,0,1,0
data 0,1,1,0,0,0,1,0
data 0,1,1,1,0,1,1,0
data 0,1,1,1,1,1,1,0
data 0,1,1,0,1,0,1,0
data 0,1,1,0,0,0,1,0
data 0,1,1,0,0,0,1,0
data 0,1,1,0,0,0,1,0
' N 78
data 0,1,1,0,0,0,1,0
data 0,1,1,0,0,0,1,0
data 0,1,1,1,0,0,1,0
data 0,1,1,1,1,0,1,0
data 0,1,1,0,1,1,1,0
data 0,1,1,0,0,1,1,0
data 0,1,1,0,0,0,1,0
data 0,1,1,0,0,0,1,0
' O 79
data 0,0,1,1,1,1,0,0
data 0,1,1,1,1,1,1,0
data 0,1,1,0,0,0,1,0
data 0,1,1,0,0,0,1,0
data 0,1,1,0,0,0,1,0
data 0,1,1,0,0,0,1,0
data 0,1,1,0,0,0,1,0
data 0,0,1,1,1,1,0,0
' P 80
data 0,1,1,1,1,1,0,0
data 0,1,1,1,1,1,1,0
data 0,1,1,0,0,0,1,0
data 0,1,1,0,0,0,1,0
data 0,1,1,1,1,1,0,0
data 0,1,1,0,0,0,0,0
data 0,1,1,0,0,0,0,0
data 0,1,1,0,0,0,0,0
' Q 81
data 0,0,1,1,1,1,0,0
data 0,1,1,1,1,1,1,0
data 0,1,1,0,0,0,1,0
data 0,1,1,0,0,0,1,0
data 0,1,1,0,0,0,1,0
data 0,1,1,0,0,1,1,0
data 0,1,1,0,0,0,1,0
data 0,0,1,1,1,1,0,1
' R 82
data 0,1,1,1,1,1,0,0
data 0,1,1,1,1,1,1,0
data 0,1,1,0,0,0,1,0
data 0,1,1,0,0,0,1,0
data 0,1,1,0,0,1,0,0
data 0,1,1,1,1,0,0,0
data 0,1,1,0,1,1,0,0
data 0,1,1,0,0,1,1,0
' S 83
data 0,0,1,1,1,1,0,0
data 0,1,1,1,1,1,1,0
data 0,1,1,0,0,0,1,0
data 0,1,1,0,0,0,0,0
data 0,0,1,1,1,1,0,0
data 0,0,0,0,0,0,1,0
data 0,1,0,0,0,0,1,0
data 0,0,1,1,1,1,0,0
' T 84
data 0,1,1,1,1,1,1,0
data 0,1,1,1,1,1,1,0
data 0,0,0,1,1,0,0,0
data 0,0,0,1,1,0,0,0
data 0,0,0,1,1,0,0,0
data 0,0,0,1,1,0,0,0
data 0,0,0,1,1,0,0,0
data 0,0,0,1,1,0,0,0
' U 85
data 0,1,1,0,0,0,1,0
data 0,1,1,0,0,0,1,0
data 0,1,1,0,0,0,1,0
data 0,1,1,0,0,0,1,0
data 0,1,1,0,0,0,1,0
data 0,1,1,0,0,0,1,0
data 0,1,1,0,0,0,1,0
data 0,0,1,1,1,1,0,0
' V 86
data 0,1,1,0,0,0,1,0
data 0,1,1,0,0,0,1,0
data 0,1,1,0,0,0,1,0
data 0,1,1,0,0,0,1,0
data 0,0,1,1,0,1,0,0
data 0,0,1,1,0,1,0,0
data 0,0,1,1,0,1,0,0
data 0,0,0,1,1,0,0,0
' 1 87
data 0,1,1,0,0,0,0,1
data 0,1,1,0,0,0,0,1
data 0,1,1,0,0,0,0,1
data 0,1,1,0,0,0,0,1
data 0,1,1,0,1,1,0,1
data 0,0,1,1,0,0,1,0
data 0,0,1,1,0,0,1,0
data 0,0,1,1,0,0,1,0
' X 88
data 0,1,1,0,0,0,1,0
data 0,1,1,0,0,0,1,0
data 0,0,1,1,0,1,0,0
data 0,0,0,1,1,0,0,0
data 0,0,0,1,1,0,0,0
data 0,0,1,1,0,1,0,0
data 0,1,1,0,0,0,1,0
data 0,1,1,0,0,0,1,0
' Y 89
data 0,1,1,0,0,0,1,0
data 0,1,1,0,0,0,1,0
data 0,1,1,0,0,0,1,0
data 0,0,1,1,1,1,0,0
data 0,0,0,1,1,0,0,0
data 0,0,0,1,1,0,0,0
data 0,0,0,1,1,0,0,0
data 0,0,0,1,1,0,0,0
' Z 90
data 0,1,1,1,1,1,1,0
data 0,1,1,1,1,1,1,0
data 0,0,0,0,0,1,1,0
data 0,0,0,0,1,1,0,0
data 0,0,0,1,1,0,0,0
data 0,0,1,1,0,0,0,0
data 0,1,1,0,0,0,0,0
data 0,1,1,1,1,1,1,0
' [ 91
data 0,0,0,0,1,1,1,0
data 0,0,0,0,1,1,0,0
data 0,0,0,0,1,1,0,0
data 0,0,0,0,1,1,0,0
data 0,0,0,0,1,1,0,0
data 0,0,0,0,1,1,0,0
data 0,0,0,0,1,1,0,0
data 0,0,0,0,1,1,1,0
' \ 92
data 0,1,1,0,0,0,0,0
data 0,1,1,0,0,0,0,0
data 0,0,1,1,0,0,0,0
data 0,0,1,1,0,0,0,0
data 0,0,0,1,1,0,0,0
data 0,0,0,1,1,0,0,0
data 0,0,0,0,1,1,0,0
data 0,0,0,0,1,1,0,0
' ] 93
data 0,1,1,1,0,0,0,0
data 0,1,1,1,0,0,0,0
data 0,0,0,1,0,0,0,0
data 0,0,0,1,0,0,0,0
data 0,0,0,1,0,0,0,0
data 0,0,0,1,0,0,0,0
data 0,0,0,1,0,0,0,0
data 0,1,1,1,0,0,0,0

exe.
Title: Re: Texture mapped binary font
Post by: rain_storm on May 28, 2007
excellent I think it wouldnt be too much extra work to make the highlights move accross the font if you use an offset for the start of the texture and wrap around for each poly thats out of bounds that would be a nice touch if you wanted a metallic finish
Title: Re: Texture mapped binary font
Post by: ninogenio on May 28, 2007
cool im intrested rain cool you explain a bit further or mabey give a little example.

cheers mate ;)
Title: Re: Texture mapped binary font
Post by: rain_storm on May 28, 2007
Code: [Select]
defint a-z

#include "tinyptc.bi"
#include "crt.bi"

const ScrWidth = 640
const ScrHeight = 480
const ScrSize = ScrWidth*ScrHeight

Declare     Sub         ClsBuffer      ()
Declare     Sub         FlipBuffers    ()
declare     Sub         DrawPixel      ( ScreenAddy() , byval x as integer, byval y as integer ,byval col as integer)
declare     Sub         DrawChar       ( ScreenAddy() , byval lft as integer, byval top as integer, byval letter as string, byval col as integer , byval text_size as integer )
declare     Sub         NinosPrint     ( ScreenAddy() , byval lft as integer , byval top as integer, byval stri as string, byval col as integer , byval text_size as integer , byval right_clip as integer)

Dim Shared Buffer( 0 to ScrSize-1 ) as integer
Dim Shared Font(0 to 5952) as Integer
Dim Shared Texture(8*8) As Uinteger
Dim Shared As String Message


ptc_open( "freeBASIC v0.01 - tinyPTC test", ScrWidth, ScrHeight )

Restore FontTexture
For X = 0 To 8*8
          Read Texture(X)
Next

Restore BinFontSet
For X = 0 To 5952
          Read Font(X)
Next

Message = "ABCDEF NINOGENIO TEST"


dim shared as integer scroll, scrollcolour
Do

    scroll = scroll + 1
    if (scroll > 8) then scroll = scroll - 8
   NinosPrint( Buffer() , 10 , 10 , Message , Rgb( 255 , 255 , 0 ) , 32 , ScrWidth )

   FlipBuffers()
   ClsBuffer()

Loop While Inkey$<>Chr(27)

Ptc_Close



Sub flipbuffers()
        ptc_update @buffer(0)
End Sub



Sub ClsBuffer()
        MemSet( @Buffer(0) , 0 , ScrSize*SizeOf(Integer) )
End Sub



Sub drawpixel( ScreenAddy() , Byval X As Integer, byval Y As Integer, byval Col As Integer)
        ScreenAddy(Y*ScrWidth+X) = Col
End Sub



Sub NinosPrint( ScreenAddy() , byval lft as integer , byval top as integer, byval stri as string, byval col as integer , byval text_size as integer , byval right_clip as integer)
         dim as zstring ptr temp
         dim posi as integer
         dim str_pos as integer
         temp = allocate( len(stri) )
         *temp = stri
         str_pos=0

         do

               drawchar( ScreenAddy() , lft + posi , top, temp[str_pos] , col , text_size )
               str_pos += 1
               posi += text_size
               if posi > right_clip - ( text_size * 4 ) then
                             posi = 0
                             top = top + (text_size+3)
               endif
         loop until ( str_pos = len(stri) )

         deallocate ( temp )

End Sub



Sub drawchar(ScreenAddy() , byval lft as integer, byval top as integer , byval letter as string , byval col as integer , byval text_size as integer )

              dim x as integer , y as integer
              dim drw as integer
              for y = 0 to 7
                      y_pos = y_pos+1
                      x_pos = text_size / 8
                      my_x_pos = lft
                      for x = 0 to 7

                                drw = font( (asc(letter)-32) * 64 +  y * 8  + x)
                                if (drw) = 1 then
                                         for pixe_x = my_x_pos to my_x_pos+x_pos
                                                    scrollcolour = X + scroll
                                                    if (scrollcolour > 8) then scrollcolour = scrollcolour - 8
                                                    scrollcolour = 8*Y+scrollcolour
                                                    DrawPixel ScreenAddy() , pixe_x , top + y_pos, Texture(scrollcolour)
                                         next
                                endif
                                my_x_pos += x_pos
                      next
              next

End Sub



FontTexture:
data &h00FF8282,&h00FF7272,&h00FF6A6A,&h00FF6464,&h00FF6060,&h00FF5B5B,&h00FF5454,&h007A2121
data &h00FF7070,&h00FF8080,&h00FF7B7B,&h00FF6D6D,&h00FF5D5D,&h00FF4646,&h008E2626,&h00FBABAB
data &h00FF6A6A,&h00FF7B7B,&h00FF8282,&h00FF7575,&h00FF5353,&h00812323,&h00FBABAB,&h00FBABAB
data &h00FF6464,&h00FF6C6C,&h00FF7575,&h00FF7878,&h00BC3333,&h00FBABAB,&h00FBABAB,&h00FBABAB
data &h00FF6060,&h00FF5D5D,&h00FF5353,&h00BC3333,&h00FBABAB,&h00FBABAB,&h00FBABAB,&h00FBABAB
data &h00FF5B5B,&h00FF4646,&h00812323,&h00FBABAB,&h00FBABAB,&h00FBABAB,&h00FBABAB,&h00FBABAB
data &h00FF5656,&h009D2A2A,&h00FBABAB,&h00FBABAB,&h00FBABAB,&h00FBABAB,&h00FBABAB,&h00FBABAB
data &h007F2222,&h00FBABAB,&h00FBABAB,&h00FBABAB,&h00FBABAB,&h00FBABAB,&h00FBABAB,&h00FBABAB



BinFontSet:
'32 space
data 0,0,0,0,0,0,0,0
data 0,0,0,0,0,0,0,0
data 0,0,0,0,0,0,0,0
data 0,0,0,0,0,0,0,0
data 0,0,0,0,0,0,0,0
data 0,0,0,0,0,0,0,0
data 0,0,0,0,0,0,0,0
data 0,0,0,0,0,0,0,0
'33 !
data 0,0,1,1,0,0,0,0
data 0,0,1,1,0,0,0,0
data 0,0,1,1,0,0,0,0
data 0,0,1,1,0,0,0,0
data 0,0,1,1,0,0,0,0
data 0,0,0,0,0,0,0,0
data 0,0,1,1,0,0,0,0
data 0,0,1,1,0,0,0,0
'34 "
data 0,0,0,0,0,0,0,0
data 0,1,1,0,1,1,0,0
data 0,1,1,0,1,1,0,0
data 0,0,1,0,0,1,0,0
data 0,0,1,0,0,1,0,0
data 0,0,0,0,0,0,0,0
data 0,0,0,0,0,0,0,0
data 0,0,0,0,0,0,0,0
'35 #
data 0,0,0,0,0,0,0,0
data 0,0,1,0,0,1,0,0
data 0,1,1,1,1,1,1,0
data 0,0,1,0,0,1,0,0
data 0,0,1,0,0,1,0,0
data 0,1,1,1,1,1,1,0
data 0,0,1,0,0,1,0,0
data 0,0,0,0,0,0,0,0
' $ 36
data 0,0,0,1,0,0,0,0
data 0,0,1,1,1,1,0,0
data 0,1,0,1,0,0,0,0
data 0,0,1,1,1,0,0,0
data 0,0,0,1,0,1,0,0
data 0,1,1,1,1,0,0,0
data 0,0,0,1,0,0,0,0
data 0,0,0,0,0,0,0,0
' % 37
data 0,0,0,0,0,0,0,0
data 0,0,0,0,0,0,0,0
data 0,1,1,0,0,1,0,0
data 0,1,1,0,1,0,0,0
data 0,0,0,1,0,0,0,0
data 0,0,1,0,1,1,0,0
data 0,1,0,0,1,1,0,0
data 0,0,0,0,0,0,0,0
' & 38
data 0,0,0,0,0,0,0,0
data 0,0,1,1,1,0,0,0
data 0,1,0,0,0,1,0,0
data 0,0,1,1,1,0,0,0
data 0,1,0,1,0,0,0,0
data 0,1,0,0,1,0,1,0
data 0,0,1,1,1,1,0,0
data 0,0,0,0,0,0,1,0
' ' 39
data 0,0,0,1,1,0,0,0
data 0,0,0,1,1,0,0,0
data 0,0,0,0,1,0,0,0
data 0,0,0,0,1,0,0,0
data 0,0,0,0,0,0,0,0
data 0,0,0,0,0,0,0,0
data 0,0,0,0,0,0,0,0
data 0,0,0,0,0,0,0,0
' ( 40
data 0,0,0,0,0,0,1,0
data 0,0,0,0,0,1,0,0
data 0,0,0,0,0,1,0,0
data 0,0,0,0,0,1,0,0
data 0,0,0,0,0,1,0,0
data 0,0,0,0,0,1,0,0
data 0,0,0,0,0,1,0,0
data 0,0,0,0,0,0,1,0
' ) 41
data 0,1,0,0,0,0,0,0
data 0,0,1,0,0,0,0,0
data 0,0,1,0,0,0,0,0
data 0,0,1,0,0,0,0,0
data 0,0,1,0,0,0,0,0
data 0,0,1,0,0,0,0,0
data 0,0,1,0,0,0,0,0
data 0,1,0,0,0,0,0,0
' * 42
data 0,0,0,0,0,0,0,0
data 0,0,0,1,0,0,0,0
data 0,1,0,1,0,1,0,0
data 0,0,1,1,1,0,0,0
data 0,0,1,1,1,0,0,0
data 0,0,1,1,1,0,0,0
data 0,1,0,0,0,1,0,0
data 0,0,0,0,0,0,0,0
' + 43
data 0,0,0,0,0,0,0,0
data 0,0,0,1,1,0,0,0
data 0,0,0,1,1,0,0,0
data 0,1,1,1,1,1,1,0
data 0,1,1,1,1,1,1,0
data 0,0,0,1,1,0,0,0
data 0,0,0,1,1,0,0,0
data 0,0,0,0,0,0,0,0
' , 44
data 0,0,0,0,0,0,0,0
data 0,0,0,0,0,0,0,0
data 0,0,0,0,0,0,0,0
data 0,0,0,0,0,0,0,0
data 0,0,0,0,0,0,0,0
data 0,0,0,1,0,0,0,0
data 0,0,1,1,0,0,0,0
data 0,0,1,0,0,0,0,0
' - 45
data 0,0,0,0,0,0,0,0
data 0,0,0,0,0,0,0,0
data 0,0,0,0,0,0,0,0
data 0,1,1,1,1,1,1,0
data 0,1,1,1,1,1,1,0
data 0,0,0,0,0,0,0,0
data 0,0,0,0,0,0,0,0
data 0,0,0,0,0,0,0,0
' . 46
data 0,0,0,0,0,0,0,0
data 0,0,0,0,0,0,0,0
data 0,0,0,0,0,0,0,0
data 0,0,0,0,0,0,0,0
data 0,0,0,0,0,0,0,0
data 0,0,1,1,0,0,0,0
data 0,0,1,1,0,0,0,0
data 0,0,0,0,0,0,0,0
' / 47
data 0,0,0,0,0,0,0,0
data 0,0,0,0,0,0,1,0
data 0,0,0,0,0,1,1,0
data 0,0,0,0,1,1,0,0
data 0,0,0,1,1,0,0,0
data 0,0,1,1,0,0,0,0
data 0,1,1,0,0,0,0,0
data 0,1,0,0,0,0,0,0
' 0 48
data 0,0,1,1,1,1,0,0
data 0,1,1,0,0,0,1,0
data 0,1,1,0,0,1,1,0
data 0,1,1,0,1,0,1,0
data 0,1,1,1,0,0,1,0
data 0,1,1,0,0,0,1,0
data 0,1,1,0,0,0,1,0
data 0,0,1,1,1,1,0,0
' 1 49
data 0,0,0,0,1,0,0,0
data 0,0,1,1,1,0,0,0
data 0,0,0,1,1,0,0,0
data 0,0,0,1,1,0,0,0
data 0,0,0,1,1,0,0,0
data 0,0,0,1,1,0,0,0
data 0,0,0,1,1,0,0,0
data 0,0,1,1,1,1,0,0
' 2 50
data 0,0,1,1,1,1,0,0
data 0,1,1,1,1,1,1,0
data 0,1,0,0,0,0,1,0
data 0,0,0,0,0,1,1,0
data 0,0,0,0,1,1,0,0
data 0,0,0,1,1,0,0,0
data 0,0,1,1,0,0,0,0
data 0,1,1,1,1,1,1,0
' 3 51
data 0,0,1,1,1,1,0,0
data 0,1,1,1,1,1,1,0
data 0,1,0,0,0,0,1,0
data 0,0,0,0,0,0,1,0
data 0,0,0,1,1,1,0,0
data 0,0,0,0,0,0,1,0
data 0,1,0,0,0,0,1,0
data 0,0,1,1,1,1,0,0
' 4 52
data 0,0,0,0,1,1,0,0
data 0,0,0,1,1,1,0,0
data 0,0,1,1,0,1,0,0
data 0,1,1,0,0,1,0,0
data 0,1,1,1,1,1,0,0
data 0,0,0,0,1,1,0,0
data 0,0,0,0,1,1,0,0
data 0,0,0,0,1,1,0,0
' 5 53
data 0,1,1,1,1,1,1,0
data 0,1,1,1,1,1,1,0
data 0,1,1,0,0,0,0,0
data 0,1,1,0,0,0,0,0
data 0,0,1,1,1,1,0,0
data 0,0,0,0,0,0,1,0
data 0,1,0,0,0,0,1,0
data 0,0,1,1,1,1,0,0
' 6 54
data 0,0,0,1,1,1,1,0
data 0,0,1,1,1,1,1,0
data 0,1,1,0,0,0,0,0
data 0,1,1,0,0,0,0,0
data 0,1,1,1,1,1,0,0
data 0,1,1,0,0,0,1,0
data 0,1,1,0,0,0,1,0
data 0,0,1,1,1,1,0,0
' 7 55
data 0,1,1,1,1,1,1,0
data 0,1,1,1,1,1,1,0
data 0,1,0,0,0,1,1,0
data 0,0,0,0,1,1,0,0
data 0,0,0,0,1,1,0,0
data 0,0,0,1,1,0,0,0
data 0,0,0,1,1,0,0,0
data 0,0,1,1,0,0,0,0
' 8 56
data 0,0,1,1,1,1,0,0
data 0,1,1,1,1,1,1,0
data 0,1,1,0,0,0,1,0
data 0,0,1,0,0,0,1,0
data 0,0,1,1,1,1,0,0
data 0,1,1,0,0,0,1,0
data 0,1,1,0,0,0,1,0
data 0,0,1,1,1,1,0,0
' 9 57
data 0,0,1,1,1,1,0,0
data 0,1,1,1,1,1,1,0
data 0,1,1,0,0,0,1,0
data 0,1,1,0,0,0,1,0
data 0,0,1,1,1,1,1,0
data 0,0,0,0,0,1,1,0
data 0,0,0,0,0,1,1,0
data 0,0,0,0,0,1,1,0
' : 58
data 0,0,0,0,0,0,0,0
data 0,0,1,1,0,0,0,0
data 0,0,1,1,0,0,0,0
data 0,0,0,0,0,0,0,0
data 0,0,0,0,0,0,0,0
data 0,0,1,1,0,0,0,0
data 0,0,1,1,0,0,0,0
data 0,0,0,0,0,0,0,0
' ; 59
data 0,0,1,1,0,0,0,0
data 0,0,1,1,0,0,0,0
data 0,0,0,0,0,0,0,0
data 0,0,0,0,0,0,0,0
data 0,0,1,1,0,0,0,0
data 0,0,1,1,0,0,0,0
data 0,1,1,0,0,0,0,0
data 0,1,1,0,0,0,0,0
' < 60
data 0,0,0,0,1,1,0,0
data 0,0,0,1,1,0,0,0
data 0,0,1,1,0,0,0,0
data 0,1,1,0,0,0,0,0
data 0,1,1,0,0,0,0,0
data 0,0,1,1,0,0,0,0
data 0,0,0,1,1,0,0,0
data 0,0,0,0,1,1,0,0
' = 61
data 0,0,0,0,0,0,0,0
data 0,1,1,1,1,1,0,0
data 0,1,1,1,1,1,0,0
data 0,0,0,0,0,0,0,0
data 0,1,1,1,1,1,0,0
data 0,1,1,1,1,1,0,0
data 0,0,0,0,0,0,0,0
data 0,0,0,0,0,0,0,0
' > 62
data 0,1,1,0,0,0,0,0
data 0,0,1,1,0,0,0,0
data 0,0,0,1,1,0,0,0
data 0,0,0,0,1,1,0,0
data 0,0,0,0,1,1,0,0
data 0,0,0,1,1,0,0,0
data 0,0,1,1,0,0,0,0
data 0,1,1,0,0,0,0,0
' ? 63
data 0,0,1,1,1,1,0,0
data 0,1,1,1,1,1,1,0
data 0,1,0,0,0,1,1,0
data 0,0,0,0,1,1,0,0
data 0,0,0,1,1,0,0,0
data 0,0,0,0,0,0,0,0
data 0,0,0,1,1,0,0,0
data 0,0,0,1,1,0,0,0
' @ 64
data 0,0,0,0,0,0,0,0
data 0,0,1,1,1,0,0,0
data 0,1,0,0,0,1,0,0
data 0,1,0,1,1,0,0,0
data 0,1,0,1,1,0,0,0
data 0,1,0,0,0,0,1,0
data 0,0,1,1,1,1,0,0
data 0,0,0,0,0,0,0,0
' A 65
data 0,0,1,1,1,0,0,0
data 0,1,1,1,1,1,0,0
data 0,1,1,0,0,1,0,0
data 0,1,1,0,0,1,0,0
data 0,1,1,1,1,1,0,0
data 0,1,1,1,1,1,0,0
data 0,1,1,0,0,1,0,0
data 0,1,1,0,0,1,0,0
' B 66
data 0,1,1,1,1,1,0,0
data 0,1,1,1,1,1,1,0
data 0,1,1,0,0,1,1,0
data 0,1,1,0,0,1,0,0
data 0,1,1,1,1,1,0,0
data 0,1,1,0,0,1,1,0
data 0,1,1,0,0,1,1,0
data 0,1,1,1,1,1,0,0
' C 67
data 0,0,1,1,1,1,0,0
data 0,1,1,1,1,1,1,0
data 0,1,1,0,0,0,1,0
data 0,1,1,0,0,0,0,0
data 0,1,1,0,0,0,0,0
data 0,1,1,0,0,0,0,0
data 0,1,1,0,0,0,1,0
data 0,0,1,1,1,1,0,0
' D 68
data 0,1,1,1,1,1,0,0
data 0,1,1,1,1,1,1,0
data 0,1,1,0,0,0,1,0
data 0,1,1,0,0,0,1,0
data 0,1,1,0,0,0,1,0
data 0,1,1,0,0,0,1,0
data 0,1,1,0,0,0,1,0
data 0,1,1,1,1,1,0,0
' E 69
data 0,1,1,1,1,1,1,0
data 0,1,1,1,1,1,1,0
data 0,1,1,0,0,0,0,0
data 0,1,1,0,0,0,0,0
data 0,1,1,1,1,0,0,0
data 0,1,1,0,0,0,0,0
data 0,1,1,0,0,0,0,0
data 0,1,1,1,1,1,1,0
' F 70
data 0,1,1,1,1,1,1,0
data 0,1,1,1,1,1,1,0
data 0,1,1,0,0,0,0,0
data 0,1,1,0,0,0,0,0
data 0,1,1,1,1,0,0,0
data 0,1,1,0,0,0,0,0
data 0,1,1,0,0,0,0,0
data 0,1,1,0,0,0,0,0
' G 71
data 0,0,1,1,1,1,0,0
data 0,1,1,1,1,1,1,0
data 0,1,1,0,0,0,1,0
data 0,1,1,0,0,0,0,0
data 0,1,1,0,1,1,1,0
data 0,1,1,0,0,0,1,0
data 0,1,1,0,0,0,1,0
data 0,0,1,1,1,1,0,0
' H 72
data 0,1,1,0,0,0,1,0
data 0,1,1,0,0,0,1,0
data 0,1,1,0,0,0,1,0
data 0,1,1,0,0,0,1,0
data 0,1,1,1,1,1,1,0
data 0,1,1,0,0,0,1,0
data 0,1,1,0,0,0,1,0
data 0,1,1,0,0,0,1,0
' I 73
data 0,0,1,1,1,1,0,0
data 0,0,1,1,1,1,0,0
data 0,0,0,1,1,0,0,0
data 0,0,0,1,1,0,0,0
data 0,0,0,1,1,0,0,0
data 0,0,0,1,1,0,0,0
data 0,0,0,1,1,0,0,0
data 0,0,1,1,1,1,0,0
' J 74
data 0,0,0,0,1,1,0,0
data 0,0,0,0,1,1,0,0
data 0,0,0,0,1,1,0,0
data 0,0,0,0,1,1,0,0
data 0,0,0,0,1,1,0,0
data 0,1,0,0,1,1,0,0
data 0,1,1,1,1,1,0,0
data 0,0,1,1,1,0,0,0
' K 75
data 0,1,1,0,0,0,1,0
data 0,1,1,0,0,1,1,0
data 0,1,1,0,1,1,0,0
data 0,1,1,1,1,0,0,0
data 0,1,1,1,1,0,0,0
data 0,1,1,0,1,1,0,0
data 0,1,1,0,0,1,1,0
data 0,1,1,0,0,0,1,0
' L 76
data 0,1,1,0,0,0,0,0
data 0,1,1,0,0,0,0,0
data 0,1,1,0,0,0,0,0
data 0,1,1,0,0,0,0,0
data 0,1,1,0,0,0,0,0
data 0,1,1,0,0,0,0,0
data 0,1,1,0,0,0,0,0
data 0,1,1,1,1,1,1,0
' M 77
data 0,1,1,0,0,0,1,0
data 0,1,1,0,0,0,1,0
data 0,1,1,1,0,1,1,0
data 0,1,1,1,1,1,1,0
data 0,1,1,0,1,0,1,0
data 0,1,1,0,0,0,1,0
data 0,1,1,0,0,0,1,0
data 0,1,1,0,0,0,1,0
' N 78
data 0,1,1,0,0,0,1,0
data 0,1,1,0,0,0,1,0
data 0,1,1,1,0,0,1,0
data 0,1,1,1,1,0,1,0
data 0,1,1,0,1,1,1,0
data 0,1,1,0,0,1,1,0
data 0,1,1,0,0,0,1,0
data 0,1,1,0,0,0,1,0
' O 79
data 0,0,1,1,1,1,0,0
data 0,1,1,1,1,1,1,0
data 0,1,1,0,0,0,1,0
data 0,1,1,0,0,0,1,0
data 0,1,1,0,0,0,1,0
data 0,1,1,0,0,0,1,0
data 0,1,1,0,0,0,1,0
data 0,0,1,1,1,1,0,0
' P 80
data 0,1,1,1,1,1,0,0
data 0,1,1,1,1,1,1,0
data 0,1,1,0,0,0,1,0
data 0,1,1,0,0,0,1,0
data 0,1,1,1,1,1,0,0
data 0,1,1,0,0,0,0,0
data 0,1,1,0,0,0,0,0
data 0,1,1,0,0,0,0,0
' Q 81
data 0,0,1,1,1,1,0,0
data 0,1,1,1,1,1,1,0
data 0,1,1,0,0,0,1,0
data 0,1,1,0,0,0,1,0
data 0,1,1,0,0,0,1,0
data 0,1,1,0,0,1,1,0
data 0,1,1,0,0,0,1,0
data 0,0,1,1,1,1,0,1
' R 82
data 0,1,1,1,1,1,0,0
data 0,1,1,1,1,1,1,0
data 0,1,1,0,0,0,1,0
data 0,1,1,0,0,0,1,0
data 0,1,1,0,0,1,0,0
data 0,1,1,1,1,0,0,0
data 0,1,1,0,1,1,0,0
data 0,1,1,0,0,1,1,0
' S 83
data 0,0,1,1,1,1,0,0
data 0,1,1,1,1,1,1,0
data 0,1,1,0,0,0,1,0
data 0,1,1,0,0,0,0,0
data 0,0,1,1,1,1,0,0
data 0,0,0,0,0,0,1,0
data 0,1,0,0,0,0,1,0
data 0,0,1,1,1,1,0,0
' T 84
data 0,1,1,1,1,1,1,0
data 0,1,1,1,1,1,1,0
data 0,0,0,1,1,0,0,0
data 0,0,0,1,1,0,0,0
data 0,0,0,1,1,0,0,0
data 0,0,0,1,1,0,0,0
data 0,0,0,1,1,0,0,0
data 0,0,0,1,1,0,0,0
' U 85
data 0,1,1,0,0,0,1,0
data 0,1,1,0,0,0,1,0
data 0,1,1,0,0,0,1,0
data 0,1,1,0,0,0,1,0
data 0,1,1,0,0,0,1,0
data 0,1,1,0,0,0,1,0
data 0,1,1,0,0,0,1,0
data 0,0,1,1,1,1,0,0
' V 86
data 0,1,1,0,0,0,1,0
data 0,1,1,0,0,0,1,0
data 0,1,1,0,0,0,1,0
data 0,1,1,0,0,0,1,0
data 0,0,1,1,0,1,0,0
data 0,0,1,1,0,1,0,0
data 0,0,1,1,0,1,0,0
data 0,0,0,1,1,0,0,0
' 1 87
data 0,1,1,0,0,0,0,1
data 0,1,1,0,0,0,0,1
data 0,1,1,0,0,0,0,1
data 0,1,1,0,0,0,0,1
data 0,1,1,0,1,1,0,1
data 0,0,1,1,0,0,1,0
data 0,0,1,1,0,0,1,0
data 0,0,1,1,0,0,1,0
' X 88
data 0,1,1,0,0,0,1,0
data 0,1,1,0,0,0,1,0
data 0,0,1,1,0,1,0,0
data 0,0,0,1,1,0,0,0
data 0,0,0,1,1,0,0,0
data 0,0,1,1,0,1,0,0
data 0,1,1,0,0,0,1,0
data 0,1,1,0,0,0,1,0
' Y 89
data 0,1,1,0,0,0,1,0
data 0,1,1,0,0,0,1,0
data 0,1,1,0,0,0,1,0
data 0,0,1,1,1,1,0,0
data 0,0,0,1,1,0,0,0
data 0,0,0,1,1,0,0,0
data 0,0,0,1,1,0,0,0
data 0,0,0,1,1,0,0,0
' Z 90
data 0,1,1,1,1,1,1,0
data 0,1,1,1,1,1,1,0
data 0,0,0,0,0,1,1,0
data 0,0,0,0,1,1,0,0
data 0,0,0,1,1,0,0,0
data 0,0,1,1,0,0,0,0
data 0,1,1,0,0,0,0,0
data 0,1,1,1,1,1,1,0
' [ 91
data 0,0,0,0,1,1,1,0
data 0,0,0,0,1,1,0,0
data 0,0,0,0,1,1,0,0
data 0,0,0,0,1,1,0,0
data 0,0,0,0,1,1,0,0
data 0,0,0,0,1,1,0,0
data 0,0,0,0,1,1,0,0
data 0,0,0,0,1,1,1,0
' \ 92
data 0,1,1,0,0,0,0,0
data 0,1,1,0,0,0,0,0
data 0,0,1,1,0,0,0,0
data 0,0,1,1,0,0,0,0
data 0,0,0,1,1,0,0,0
data 0,0,0,1,1,0,0,0
data 0,0,0,0,1,1,0,0
data 0,0,0,0,1,1,0,0
' ] 93
data 0,1,1,1,0,0,0,0
data 0,1,1,1,0,0,0,0
data 0,0,0,1,0,0,0,0
data 0,0,0,1,0,0,0,0
data 0,0,0,1,0,0,0,0
data 0,0,0,1,0,0,0,0
data 0,0,0,1,0,0,0,0
data 0,1,1,1,0,0,0,0

The things I changed were ...
Code: [Select]
dim shared as integer scroll, scrollcolour
Do

    scroll = scroll + 1
    if (scroll > 8) then scroll = scroll - 8
   NinosPrint( Buffer() , 10 , 10 , Message , Rgb( 255 , 255 , 0 ) , 32 , ScrWidth )

   FlipBuffers()
   ClsBuffer()

Loop While Inkey$<>Chr(27)

Ptc_Close

and ...

Code: [Select]
Sub drawchar(ScreenAddy() , byval lft as integer, byval top as integer , byval letter as string , byval col as integer , byval text_size as integer )

              dim x as integer , y as integer
              dim drw as integer
              for y = 0 to 7
                      y_pos = y_pos+1
                      x_pos = text_size / 8
                      my_x_pos = lft
                      for x = 0 to 7

                                drw = font( (asc(letter)-32) * 64 +  y * 8  + x)
                                if (drw) = 1 then
                                         for pixe_x = my_x_pos to my_x_pos+x_pos
                                                    scrollcolour = X + scroll
                                                    if (scrollcolour > 8) then scrollcolour = scrollcolour - 8
                                                    scrollcolour = 8*Y+scrollcolour
                                                    DrawPixel ScreenAddy() , pixe_x , top + y_pos, Texture(scrollcolour)
                                         next
                                endif
                                my_x_pos += x_pos
                      next
              next

End Sub

Its really rushed and it could be improved apon alot but it does demonstrate what I was thinking of
Title: Re: Texture mapped binary font
Post by: Shockwave on May 28, 2007
Textured font idea works well Nino and Rain :)

I think that Rainstorms version would look better on a bigger font.
Title: Re: Texture mapped binary font
Post by: ninogenio on May 28, 2007
thats cool rain! k+

i changed a couple of lines that made the effect a bit better and it looks pretty cool!

dim shared as double scroll, scrollcolour

and

scroll = scroll + 0.09

and i think im going to make the letters 16*16 for more detail.
Title: Re: Texture mapped binary font
Post by: rain_storm on May 28, 2007
Sweet :D
Title: Re: Texture mapped binary font
Post by: DrewPee on June 05, 2007
Holy crap! I've been away toooooo long! This is some serious cool shit going on here!

very very nice work both to you nino and to you rain!!!

on a larger font it would look like the mutts nuts!!!

Drew  :clap:
Title: Re: Texture mapped binary font
Post by: ninogenio on June 05, 2007
cheers drew!

im working on something with this i will post up the results soon!
Title: Re: Texture mapped binary font
Post by: ninogenio on June 09, 2007
here is where this is at now its not really a binary font anymore but still very usable.

its based on this.

http://dbfinteractive.com/index.php?topic=1966.0
Title: Re: Texture mapped binary font
Post by: DrewPee on June 10, 2007
Superb Nino! very nice looking font!
We okay to use . . . ?

Drew
Title: Re: Texture mapped binary font
Post by: Shockwave on June 10, 2007
Excellent work! :)
Title: Re: Texture mapped binary font
Post by: slippy on June 10, 2007
I'm afraid - this one doesn't work under my Vista installation :(

SLiPPY
Title: Re: Texture mapped binary font
Post by: Jim on June 11, 2007
Problems here too.  It just crashes after setting the screen mode.

The bug is here
Code: [Select]
        Temp = Allocate( Len(Stri) )
it should be
Code: [Select]
        Temp = Allocate( Len(Stri)+1 )
because when you are dealing with zstring, the string has a zero byte added on the end.  So Len("banana") is 6, but it contains 7 characters.

Jim
Title: Re: Texture mapped binary font
Post by: ninogenio on June 11, 2007
ahh i was unshure about that cheers jim! i thought it would have been fine as it worked here.

cheers everyone else and @drew and others any source i put up is for you guys too use as you like, i would like it if you give jim credit here though as i used his system font to bmp tool for font creation.
Title: Re: Texture mapped binary font
Post by: Shockwave on June 13, 2007
Let's see it on a bigger font :)

Like this one :) (http://dbfinteractive.com/index.php?topic=2000.0)
Title: Re: Texture mapped binary font
Post by: ninogenio on June 13, 2007
ohh very cool!

im just in the middle of doing something with this but for sure ill use that font and we will see how it looks  ;)
Title: Re: Texture mapped binary font
Post by: ninogenio on June 13, 2007
Right here is where its at now ive sort of turned it into an engine that you can plug multiple font sets into also you can ad sinwaves with diffrent properties.

next update should include a much more speed optimized version plus the texture mapping will be back in there and im going to test shockwaves excellent font out with it.
Title: Re: Texture mapped binary font
Post by: ninogenio on June 15, 2007
Final update on this as its at the point where im gonna start yousing it on demos its pretty fast now using pointers almost everywhere the texture stuff is back in there now also shockwaves font is there too *looks the nuts btw*

Title: Re: Texture mapped binary font
Post by: Shockwave on June 15, 2007
Very good stuff Nino, K+

Loved the system fonts too! Even proportional fonts. Nice work mate.
Title: Re: Texture mapped binary font
Post by: ninogenio on June 16, 2007
cheers nick it means a lot!

ive been meaning to do something like this for a while just never got round to it until now.

it should give me the flexibility i need in my demos.
Title: Re: Texture mapped binary font
Post by: slippy on June 16, 2007
that's indeed very useful stuff dude ... thanks for sharing ... and - well - have some karma :)

cheers,
SLiPPY
Title: Re: Texture mapped binary font
Post by: ninogenio on June 16, 2007
cheers slippy! if anyone has any uses for this feel free to use in your own stuff!
Title: Re: Texture mapped binary font
Post by: DrewPee on June 17, 2007
Wow Nino - that sure is some cool shit!
Keep it up man! Thanks for sharing!

Drew :)

I second shockwave and slippy (or should that be third) . . . have some karma  ;)