Files |  Tutorials |  Articles |  Links |  Home |  Team |  Forum |  Wiki |  Impressum

Aktuelle Zeit: Fr Jul 18, 2025 14:16

Foren-Übersicht » Programmierung » Einsteiger-Fragen
Unbeantwortete Themen | Aktive Themen



Ein neues Thema erstellen Auf das Thema antworten  [ 7 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: Lauftext
BeitragVerfasst: Mo Jun 27, 2005 00:33 
Offline
DGL Member

Registriert: Mo Jun 27, 2005 00:20
Beiträge: 2
Hallo OpenGL Freunde,
zur Zeit lerne ich auch OpenGL zu programmieren. Natürlich bin ich dabei noch ganz am Anfang und quäle mich schon jetzt bei der Textausgabe in Form eines Lauftextes.
Erstmal zum Code von Nehe für die Schrift:
Code:
  1. procedure BuildFont;
  2. var Font: HFONT;
  3. begin
  4.   base := glGenLists(96);
  5.   font := CreateFont(-14, 0, 0, 0, FW_BOLD, 0, 0, 0, ANSI_CHARSET, OUT_TT_PRECIS, CLIP_DEFAULT_PRECIS, ANTIALIASED_QUALITY, FF_DONTCARE or DEFAULT_PITCH, 'Courier New');
  6.   SelectObject(h_dc,font);
  7.   wglUseFontBitmaps(h_dc,32,96,base);
  8. end;
  9.  
  10. procedure KillFont;
  11. begin
  12.   glDeleteLists(base,96);
  13. end;
  14.  
  15. procedure glPrint(text: string);
  16. begin
  17.   if text = '' then exit;
  18.   glPushAttrib(GL_LIST_BIT);
  19.   glListBase(base - 32);
  20.   glCallLists(length(text),GL_UNSIGNED_BYTE,Pchar(text));
  21.   glPopAttrib;
  22. end;


Und nun zum Code meines "Lauftextes":
Code:
  1. function DrawGLScene():bool;                            
  2. begin
  3.   glClear(GL_COLOR_BUFFER_BIT or GL_DEPTH_BUFFER_BIT);
  4.   glLoadIdentity();
  5.   glTranslatef(-0.0,0.0,-2.0);
  6.   glRasterPos2f(sc, 0.32);
  7.   glPrint('Wenn du auf Attachment hinzufügen klickst, dann siehst du eine Box zum Hinzufügen von Attachments.');
  8.   sc:=sc-0.01;
  9.   Result := true;
  10. end;


Noch zu sagen ist, dass:
Code:
  1. var sc: GLfloat = 0.56;


Der Text wird nun erzeugt und ausgegeben, zunächst ganz rechts. Jetzt fährt nach links und sobald er den linken Fensterrand erreicht hat verschwindet der KOMPLETTE Text. Ich möchte jedoch, dass der Text nach links, aus dem Fenster herraus, scrollt und dann später wieder rechts anfängt (wobei das mit dem Neustart rechts nicht das Problem wäre).

Ich hoffe ich habe mein Problem halbwegs verständlich beschrieben und hoffe, dass mir geholfen werden kann :).

Voller Spannung auf Antwort :D,


Whoopee


 


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Jun 27, 2005 05:54 
Offline
DGL Member
Benutzeravatar

Registriert: Do Jun 19, 2003 10:44
Beiträge: 991
Wohnort: Karlsfeld (nahe München)
Ich hab den Code überflogen und konnte nichts falsches feststellen. Als einzige Möglichkeit bleibt das glRasterPos keine Werte auserhalb des sichtbaren Bereiches zuläst.

Da ich das nicht genau weis habe ich mal in unser Wiki unter glRasterPos geschaut:

http://wiki.delphigl.com/index.php/GlRasterPos

DGLWiki hat geschrieben:
Falls der resultierende Punkt nicht weggeschnitten wurde, wird der Punkt auf die Fenstergröße angepasst, als neue Rasterposition übernommen


