Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht Das deutsche QBasic- und FreeBASIC-Forum
Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
 
FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen  RegistrierenRegistrieren
ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin
Zur Begleitseite des Forums / Chat / Impressum
Aktueller Forenpartner:

Schrift in OpenGL

 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu FreeBASIC.
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
Thorben



Anmeldungsdatum: 26.04.2005
Beiträge: 173
Wohnort: SH

BeitragVerfasst am: 10.02.2006, 19:19    Titel: Schrift in OpenGL Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Thorben



Anmeldungsdatum: 26.04.2005
Beiträge: 173
Wohnort: SH

BeitragVerfasst am: 10.02.2006, 19:23    Titel: Antworten mit Zitat

Ich vergas dieses programm ist noch keine Rutine es soll nur den Buchstaben "A" ausgeben!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Michael Frey



Anmeldungsdatum: 18.12.2004
Beiträge: 2577
Wohnort: Schweiz

BeitragVerfasst am: 10.02.2006, 21:07    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Michael712
aka anfänger, programmierer


Anmeldungsdatum: 26.03.2005
Beiträge: 1593

BeitragVerfasst am: 10.02.2006, 22:46    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Lutz Ifer
Grillmeister


Anmeldungsdatum: 23.09.2005
Beiträge: 555

BeitragVerfasst am: 10.02.2006, 23:12    Titel: Antworten mit Zitat

Servus Thorben.

Schau mal in deinen examples/opengl/nehe - Ordner. Da sind die ganzen Teile schon portiert.

Gruß
Lutz böse Ifer
_________________
Wahnsinn ist nur die Antwort einer gesunden Psyche auf eine kranke Gesellschaft.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
MisterD



Anmeldungsdatum: 10.09.2004
Beiträge: 3071
Wohnort: bei Darmstadt

BeitragVerfasst am: 10.02.2006, 23:16    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
Michael Frey



Anmeldungsdatum: 18.12.2004
Beiträge: 2577
Wohnort: Schweiz

BeitragVerfasst am: 11.02.2006, 10:38    Titel: Antworten mit Zitat

Nette Idee das mit dem als Pointer deklarieren, nur es gibt INTERGER PTR, Byte PTR, ZSTRING PTR etc.
Siehe http://fb.exp-soft.de/r.php?s=PTR.
Wenn man denn Typ des Pointers nicht kennt, kommt man nicht wesentlich weiter ...

@Lutz Ifer
Also bei mir fehlt Lesson13, also genau die, die um die es jetzt gerade geht.
_________________
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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
MisterD



Anmeldungsdatum: 10.09.2004
Beiträge: 3071
Wohnort: bei Darmstadt

BeitragVerfasst am: 11.02.2006, 13:26    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
Michael Frey



Anmeldungsdatum: 18.12.2004
Beiträge: 2577
Wohnort: Schweiz

BeitragVerfasst am: 11.02.2006, 15:06    Titel: Antworten mit Zitat

Der Datentyp von HDC ist HDC ... peinlich
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

ugly!

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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Thorben



Anmeldungsdatum: 26.04.2005
Beiträge: 173
Wohnort: SH

BeitragVerfasst am: 11.02.2006, 19:29    Titel: Antworten mit Zitat

@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! grinsen

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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Michael Frey



Anmeldungsdatum: 18.12.2004
Beiträge: 2577
Wohnort: Schweiz

BeitragVerfasst am: 11.02.2006, 20:54    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Thorben



Anmeldungsdatum: 26.04.2005
Beiträge: 173
Wohnort: SH

BeitragVerfasst am: 11.02.2006, 21:42    Titel: Antworten mit Zitat

Ich benutze FB version 0.15 Beta und habe WinXP und bei
mir funktioniert der Code einwandfrei so wie er dort steht.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Mecki
Igel


Anmeldungsdatum: 10.09.2004
Beiträge: 985
Wohnort: Niederbayern

BeitragVerfasst am: 12.02.2006, 04:28    Titel: Antworten mit Zitat

fb0.15b, Win2k = keine Probleme + großes rotes Hallo! happy Rote Socke zwinkern

@Michael: Vielleicht hast du die Schriftart Comic Sans MS nicht? Fänd ich aber komisch, die is schließlich sowas wie Standard bei Windows.. Aber probier doch mal Arial etc.

Grüßle,
Mecki
_________________
» Yodl.de: So sucht man gestern. verwundert
» Geld verdienen im Netz + ICQ.
» Firefox!
» 100€ zu gewinnen
» FreeBASIC.de
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen AIM-Name Yahoo Messenger MSN Messenger
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu FreeBASIC. Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
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.

 Impressum :: Datenschutz