 |
Das deutsche QBasic- und FreeBASIC-Forum Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
|
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
Thorben
Anmeldungsdatum: 26.04.2005 Beiträge: 173 Wohnort: SH
|
Verfasst am: 10.02.2006, 19:19 Titel: Schrift in OpenGL |
|
|
Hallo
Ich hab mir heute mal das NEHE Tutorial 13 heraus genommen und versucht in FB ein Prog zu schreiben welches Text ausgeben kann.
Code: |
'$include: 'GL/gl.bi'
'$include: 'GL/glu.bi'
'$include: 'windows.bi'
DIM SHARED Fbase AS UINTEGER
DIM SHARED font AS HFONT
DIM SHARED oldfont AS HFONT
SCREEN 18,16,,2
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, 0.5
glClearDepth 1.0
glEnable GL_DEPTH_TEST
glDepthFunc GL_LEQUAL
glHint GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST
Fbase = glGenLists(96)
font = CreateFont(-24,_
0,_
0,_
0,_
FW_BOLD,_
TRUE,_
FALSE,_
FALSE,_
ANSI_CHARSET,_
OUT_TT_PRECIS,_
CLIP_DEFAULT_PRECIS,_
ANTIALIASED_QUALITY,_
FF_DONTCARE OR DEFAULT_PITCH,_
"Arial")
oldfont = SelectObject(hDC, font) 'Hier bin ich mir nicht sicher
wglUseFontBitmaps(hDC, 32, 96, Fbase) 'was das hDC bedeutet
SelectObject(hDC, oldfont) ' und ob ich das so machen kann
DeleteObject(font)
DO
glClear(GL_COLOR_BUFFER_BIT OR GL_DEPTH_BUFFER_BIT)
glLoadIdentity()
glTranslatef(0.0,0.0,-5.0)
glColor3f(1.0,0.0,0.0)
glCallList(34) 'Dies ist die List in der der Buchstabe A enthalen ist
FLIP
LOOP UNTIL MULTIKEY( &h1 )
|
Dies ist der Code der meiner Meinung funktionieren sollte.
Tut er aber nicht der Bildschirm bleibt schwarz. Vieleicht
Kann mir hier ja einer Helfen und mir sagen was ich Falsch
gemacht habe.
MFG Thorben |
|
Nach oben |
|
 |
Thorben
Anmeldungsdatum: 26.04.2005 Beiträge: 173 Wohnort: SH
|
Verfasst am: 10.02.2006, 19:23 Titel: |
|
|
Ich vergas dieses programm ist noch keine Rutine es soll nur den Buchstaben "A" ausgeben! |
|
Nach oben |
|
 |
Michael Frey

Anmeldungsdatum: 18.12.2004 Beiträge: 2577 Wohnort: Schweiz
|
Verfasst am: 10.02.2006, 21:07 Titel: |
|
|
Bei mir hagelts bei
Code: | oldfont = SelectObject(hDC, font) 'Hier bin ich mir nicht sicher
wglUseFontBitmaps(hDC, 32, 96, Fbase) 'was das hDC bedeutet
SelectObject(hDC, oldfont) ' und ob ich das so machen kann |
3 Warnungen:
Passing scalar as pointer
Also muss es als Pointer deklariert werden.
(Aber ich find nicht raus, welcher Pointer Typ ...)
By the way:
Wieso eigentlich SCREEN?
Hat OpenGL nicht einen eignen Screen Aufruf?
Das Tutorial das du meinst, ist das das hier http://www.joachimrohde.com/old/v4.0/Nehe/index.php?
Da versteh ich nur Bahnhof und wenn ich den Beispiel VB Code ansehe wird's nur noch schlimmer ... _________________ http://de.wikibooks.org/wiki/FreeBasic Jede Hilfe für dieses Buch ist Willkommen!
http://de.wikibooks.org/wiki/FreeBasic:_FAQ FAQ zu Freebasic (im Aufbau, hilfe Willkommen)
Neu mit Syntax Highlight |
|
Nach oben |
|
 |
Michael712 aka anfänger, programmierer
Anmeldungsdatum: 26.03.2005 Beiträge: 1593
|
Verfasst am: 10.02.2006, 22:46 Titel: |
|
|
Michael Frey hat Folgendes geschrieben: | Bei mir hagelts bei
By the way:
Wieso eigentlich SCREEN?
Hat OpenGL nicht einen eignen Screen Aufruf? |
Hallo.
Mit GLUT kann man einen Screen erstellen, allerdings geht das auch mit FreeBASIC, siehe Referenz(bei flags).
Michael _________________
Code: | #include "signatur.bi" |
|
|
Nach oben |
|
 |
Lutz Ifer Grillmeister

Anmeldungsdatum: 23.09.2005 Beiträge: 555
|
Verfasst am: 10.02.2006, 23:12 Titel: |
|
|
Servus Thorben.
Schau mal in deinen examples/opengl/nehe - Ordner. Da sind die ganzen Teile schon portiert.
Gruß
Lutz Ifer _________________ Wahnsinn ist nur die Antwort einer gesunden Psyche auf eine kranke Gesellschaft. |
|
Nach oben |
|
 |
MisterD

Anmeldungsdatum: 10.09.2004 Beiträge: 3071 Wohnort: bei Darmstadt
|
Verfasst am: 10.02.2006, 23:16 Titel: |
|
|
DIMensionier hDc mal als pointer.. _________________ "It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration."
Edsger W. Dijkstra |
|
Nach oben |
|
 |
