atari gesperrt
Anmeldungsdatum: 26.08.2007 Beiträge: 144
|
Verfasst am: 26.08.2007, 12:02 Titel: windowsschriften (ttf) im opengl-fenster |
|
|
hallo, mit diesem programm aus dem engl. forum kann man windows-ttf-schriften im opengl-fenster darstellen. ohne die komplizierten bmp-textmuster, die immer wieder durch bestimmte programme angefertigt werden mussten. läuft mit freebasic 0.18...
Code: |
#include "GL/gl.bi"
#include "GL/glu.bi"
#include "windows.bi"
DECLARE SUB InitGL()
DECLARE SUB Build_Font( Groesse AS SINGLE, Dicke AS SINGLE )
DECLARE SUB glPrint( text AS STRING, TextX AS SINGLE, TextY AS SINGLE, ColorR AS SINGLE, ColorG AS SINGLE, ColorB AS SINGLE )
DIM SHARED AS UINTEGER Fbase,w
DIM SHARED AS HFONT font
DIM SHARED AS HFONT oldfont
DIM SHARED AS HDC hDC
DIM SHARED AS HWND hWnd
hDC = GetDC( hWnd )
SCREEN 18,16,,2
InitGL()
Build_Font( 20 , 10 )
DO
glClear(GL_COLOR_BUFFER_BIT OR GL_DEPTH_BUFFER_BIT)
glLoadIdentity()
glTranslatef(0.0,0.0,-3.0)
glPrint(str(100),-1.2,0,1,0,0)
glPrint("es geht !",-1.2,-0.1,0,1,0)
FLIP
LOOP UNTIL MULTIKEY( &h1 ) OR INKEY$ = CHR$(255)+"k"
SUB glPrint( Text AS STRING, TextX AS SINGLE, TextY AS SINGLE, ColorR AS SINGLE, ColorG AS SINGLE, ColorB AS SINGLE )
glColor3f(ColorR,ColorG,ColorB)
glRasterPos2f(TextX, TextY)
glPushAttrib(GL_LIST_BIT)
glListBase( Fbase-32 )
glCallLists( LEN(text), GL_BYTE , STRPTR(text) )
glPopAttrib()
glColor3f(1.0,1.0,1.0)
END SUB
SUB InitGL()
glViewport 0, 0, 640, 480
glMatrixMode GL_PROJECTION
gluPerspective 45, 640 / 480, 0.1, 100
glMatrixMode GL_MODELVIEW
glLoadIdentity
glShadeModel GL_SMOOTH
glClearColor 0.0, 0.0, 0.0, 1.0
glClearDepth 1.0
glEnable GL_DEPTH_TEST
glDepthFunc GL_LEQUAL
glHint GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST
END SUB
SUB Build_Font( Groesse AS SINGLE, Dicke AS SINGLE )
Fbase = glGenLists(96)
font = CreateFont(-Groesse,_ 'Größe
0,_
0,_
0,_
Dicke,_ 'Dicke Wert zwischen 0 und 1000
false,_ 'Kursiv
FALSE,_ 'Unterstrichen
FALSE,_ 'Durchgestrichen
ANSI_CHARSET,_
OUT_TT_PRECIS,_
CLIP_DEFAULT_PRECIS,_
ANTIALIASED_QUALITY,_ 'Ausgabequalität
FF_DONTCARE OR DEFAULT_PITCH,_
"Times New Roman")
oldfont = SelectObject(hDC, font)
wglUseFontBitmaps(hDC, 32, 96, Fbase)
SelectObject(hDC, oldfont)
DeleteObject(font)
END SUB
|
|
|