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

Aktuelle Zeit: Sa Jul 05, 2025 12:46

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



Ein neues Thema erstellen Auf das Thema antworten  [ 16 Beiträge ]  Gehe zu Seite 1, 2  Nächste
Autor Nachricht
 Betreff des Beitrags: Textausgabe
BeitragVerfasst: Do Aug 14, 2008 00:43 
Offline
DGL Member
Benutzeravatar

Registriert: Di Apr 29, 2008 18:56
Beiträge: 1213
Programmiersprache: Delphi/FPC
HI,

ich wollt ma fragen wie ich in OpenGL einen Text ausgeben kann. Ich hab schonma n paar zahlen ausgegeben, da hab ich eine Textur mit allen Ziffern drauf gemacht und dann einafch nur die textur entsprechend verschoben, aber ich glaub das ist bei Buchstaben und längeren Texten nicht grad effektiv, oder?
Kann mir jemand erklären wie ich sowas mach, am besten mit Code als Anschauung oder gibt es vlt. sogar ein Tutorial dazu?

MfG & Thx Bergmann.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Aug 14, 2008 07:16 
Offline
DGL Member
Benutzeravatar

Registriert: Fr Jun 20, 2003 13:59
Beiträge: 134
Hi,

also mit einer Fonttextur zu arbeiten ist ich glaube der beste Weg den du gehen kannst und wenn du nach Texture Font Generator oder so googelst findest du auch einige Programme mit denen du solche Texturen erstellen kannst.

Bei langen Texten kannst du das ganze in ein FBO zeichen um nicht so viel Performance zu verlieren.

Aber das einfachste ist warscheinlich wenn du dir mal dises Projekt von Lossy eX anschaust.

_________________
ghost-site.de


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Aug 14, 2008 08:40 
Offline
DGL Member
Benutzeravatar

Registriert: Do Dez 05, 2002 10:35
Beiträge: 4234
Wohnort: Dortmund
Um genau zu sein gibt es gar keinen sinnvollen anderen Weg als über eine Textur. Die bisherigen Methoden hatten alle irgendwo so ihre Probleme. Diese Möglichkeiten existieren also auch schon seit ca 13 Jahren. Also seit anbegin von OpenGL.

Diese Texturtools arbeiten sehr sehr häufig mit einem 16x16 Raster was natürlich die Anzahl der möglichen Zeichen stark einschränkt und sehr viel Platz in den Texturen verschenkt. In meinem Projekt erstelle ich nur die benötigten Zeichen und packe sie dort hin wo Platz ist. Dadurch werden ca 90% der Texture auch wirklich genutzt. Man benötigt aber dann die passenden Fonts auf den Rechnern wo die Anwendung laufen soll.

FBO ist sicherlich auch möglich allerdings lohnt sich das vermutlich nur bei wirklich großen Texten. Und dann darf man die Texte natürlich nicht dauerhaft neu erstellen. Sonst hat man mehr Arbeit ohne die Vorteile überhaupt nutzen zu können. Aber im normalfall denke ich nicht, dass das nötig sein wird. Denn in der Regel hat man eine Textur und zeichnet X Quads. Ähnlich wie ein 3D Model. Eine Textur und X Flächen. Nur sind Modelle meist viel komplexer. Also mit anderen Worten. Da würde ich mir vorerst nicht so die Gedanken machen.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr Aug 15, 2008 17:40 
Offline
DGL Member
Benutzeravatar

Registriert: Di Apr 29, 2008 18:56
Beiträge: 1213
Programmiersprache: Delphi/FPC
HI, hab's mir ma durchgelesen und hab jetzt folgendes Problem.
Ich will sowas wie ne Spechblase machen und will dazu Text auf eine Texture Rendern und beides dann in einer 2. Textur ablegen. Aber irgendwie komm ich mit der BlendFunc nich so richtig klar, ich hab schon mehrere sachen ausprobiert, aber entweder die Sprechblase verfärbt sich, oder der text wird nicht richtig angezeigt. So hab ich das gemacht:

Code:
  1. procedure TSpeechBubble.TextOut(Text: String);
  2. begin
  3.   glViewport(0, 0, fTextureWidth, fTextureHeight);
  4.  
  5.   glMatrixMode(GL_PROJECTION);
  6.   glLoadIdentity;
  7.   glOrtho(0, fTextureWidth, fTextureHeight, 0, 0, 20);
  8.  
  9.   glMatrixMode(GL_MODELVIEW);
  10.   glLoadIdentity;
  11.  
  12.   glDisable(GL_BLEND);
  13.   glColor4f(1,1,1,1);
  14.   glBegin(GL_QUADS);
  15.     glBindTexture(GL_TEXTURE_2D,fSpeechBubble);
  16.     glTexCoord2f(0,1); glVertex3f(            0,              0, -1);
  17.     glTexCoord2f(0,0); glVertex3f(            0, fTextureHeight, -1);
  18.     glTexCoord2f(1,0); glVertex3f(fTextureWidth, fTextureHeight, -1);
  19.     glTexCoord2f(1,1); glVertex3f(fTextureWidth,              0, -1);
  20.   glEnd;
  21.  
  22.   glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
  23.   glEnable(GL_BLEND);
  24.  
  25.   glColor4fv(@fTextColor);
  26.   tsSetParameteri(TS_ALIGN, TS_ALIGN_BLOCK);
  27.   tsTextBeginBlock(25, 25, fTextureWidth-50, fTextureHeight-80, TS_BLOCKFLAG_WORD_WRAP);
  28.     tsFontBind(fFontID);
  29.     tsTextOutA(PAnsiChar(Text));
  30.   tsTextEndBlock;
  31.  
  32.   glBindTexture(GL_TEXTURE_2D, fTexture);
  33.   glCopyTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, 0, 0, fTextureWidth, fTextureHeight, 0);
  34.  
  35.   glDisable(GL_BLEND);    
  36. end;


Kann mir da bitte nochma jmd helfen?

MfG & Thx Bergmann.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr Aug 15, 2008 18:22 
Offline
DGL Member
Benutzeravatar

Registriert: Do Dez 05, 2002 10:35
Beiträge: 4234
Wohnort: Dortmund
Ist das unbedingt nötig daraus eine Textur zu machen? Denn das RenderToTextur ist nicht gerade das Schnellste.

Deine Sprechbalsentextur wird aber nicht gebunden. Denn das rufst du zwischen glBegin und glEnd auf. Damit wird der Aufruf ignoriert, da das nicht erlaubt ist. Ansonsten kann es natürlich immer sein, dass noch eine andere Texur aktiv ist, da du als letztes fTexture bindest. Außerdem kopierst du nur RGB Daten in fTexture. Damit enthält sie keine Transparenz mehr. Was sicher nicht so praktisch ist, wenn du sie Später irgendwo darstellen möchtest.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr Aug 15, 2008 18:37 
Offline
DGL Member
Benutzeravatar

Registriert: Di Apr 29, 2008 18:56
Beiträge: 1213
Programmiersprache: Delphi/FPC
Lossy eX hat geschrieben:
Ist das unbedingt nötig daraus eine Textur zu machen?

Muss nich sein, aber das is der einzige weg, der mir eingefallen ist...

Lossy eX hat geschrieben:
Deine Sprechbalsentextur wird aber nicht gebunden. Denn das rufst du zwischen glBegin und glEnd auf. Damit wird der Aufruf ignoriert, da das nicht erlaubt ist.

Also wenn ich das Blending aus mach, und nur meine Sprechblase zeichne wird sie angezeigt, auch wenn ich das im glbegin/glEnd-Block drin hab?!

Lossy eX hat geschrieben:
Außerdem kopierst du nur RGB Daten in fTexture. Damit enthält sie keine Transparenz mehr. Was sicher nicht so praktisch ist, wenn du sie Später irgendwo darstellen möchtest.

Da könnt ich ja einfach GL_RGBA einstetzen, oder?