Michael Frey

Anmeldungsdatum: 18.12.2004 Beiträge: 2577 Wohnort: Schweiz
|
|
Nach oben |
|
 |
MisterD

Anmeldungsdatum: 10.09.2004 Beiträge: 3071 Wohnort: bei Darmstadt
|
Verfasst am: 11.02.2006, 13:26 Titel: |
|
|
schau halt in der .bi nach was die funktion für nen pointer haben will und dann benutz den einfach.. und wenn nich kannste immernoch ANY PTR nehmen _________________ "It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration."
Edsger W. Dijkstra |
|
Nach oben |
|
 |
Michael Frey

Anmeldungsdatum: 18.12.2004 Beiträge: 2577 Wohnort: Schweiz
|
Verfasst am: 11.02.2006, 15:06 Titel: |
|
|
Der Datentyp von HDC ist HDC ...
wingdi.bi hat Folgendes geschrieben: | declare function SelectObject alias "SelectObject" (byval as HDC, byval as HGDIOBJ) as HGDIOBJ |
Was für Datentyp ist HDC wohl?
windef.bi hat Folgendes geschrieben: | type HDC__
i as integer
end type
type HDC as HDC__ ptr |
Ich hab jetzt mal ein "dim HDC as HDC" eingefügt, Warnungen weg, Funktion noch immer nicht ...
@Thorben
Hast du etwa Copy and Paste programiert und alles gelöscht was nicht ging?
Wenn ja ...
Dann ist es echt kein Wunder .... _________________ http://de.wikibooks.org/wiki/FreeBasic Jede Hilfe für dieses Buch ist Willkommen!
http://de.wikibooks.org/wiki/FreeBasic:_FAQ FAQ zu Freebasic (im Aufbau, hilfe Willkommen)
Neu mit Syntax Highlight |
|
Nach oben |
|
 |
Thorben
Anmeldungsdatum: 26.04.2005 Beiträge: 173 Wohnort: SH
|
Verfasst am: 11.02.2006, 19:29 Titel: |
|
|
@Michael Frey
Nein ich hab keine Copy and Paste programiert!
So!
Ich habs jetzt hinbekommen. Für die interessierten hier der Code:
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 Fbase AS UINTEGER
DIM SHARED font AS HFONT
DIM SHARED oldfont AS HFONT
DIM SHARED hDC AS HDC
DIM SHARED hWnd AS HWND
hDC = GetDC( hWnd )
SCREEN 18,16,,2
InitGL()
Build_Font( 100 , 1000 )
DO
glClear(GL_COLOR_BUFFER_BIT OR GL_DEPTH_BUFFER_BIT)
glLoadIdentity()
glTranslatef(0.0,0.0,-5.0)
w! += .01: IF w! >= 6.28 THEN w = 0.0
glPrint("Hallo!",-1.2,0,1,COS(w!),COS(w!)) 'Hallo in der Mitte mit der Farbe Grün
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
TRUE,_ 'Kursiv
FALSE,_ 'Unterstrichen
FALSE,_ 'Durchgestrichen
ANSI_CHARSET,_
OUT_TT_PRECIS,_
CLIP_DEFAULT_PRECIS,_
ANTIALIASED_QUALITY,_ 'Ausgabequalität
FF_DONTCARE OR DEFAULT_PITCH,_
"Comic Sans MS")
oldfont = SelectObject(hDC, font)
wglUseFontBitmaps(hDC, 32, 96, Fbase)
SelectObject(hDC, oldfont)
DeleteObject(font)
END SUB
|
Jetzt auch schon als SUB!
Jetzt hab ich aber schon wieder ein neues Problem.
Ich hab das ganze in eins meiner Spiele Eingebaut und je nach Farbe ändert sich die Farbe der Texturen. Die Schrift bleibt aber Schwarz.
Kann mir einer sagen woran das liegt. |
|
Nach oben |
|
 |
Michael Frey

Anmeldungsdatum: 18.12.2004 Beiträge: 2577 Wohnort: Schweiz
|
Verfasst am: 11.02.2006, 20:54 Titel: |
|
|
Sorry für den Vorwurf.
Also ich kann den Text nicht sehen bei deinem Beispiel Programm.
Leider sehe ich auch keine Fehler im Code und ich erhalte auch keine Fehlermeldung.
Welche Freebasic Version hast du? _________________ http://de.wikibooks.org/wiki/FreeBasic Jede Hilfe für dieses Buch ist Willkommen!
http://de.wikibooks.org/wiki/FreeBasic:_FAQ FAQ zu Freebasic (im Aufbau, hilfe Willkommen)
Neu mit Syntax Highlight |
|
Nach oben |
|
 |
Thorben
Anmeldungsdatum: 26.04.2005 Beiträge: 173 Wohnort: SH
|
Verfasst am: 11.02.2006, 21:42 Titel: |
|
|
Ich benutze FB version 0.15 Beta und habe WinXP und bei
mir funktioniert der Code einwandfrei so wie er dort steht. |
|
Nach oben |
|
 |
Mecki Igel

Anmeldungsdatum: 10.09.2004 Beiträge: 985 Wohnort: Niederbayern
|
|
Nach oben |
|
 |
|
|
Du kannst keine Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum nicht antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen.
|
|