DGLWik hat geschrieben:
Durch einen Aufruf von glBitmap (mit dem Bild Parameter nil) ist es möglich die Rasterposition auch außerhalb des sichtbaren Bereiches positionieren.


MfG
Flo

_________________
Danke an alle, die mir (und anderen) geholfen haben.
So weit... ...so gut


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Jun 27, 2005 16:37 
Offline
DGL Member
Benutzeravatar

Registriert: Sa Nov 13, 2004 11:00
Beiträge: 229
Wohnort: Steinhude
ich hab es mir auch mal angeschaut und es scheint wohl an dem glrasterpos zu liegen. Wenn ich mich jetzt richtig erinnert geht glrasterpos in pixeln von der linken oberen ecke, wodurch sich die schrift nicht oder kaum noch imfenster liegt und auch durch negative werte für rasterpos ziemlich schnell verschwindet.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Jun 28, 2005 16:38 
Offline
DGL Member
Benutzeravatar

Registriert: Mi Jul 16, 2003 15:20
Beiträge: 198
Ich würde an deiner Stelle überlegen, das ganze etwas anders anzugehen und den Text mittels Canvas.Textout erst in ein TBitmap und dann in eine Textur zu laden, und dann einfach ein Quadrat über den Bildschirm zu zeichnen, indem du den Text mit Hilfe der Texturkoordinaten rumwandern lässt, dass hätte folgende Vorteile :
1.Du kannst das Bitmap noch variieren, bevor du es in den Texturspeicher lädst und so zum Beispiel Smileys hinzufügen, oder die Schrift unterschiedlich einfärben.
2.Du kannst den Text ohne Probleme "loopen" (Beispiel : wenn du 'abc' "loopst"[ka, wie ich das nennen soll :wink: ] würde dieser Text wandern: 'abcabcabcabc' ... {man könnte natürlich auch leerzeichen und ähnliches einfügen}
mfG
Tomok

_________________
Bevor du definierst, was etwas ist, versichere dich seiner Existenz.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Jun 28, 2005 16:41 
Offline
Guitar Hero
Benutzeravatar

Registriert: Do Sep 25, 2003 15:56
Beiträge: 7810
Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Ja. Die Methode von Tomok ist rein OpenGL technisch denk ich die einfachste. Und du hast alle Möglichkeiten deinen Text im Raum zu bewegen und zu drehn.

_________________
Blog: kevin-fleischer.de und fbaingermany.com


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Jun 28, 2005 16:47 
Offline
Fels i.d. Brandung
Benutzeravatar

Registriert: Sa Mai 04, 2002 19:48
Beiträge: 3830
Wohnort: Tespe (nahe Hamburg)
Ah je oh je... wie was höre ich da? Windows-Only Technology? Eigentlich ist es ja noch nicht 100& fertig, aber ich schmeiße einfach einmal etwas als kleines Prewview in den Raum, dass sich einem Submodul von SDL bedient um TrueType Fonts als OpenGL-Textur zu generieren. JEDI-Header vorrausgesetzt (sprich DGLSDK). Nicht unbedingt als Ersatz, aber vielleicht als alternativer Ansatz.


Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

_________________
"Light travels faster than sound. This is why some people appear bright, before you can hear them speak..."


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Jun 28, 2005 17:18 
Offline
DGL Member

Registriert: Mo Jun 27, 2005 00:20
Beiträge: 2
Danke euch allen :) ich experientiere mal etwas rum...


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 7 Beiträge ] 
Foren-Übersicht » Programmierung » Einsteiger-Fragen


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 3 Gäste


Du darfst keine neuen Themen in diesem Forum erstellen.
Du darfst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge in diesem Forum nicht ändern.
Du darfst deine Beiträge in diesem Forum nicht löschen.
Du darfst keine Dateianhänge in diesem Forum erstellen.

Suche nach:
Gehe zu:  
  Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de
[ Time : 0.008s | 15 Queries | GZIP : On ]