Einzelnen Beitrag anzeigen

EWeiss
(Gast)

n/a Beiträge
 
#14

Re: OpenGl Rendercontex schützen

  Alt 16. Jun 2008, 19:53
habe leider ein etwa gleiches problem mit dem Font
habe es umgestellt funktioniert aber nicht da die Matrix zweimal geändert wird
in der gleichen procedure.

Delphi-Quellcode:
procedure glPrintBitmap(x, y : GLFloat; text : pchar; fontset : GLint);

begin

  glPushAttrib(GL_ALL_ATTRIB_BITS);
  try
    if (fontset>1) then fontset :=1;
    glBindTexture(GL_TEXTURE_2D,fontset); // Select Our Font Texture
    glDisable(GL_DEPTH_TEST);                // Disables Depth Testing
    // 1 mal geändert
    glMatrixMode(GL_PROJECTION);                // Select The Projection Matrix
    glPushMatrix();                   // Store The Projection Matrix
    glLoadIdentity();                   // Reset The Projection Matrix
    glOrtho(0,640,0,480,-100,100);
    glMatrixMode(GL_MODELVIEW);             // Select The Modelview Matrix
    glPushMatrix();                   // Store The Modelview Matrix
    glLoadIdentity();                   // Reset The Modelview Matrix

    glTranslated(x,y,0);                   // Position The Text (0,0 - Bottom Left)
    glListBase(base - 32 + (128 * cardinal(fontset))); // Choose The Font Set (0 or 1)
    glCallLists(strlen(text),GL_BYTE,text);    // Write The Text To The Screen
    // 2 mal geändert
    glMatrixMode(GL_PROJECTION);                // Select The Projection Matrix
    glPopMatrix();                   // Restore The Old Projection Matrix
    glMatrixMode(GL_MODELVIEW);                // Select The Modelview Matrix
    glPopMatrix();                   // Restore The Old Projection Matrix
    glEnable(GL_DEPTH_TEST);                // Enables Depth Testing
  finally
    glPopAttrib;
  end;

end;

Delphi-Quellcode:
procedure HoldMatrixFontMode(x, y : GLFloat; text : pchar; fontset : GLint);
var
  iMatrixMode : integer;
begin
  glGetIntegerv(GL_MATRIX_MODE, @iMatrixMode);
  glMatrixMode(GL_PROJECTION);
  glPushMatrix;
  try
    glPrintBitmap(x, y, text, fontset);
  finally
    glMatrixMode(GL_PROJECTION);
    glPopMatrix;
    glMatrixMode(iMatrixMode);
  end;
end;
kannst mir nochmal nen tip geben wie ich das hin bekomme ?
Aufruf..
HoldMatrixFontMode(10, 13, SongName, 1); EDIT:
Von Text kann man da nicht sprechen..
Hat sich erledigt ...

gruss Emil
Miniaturansicht angehängter Grafiken
text_470.jpg  
  Mit Zitat antworten Zitat