Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   [dglOpenGl & TextSuite] Text umdrehen? (https://www.delphipraxis.net/157145-%5Bdglopengl-textsuite%5D-text-umdrehen.html)

Edlmann 31. Dez 2010 13:20


[dglOpenGl & TextSuite] Text umdrehen?
 
Liste der Anhänge anzeigen (Anzahl: 1)
Guten Nachmittag liebe Dp,

ich arbeite mich zur Zeit in OpenGL ein, und wollte mich nun mal dranmachen, Text auszugeben.
Ich arbeite mit der dglOpenGl.Pas aus der DGL Wiki und hab mir aus deren Forum (Dieser Beitrag)
die Textsuite heruntergeladen. Das Text ausgeben selber funktioniert auch schon soweit, Problem: Ich benutze das Koordinatensystem
von OpenGl (Also Ursprung Unten Links), die Textsuite ist aber auf das Delphi-(Windows-)Koordinatensystem ausgelegt (Ursprung Oben Links).
Dementsprechend ist der Text, den ich nun mit Textsuite ausgebe, auf dem Kopf :evil:

Den Text gebe ich wie folgt aus:
Delphi-Quellcode:
    // Farbe setzen
  tsTextColor3f(1, 1, 1);

  // Die Font aktivieren - wird vorher Erstellt etc, funktioniert ja auch soweit
  tsFontBind(fFontID);

  // Mittelbündige Schrift
  tsSetParameteri(TS_ALIGN, TS_ALIGN_CENTER);

  // Die eigentliche Textausgabe
  glPushMatrix;
    glTranslatef(XPos, YPos, 0);
    tsTextOutA('TestText');
  glPopMatrix;
Die Frage nun, wie drehe ich den Text um? Eigentlich müsste ich ihn ja einmal um die X-Achse um 180° drehen.
Also würde der Aufruf dann doch wie folgt aussehen:
Delphi-Quellcode:
glPushMatrix;
    glRotatef(180, 1, 0, 0)
    glTranslatef(XPos, YPos, 0);
    tsTextOutA('TextSuite Sample - Single Line');
  glPopMatrix;
Oder Irre ich mich da? Die Ausgabe auf dem Bildschirm ist jedoch nach aufruf von glRotatef komplett schwarz. Ich hoffe mir kann
jemand helfen,

Liebe Grüße und Guten Rutsch,
Edlmann

[Edit] Anbei ein Screenshot von meinem Problem [/Edit]

fui-tak 7. Jan 2011 23:35

AW: [dglOpenGl & TextSuite] Text umdrehen?
 
Könnte es sein, dass du das Backface Culling aktiviert hast, damit die Rückseiten nicht gerendert werden, was so aussieht:

Delphi-Quellcode:
  glEnable(GL_CULL_FACE);          
  glCullFace(GL_BACK);
Wenn du deine Schrift um 180° um die X-Achse drehst, willst du ja, dass die Rückseite ausgegeben wird. Ist das Backface Culling aktiviert, geschieht das nicht.

Edlmann 8. Jan 2011 10:48

AW: [dglOpenGl & TextSuite] Text umdrehen?
 
stimmt, das könnte sein dass ich Backface-Culling aufgrund der Performance aktiviert habe...auch wenn das bei 2D-Spielen eher wenig sinn macht ;)
schau ich gleich mal nach, habe es bisher gelöst indem ich die Positionierung in der TextSuite umgeschrieben hab ^^


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:55 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz