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

Aktuelle Zeit: So Mai 26, 2024 04:59

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



Ein neues Thema erstellen Auf das Thema antworten  [ 3 Beiträge ] 
Autor Nachricht
BeitragVerfasst: Mi Okt 30, 2013 08:20 
Offline
DGL Member
Benutzeravatar

Registriert: Do Sep 12, 2013 07:45
Beiträge: 61
Programmiersprache: Turbo Delphi 2006
Hallo,
Ich habe wieder mal ein Problem. Ich lasse einen Text mit der TextSuite als Block ausgeben und er erscheint auf dem Kopf stehend. Eigentlich kein Problem glrotate und um 180° gedreht. Nur da ist dann nichts mehr zu sehen. Mit glScalef(1, -1, 1) das gleiche, rufe ich beides auf steht der Text wieder auf dem Kopf.
Lasse ich den Text nicht als Block sondern als Zeile ausgeben steht er auch Kopf aber ich kann ihn drehen.
Hat jemand einen Vorschlag?

Hier mal der Code

Code:
  1. InitOpenGL;
  2. DC := GetDC(panel1.Handle);
  3. RC := CreateRenderingContext(DC, [opDoubleBuffered], 32, 24, 0, 0, 0, 0);
  4. ActivateRenderingContext(DC, RC);
  5. glEnable(GL_DEPTH_TEST);
  6. glDepthFunc(GL_LESS);
  7. glClearColor(0,0,0,0);
  8. glEnable(GL_TEXTURE_2D);
  9. glShadeModel(GL_SMOOTH);                   
  10. glHint(GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST);
  11. ...
  12. ...
  13. ...
  14.   glMatrixMode(GL_PROJECTION);
  15.   glLoadIdentity;
  16.   glViewPort(0, 0, Panel1.Width, Panel1.Height);
  17.   gluPerspective(50, Panel1.Width/Panel1.Height, 0.1, 128);
  18.   glMatrixMode(GL_MODELVIEW);
  19.   glLoadIdentity;
  20.   glClear(GL_COLOR_BUFFER_BIT or GL_DEPTH_BUFFER_BIT);
  21.  ...
  22.  ...
  23.  ...
  24.   glClear( GL_COLOR_BUFFER_BIT or GL_DEPTH_BUFFER_BIT );
  25.   glLoadIdentity;
  26.   glTranslatef( 0, 0.5, -2 );
  27. ...
  28. ...
  29. ...
  30.   glMatrixMode(GL_PROJECTION);
  31.   glDisable(GL_TEXTURE_2D);
  32.   glenable(gl_blend);
  33.   glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
  34.   glPushMatrix();
  35.   glLoadIdentity();
  36.   glOrtho(0,800,0,800,-2048,2048);
  37.   glMatrixMode(GL_MODELVIEW);
  38.   glLoadIdentity();
  39. ...
  40. ...
  41. ...
  42.   glColor3f(1, 1, 1);
  43.   glEnable(GL_ALPHA_TEST);
  44.   glAlphaFunc(GL_GREATER, 0.1);
  45.   glBindTexture(GL_TEXTURE_2D,tex_GUI);
  46.   glBegin(GL_quads);
  47.     glTexCoord2f(0,1);       glVertex3d(0, 0, -5);
  48.     glTexCoord2f(1,1);       glVertex3d(800, 0,  -5);
  49.     glTexCoord2f(1,0);       glVertex3d(800, 800, -5);
  50.     glTexCoord2f(0,0);       glVertex3d(0, 800,  -5);
  51.   glEnd();
  52. ...
  53. ...
  54. ...
  55.  
  56.   tsTextColor3f(0, 0, 0);
  57.   tsFontBind(fSmallFontID);
  58.   tsSetParameteri(TS_ALIGN, TS_ALIGN_BLOCK);
  59.   glLoadIdentity;
  60.   glPushMatrix;
  61.     glTranslatef(0 , 0, 0);
  62.     glrotatef(00,1,0,0);
  63.     glScalef(1, 1, 1);
  64.  
  65.     tsTextBeginBlock(142, 38, 525, 155, TS_BLOCKFLAG_WORD_WRAP);
  66.       tsTextOutA('TextTextText');
  67.     tsTextEndBlock;
  68.   glPopMatrix;


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: Mi Okt 30, 2013 09:27 
Offline
DGL Member
Benutzeravatar

Registriert: Mi Jun 05, 2013 15:12
Beiträge: 166
Wohnort: Glinde
Programmiersprache: Delphi 7
Ich mag mich ja irren, aber musst du nicht eigentlich nur die Textur beim Zeichnen umdrehen ?

Code:
  1.  
  2.    glTexCoord2f(0,1);       glVertex3d(0, 0, -5);
  3.    glTexCoord2f(1,1);       glVertex3d(800, 0,  -5);
  4.    glTexCoord2f(1,0);       glVertex3d(800, 800, -5);
  5.    glTexCoord2f(0,0);       glVertex3d(0, 800,  -5);
  6.  


zu

Code:
  1.  
  2.    glTexCoord2f(0,0);       glVertex3d(0, 0, -5);
  3.    glTexCoord2f(1,0);       glVertex3d(800, 0,  -5);
  4.    glTexCoord2f(1,1);       glVertex3d(800, 800, -5);
  5.    glTexCoord2f(0,1);       glVertex3d(0, 800,  -5);
  6.  


Ich habe es nicht getestet.
Ist aber ein versuch wert.

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

LG Polar

_________________
幸福は笑う人に来て ~~ koufuku wa warau hito ni kite
Das Glück kommt zu denen die lachen


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: Mi Okt 30, 2013 16:57 
Offline
DGL Member
Benutzeravatar

Registriert: Do Sep 12, 2013 07:45
Beiträge: 61
Programmiersprache: Turbo Delphi 2006
Das Quad mit Textur schafft nur den Hintergrund für den Text und ist das letzte (habe es deshalb nicht im Code weggelassen) was vor dem Textblock gezeichnet wird.
Der Textblock beginnt ab Zeile 56.


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


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 10 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:  
cron
  Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de
[ Time : 0.008s | 14 Queries | GZIP : On ]