MfG Bergmann.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa Aug 16, 2008 14:22 
Offline
DGL Member
Benutzeravatar

Registriert: Di Apr 29, 2008 18:56
Beiträge: 1213
Programmiersprache: Delphi/FPC
Moin,

ich hab's jetzt auch ma FBO's probiert, aber da man dort ja kein AA hat sieht die Schrift furchtbar aus! Dann hab ich mich an PixelBuffer gamacht, aber:
Code:
  1. Handle := wglCreatePBufferARB(TempDC, PFormat[0], Width, Height, @PixelBufferAttribs);
liefert immer 0 zurück. Hab mich dabei an das Tutorial von Sascha Willems gehalten.
Dann hab ich versucht meine fTexture so umzubauen, das ich ihr auch die Alpha-Werte übergeben kann: Hab sie mit dem Parameter GL_RGBA erzeugt und dann bei glCopyTexImage2D auch GL_RGBA übergeben, aber irgendwie funzt das trotzdem nich?!

MfG Bergmann.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa Aug 16, 2008 15:19 
Offline
DGL Member
Benutzeravatar

Registriert: Do Dez 05, 2002 10:35
Beiträge: 4234
Wohnort: Dortmund
Bergmann89 hat geschrieben:
Lossy eX hat geschrieben:
Ist das unbedingt nötig daraus eine Textur zu machen?

Muss nich sein, aber das is der einzige weg, der mir eingefallen ist...

Tut mir leid, wenn ich das so direkt sage. Aber was zum Geier hast du eigentlich vor? ;) Irgendwie verstehe ich nicht was du damit bezweckst. Du willst doch eine Sprechblase ausgeben, oder? Das Einfachste wäre die Blasentextur zu zeichnen und dann den Text darüber zu zeichnen. Und langsam wird das so auch nicht sein. Klar es ist schneller ein texturiertes Quad zu zeichnen anstelle von 200. Aber die sind auch kleiner und die Karten haben kein Problem damit. Ich verstehe nicht warum du mit allen Mitteln versucht es in eine Textur zu packen.

Warum die Schrift in dem FBO nicht gut ausgesehen hat kann ich nur raten. Aber die Zeichen sind nichts weiter als texturierte Quads. Also weise ich da mal alle Schuld von mir.

RenderToTexture: Du bräuchtest da höchstwahrscheinlich einen Alphakanal und der muss für den RenderContext explizit erstellt werden. Und selbst dann kann sich der Treiber darüber hinweg setzen. Weswegen ich das nur verfolgen würde, wenn es wirklich wirklich zwingend notwendig ist. Was ich da gerade so gar nicht sehe.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa Aug 16, 2008 15:57 
Offline
DGL Member
Benutzeravatar

Registriert: Di Apr 29, 2008 18:56
Beiträge: 1213
Programmiersprache: Delphi/FPC
HI,

irgendwie war ich verwirrt: ich hab mir das SimpleBlock_VCL Beispiel angesehen. Und dachte nun, das man den TextBlock bloß in 2D rendern kann, das das auch in 3D geht wusste ich nich ^^ Auf jedenfall hab ich's jetzt umgebaut. Jetzt hab ich aber irgendwie immer schwarze Striche vor den Buchstaben. wie bekomm ich die weg?
So hab ich das angestellt:
Code:
  1.   glDisable(GL_BLEND);    
  2.   glPushMatrix;
  3.   glColor4f(1,1,1,1);
  4.   glBindTexture(GL_TEXTURE_2D,fSpeechBubble);
  5.   glBegin(GL_QUADS);
  6.     glTexCoord2f(0,1); glVertex3f( -200,  200, 0);
  7.     glTexCoord2f(0,0); glVertex3f( -200, -200, 0);
  8.     glTexCoord2f(1,0); glVertex3f(  200, -200, 0);
  9.     glTexCoord2f(1,1); glVertex3f(  200,  200, 0);
  10.   glEnd;
  11.   glPopMatrix;
  12.  
  13.   glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
  14.   glEnable(GL_BLEND);
  15.  
  16.   glPushMatrix;
  17.   glTranslatef(0,0,1);
  18.   glScalef(1,-1,1);
  19.   glColor4fv(@fTextColor);
  20.   tsSetParameteri(TS_ALIGN, TS_ALIGN_BLOCK);
  21.   tsTextBeginBlock(-180, -180, 360, 360, TS_BLOCKFLAG_WORD_WRAP);
  22.     tsFontBind(fFontID);
  23.     tsTextOutA(PAnsiChar(Text));
  24.   tsTextEndBlock;
  25.   glPopMatrix;


MfG Bergmann.

p.s. nich über den Text wundern, hat nix mit dem Thema zu tun xD


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


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa Aug 16, 2008 17:43 
Offline
DGL Member
Benutzeravatar

Registriert: Do Dez 05, 2002 10:35
Beiträge: 4234
Wohnort: Dortmund
Die TextBibliothek ist eher für 2D ausgelegt und bei 3D kann es eben zu diesen Problemen kommen. Dafür habe ich für später noch was geplannt. Aktuell kannst (musst) du mit einem Trick arbeiten. Und zwar ist das Problem, dass die Buchstaben aktuell direkt nebeneinander liegen und das führt eben zu diesen Strichen, da die Textur geglättet wird und verläuft.

Wenn deine Zeichen nur weiß sind und du über die OpenGL Farbe deren farbe bestimmst, dann kannst du mit einem tranparenten Schatten arbeiten. Also tsPostAddShadow. Als Position wählst du 0, 0. Für den Radius wählst du 1 oder so. Und als Farbe weiß. Wichtig dabei. Der Alphakanal MUSS den Wert 0 bekommen. Den Schatten richtest du ein nachdem du das Font erstellt hast.

Damit würden um die Zeichen transparente Pixel entstehen. Und der Weichzeichner würde dann zu transparenten Texturen blenden. Es kann aber sein, wenn du die Schriften mit der Farbe weiß oder etwas helles benutzt, dass dann wiederrum andere Fehler auftauchen. Das kann man beheben aber das spare ich mir mal, da ich nicht genau weiß wann das auftritt. Liegt aber alles so ein bisschen mit dem Weichzeichner von OpenGL zusammen. Sind leider nur hacks. Aber ich weiß was man machen müsste um es richtig zu machen. Ist aber mehr arbeit im code. Deswegen derzeit nur hacks.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr Aug 22, 2008 13:12 
Offline
DGL Member
Benutzeravatar

Registriert: Di Apr 29, 2008 18:56
Beiträge: 1213
Programmiersprache: Delphi/FPC
HI,

hab noch ein Problem: Normalerweiße is ja die Sprechblase nur so groß, das der Text gerade so rein passt.
Gibt es ne Funktion mit der ich rausfinden kann, wieviel von dem Textblock beschrieben wurde, bzw. weiviele Zeilen?

MfG Bergmann.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr Aug 22, 2008 14:59 
Offline
DGL Member
Benutzeravatar

Registriert: Do Dez 05, 2002 10:35
Beiträge: 4234
Wohnort: Dortmund
Wenn du innerhalb des TextBlockes tsTextGetHeight, mit nil als Parameter aufrufst, bekommst du die aktuelle Höhe zurückgegeben. Dazu kannst du auch mal in das AdvancedBlock Beispiel schauen. Dort lese ich den Wert aus und übertrage ihn auf den nächsten Block.

Wenn du wissen möchtest wie groß ein Block ist, ohne etwas auszugeben, kannst du auch das Flag TS_BLOCKFLAG_CALC_SIZE als Flag bei tsTextBeginBlock angeben. Dann wird nur die Größe berechnet.

PS: tsTextGetWidth sollte entsprechend die Breite zurückliefern.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr Aug 22, 2008 16:31 
Offline
DGL Member
Benutzeravatar

Registriert: Di Apr 29, 2008 18:56
Beiträge: 1213
Programmiersprache: Delphi/FPC
Gut, danke das hilft mir weiter.
Hab grad noch ein Problem entdeckt: Ich hab mit ne Klasse erstellt, mir der ich die Fonts ganz
einfach erstellen und Text schnell ausgeben kann. Aber wenn ich 2 Fonts mach, und die Schrift
vom 1. Veränder, dann ändern sich Beide?! So hab ich das gemacht:

die TFont-Klasse:
Code:
  1. [...]
  2. uses
  3.   TextSuite, Dialogs, DGLOpenGL;
  4.  
  5. type
  6.   TTextColor = array[0..3] of Single;
  7.   TFont = class
  8.   private
  9.     fContextID: tsContextID;
  10.     fFontID: tsFontID;
  11.     fStyle: Cardinal;
  12.     fWidth: Integer;
  13.     fFileName: String;
  14.     fColor: TTextColor;
  15.     procedure CreateFont;
  16.   public
  17.     property Style: Cardinal read fStyle;
  18.     property Width: Integer  read fWidth;
  19.     property FileName: String read fFileName;
  20.     constructor Create(FontFileName: String; FontWidth: Integer; Style: Cardinal);
  21.     destructor  Destroy;
  22.     procedure   SetFontFileName(FontFileName: String);
  23.     procedure   SetFontWidth(FontWidth: Integer);
  24.     procedure   SetFontStyle(FontStyle: Cardinal);
  25.     procedure   SetColor(r,g,b,a: Single);
  26.     procedure   TextOut(Text: String; X,Y,Width,Height: Single; Align: Cardinal);
  27.   end;
  28.  
  29. procedure CheckError;
  30.  
  31. implementation
  32.  
  33. [...]
  34.  
  35. constructor TFont.Create(FontFileName: String; FontWidth: Integer; Style: Cardinal);
  36. begin
  37.   inherited Create;
  38.  
  39.   fColor[0] := 0;
  40.   fColor[1] := 0;
  41.   fColor[2] := 0;
  42.   fColor[3] := 1;
  43.  
  44.   fFileName := FontFileName;
  45.   fWidth    := FontWidth;
  46.   fStyle    := Style;
  47.  
  48.   if tsInit(TS_INIT_TEXTSUITE) = TS_FALSE then begin ShowMessage('Initialing TextSuite failed.'); Halt; end;
  49.   if tsInit(TS_INIT_OPENGL)    = TS_FALSE then begin ShowMessage('Initialing OpenGL failed.');    Halt; end;
  50.   if tsInit(TS_INIT_GDI)       = TS_FALSE then begin ShowMessage('Initialing GDI failed.');       Halt; end;
  51.  
  52.   tsContextCreate(@fContextID);
  53.   tsContextBind(fContextID);
  54.  
  55.   CreateFont;
  56. end;
  57.  
  58. [...]
  59.  
  60. procedure TFont.CreateFont;
  61. begin
  62.   tsSetParameteri(TS_RENDERER, TS_RENDERER_OPENGL); CheckError;
  63.   tsSetParameteri(TS_CREATOR, TS_CREATOR_GDI); CheckError;
  64.   tsFontCreateCreator(pAnsiChar(fFileName), fWidth, fStyle, TS_DEFAULT, TS_DEFAULT, @fFontID); CheckError;
  65.   tsPostAddShadow4f(1,0,0,1,1,1,0);
  66. end;
  67.  
  68. [...]
  69.  
  70. procedure TFont.TextOut(Text: String; X,Y,Width,Height: Single; Align: Cardinal);
  71. begin
  72.   glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
  73.   glEnable(GL_BLEND);
  74.  
  75.   glPushMatrix;
  76.     glScalef(0.01,-0.01,0.01);
  77.     glColor4fv(@fColor);
  78.     tsSetParameteri(TS_ALIGN, Align);
  79.     tsTextBeginBlock(round((X*100)-(Width*50)),
  80.                      round((Y*100)-(Height*50)),
  81.                      round(Width*100),
  82.                      round(Height*100),
  83.                      TS_BLOCKFLAG_WORD_WRAP);
  84.       tsFontBind(fFontID);
  85.       tsTextOutA(PAnsiChar(Text));
  86.     tsTextEndBlock;
  87.   glPopMatrix;
  88.  
  89.   glDisable(GL_BLEND);
  90. end;
  91.  
  92. end.


Zeichnen mit hilfe der TFont-Klasse:
Code:
  1. var fFont1, fFont2: TFont;
  2.  
  3.   FontFileName := ExtractFilePath(Application.ExeName)+'data\arial_bold.ttf';
  4.   fFont1 := TFont.Create(FontFilename,125,TS_STYLE_NORMAL);
  5.   fFont2 := TFont.Create(FontFilename, 25,TS_STYLE_NORMAL);
  6.  
  7.   fFont1.TextOut('Test',0,0,2,2,TS_ALIGN_CENTER);
  8.   fFont2.TextOut('Test',0,2,2,2,TS_ALIGN_CENTER);
  9.  


und das liefert mir 2x das selbe! versteh ich nich. ich find auch kein fehler in meiner klasse...kannst du mir da bitte nochma helfen?

MfG & Thx Bergmann.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr Aug 22, 2008 18:00 
Offline
DGL Member
Benutzeravatar

Registriert: Do Dez 05, 2002 10:35
Beiträge: 4234
Wohnort: Dortmund
Joahr. Des Rätsels Lösung in dem Bild über den Aufbau der Bibliothek. Du erstellst bei dir jeweils einen Kontext und ein Font.

Du solltest aber besser nur einen TextSuite Kontext pro OpenGL Kontext erstellen. Und entsprechend den Renderer nur ein einziges Mal setzen. Denn sobald ein Font existiert kann man das sowieso nicht mehr ändern. Die Kontexte sind eigentlich nur da um in einem anderen Thread zu arbeiten oder in einem anderen OpenGL Kontext.


PS: Wenn du neue Fragen hast wäre es nett, wenn du der Übersicht halber ein neues Thema machst. Auch wenn vermutlich eher weniger darauf antworten werden wäre es besser. Danke.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Aug 27, 2008 15:16 
Offline
DGL Member
Benutzeravatar

Registriert: Di Apr 29, 2008 18:56
Beiträge: 1213
Programmiersprache: Delphi/FPC
HI,

mit einem Kontext gehts jetzt! Hab aber schon wieder n neues Problem xD
Irgendwie wird die Hohe und die Breite des TextBlocks nicht mehr richtig ausgelesen, obwohl es am Anfang ma ging.
Hab eigentlich auch nix verändert...
Code:
Width = 300;
Height = 200;
Code:
  1.   glPushMatrix;
  2.     glScalef(1,-1,1);
  3.     glColor4fv(@fTextColor);
  4.     tsSetParameteri(TS_ALIGN, TS_ALIGN_BLOCK);
  5.     tsTextBeginBlock(-Width div 2, -Height, Width, Height, TS_BLOCKFLAG_WORD_WRAP);
  6.       tsFontBind(fFontID);
  7.       tsTextOutA(PAnsiChar(Text));
  8.       fH := tsTextGetHeightA(PAnsiChar(Text));
  9.       fW := tsTextGetWidthA(PAnsiChar(Text));
  10.       Form1.Caption := FloatToStr(fH)+' ; '+FloatToStr(fW);
  11.     tsTextEndBlock;
  12.   glPopMatrix;

Ich sag ihm der Block soll 300x200 groß sein, aber fW enthält nach dem Aufruf 591?! Obwohl 300 doch eig. das Maximum ist, oder?
Die Höhe mit 28 haut hin, das entspricht genau einer Zeile. Aber was bei der Breite falsch gelaufen ist weiß ich nich!

MfG Bergmann.


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 16 Beiträge ]  Gehe zu Seite 1, 2  Nächste
Foren-Übersicht » Programmierung » Einsteiger-Fragen


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 4 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.012s | 14 Queries | GZIP : On ]