Author Topic: Texture mapped binary font  (Read 9487 times)

0 Members and 1 Guest are viewing this topic.

Offline ninogenio

  • Pentium
  • *****
  • Posts: 1668
  • Karma: 133
    • View Profile
Texture mapped binary font
« 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.
Challenge Trophies Won:

Offline rain_storm

  • Here comes the Rain
  • DBF Aficionado
  • ******
  • Posts: 3088
  • Karma: 182
  • Rain never hurt nobody
    • View Profile
    • org_100h
Re: Texture mapped binary font
« Reply #1 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

Challenge Trophies Won:

Offline ninogenio

  • Pentium
  • *****
  • Posts: 1668
  • Karma: 133
    • View Profile
Re: Texture mapped binary font
« Reply #2 on: May 28, 2007 »
cool im intrested rain cool you explain a bit further or mabey give a little example.

cheers mate ;)
Challenge Trophies Won:

Offline rain_storm

  • Here comes the Rain
  • DBF Aficionado
  • ******
  • Posts: 3088
  • Karma: 182
  • Rain never hurt nobody
    • View Profile
    • org_100h
Re: Texture mapped binary font
« Reply #3 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

Challenge Trophies Won:

Offline Shockwave

  • good/evil
  • Founder Member
  • DBF Aficionado
  • ********
  • Posts: 17409
  • Karma: 498
  • evil/good
    • View Profile
    • My Homepage
Re: Texture mapped binary font
« Reply #4 on: May 28, 2007 »
Textured font idea works well Nino and Rain :)

I think that Rainstorms version would look better on a bigger font.
Shockwave ^ Codigos
Challenge Trophies Won:

Offline ninogenio

  • Pentium
  • *****
  • Posts: 1668
  • Karma: 133
    • View Profile
Re: Texture mapped binary font
« Reply #5 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.
Challenge Trophies Won:

Offline rain_storm

  • Here comes the Rain
  • DBF Aficionado
  • ******
  • Posts: 3088
  • Karma: 182
  • Rain never hurt nobody
    • View Profile
    • org_100h
Re: Texture mapped binary font
« Reply #6 on: May 28, 2007 »
Sweet :D

Challenge Trophies Won:

Offline DrewPee

  • I Toast Therefore I am
  • Pentium
  • *****
  • Posts: 563
  • Karma: 25
  • Eat Cheese - It's good for you!
    • View Profile
    • Retro Computer Museum
Re: Texture mapped binary font
« Reply #7 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:
DrewPee
aka Falcon of The Lost Boyz (Amiga)
Ex-Amiga Coder and Graphic Designer
Administrator of > www.retrocomputermuseum.co.uk

Offline ninogenio

  • Pentium
  • *****
  • Posts: 1668
  • Karma: 133
    • View Profile
Re: Texture mapped binary font
« Reply #8 on: June 05, 2007 »
cheers drew!

im working on something with this i will post up the results soon!
Challenge Trophies Won:

Offline ninogenio

  • Pentium
  • *****
  • Posts: 1668
  • Karma: 133
    • View Profile
Re: Texture mapped binary font
« Reply #9 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
« Last Edit: June 09, 2007 by ninogenio »
Challenge Trophies Won:

Offline DrewPee

  • I Toast Therefore I am
  • Pentium
  • *****
  • Posts: 563
  • Karma: 25
  • Eat Cheese - It's good for you!
    • View Profile
    • Retro Computer Museum
Re: Texture mapped binary font
« Reply #10 on: June 10, 2007 »
Superb Nino! very nice looking font!
We okay to use . . . ?

Drew
DrewPee
aka Falcon of The Lost Boyz (Amiga)
Ex-Amiga Coder and Graphic Designer
Administrator of > www.retrocomputermuseum.co.uk

Offline Shockwave

  • good/evil
  • Founder Member
  • DBF Aficionado
  • ********
  • Posts: 17409
  • Karma: 498
  • evil/good
    • View Profile
    • My Homepage
Re: Texture mapped binary font
« Reply #11 on: June 10, 2007 »
Excellent work! :)
Shockwave ^ Codigos
Challenge Trophies Won:

Offline slippy

  • Atari ST
  • ***
  • Posts: 172
  • Karma: 42
    • View Profile
Re: Texture mapped binary font
« Reply #12 on: June 10, 2007 »
I'm afraid - this one doesn't work under my Vista installation :(

SLiPPY

Offline Jim

  • Founder Member
  • DBF Aficionado
  • ********
  • Posts: 5301
  • Karma: 402
    • View Profile
Re: Texture mapped binary font
« Reply #13 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
Challenge Trophies Won:

Offline ninogenio

  • Pentium
  • *****
  • Posts: 1668
  • Karma: 133
    • View Profile
Re: Texture mapped binary font
« Reply #14 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.
Challenge Trophies Won:

Offline Shockwave

  • good/evil
  • Founder Member
  • DBF Aficionado
  • ********
  • Posts: 17409
  • Karma: 498
  • evil/good
    • View Profile
    • My Homepage
Re: Texture mapped binary font
« Reply #15 on: June 13, 2007 »
Let's see it on a bigger font :)

Like this one :)
Shockwave ^ Codigos
Challenge Trophies Won:

Offline ninogenio

  • Pentium
  • *****
  • Posts: 1668
  • Karma: 133
    • View Profile
Re: Texture mapped binary font
« Reply #16 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  ;)
Challenge Trophies Won:

Offline ninogenio

  • Pentium
  • *****
  • Posts: 1668
  • Karma: 133
    • View Profile
Re: Texture mapped binary font
« Reply #17 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.
Challenge Trophies Won:

Offline ninogenio

  • Pentium
  • *****
  • Posts: 1668
  • Karma: 133
    • View Profile
Re: Texture mapped binary font
« Reply #18 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*

Challenge Trophies Won:

Offline Shockwave

  • good/evil
  • Founder Member
  • DBF Aficionado
  • ********
  • Posts: 17409
  • Karma: 498
  • evil/good
    • View Profile
    • My Homepage
Re: Texture mapped binary font
« Reply #19 on: June 15, 2007 »
Very good stuff Nino, K+

Loved the system fonts too! Even proportional fonts. Nice work mate.
Shockwave ^ Codigos
Challenge Trophies Won: