OpenGL Textausgabe
-
Hallo,
ich habe ein seltsames Problem mit der Textausgabe:
// String auf OpenGL Fenster ausgeben void drawString (char *s, bool animatedText) { // draw static text ... if (!animatedText) { // FUNKTIONIERT glutBitmapCharacter (GLUT_BITMAP_HELVETICA_10, (char)'.'); } // draw moving text ... if (animatedText) { //FUNKTIONIERT NICHT CreateThread(0, 0, TextFred, NULL, 0, 0); } }// Timer Thread DWORD WINAPI TextFred(LPVOID ptr) { glutBitmapCharacter (GLUT_BITMAP_HELVETICA_10, (char)'A'); return 0; }Bei dem Thread erfolgt einfach keine Ausgabe. Es gibt keinen Fehler.
Jemand eine Idee warum?
-
Der OpenGL-Context muss fuer jedem Thread gesetzt werden.
Ueberleg Dir besser nochmal ob wirklich mehrere Threads rendern muessen.
-
Jup ich habs gerade ergoogelt.
Hmm naja ich habe mehrere Textausgaben und bei Auswahl sollen diese gescrollt werden. Das wollte ich in einem separaten Thread machen, um nicht die main-loop zu blockieren...
-
Wie hattest du dir denn diese Scroll-Funktion vorgestellt?
-
Du musst dir folgendes vorstellen:
Der Textstring hat n Zeichen:
"Ich bin ein Teststring".
int start = 0; int end = 10;Es würden jetzt Zeichen ab start bis end dargestellt. Nach einem sleep(50) wird
start++; end++;gemacht, mit den entsprechenden Abfragen bzgl Stringlänge. Kommt man am Ende vom String an wird
start--; end--;ausgeführt. Dies suggeriert das Scrollen vom Text nach links und rechts, wobei immer nur 10 Zeichen zu sehen sind.
Ich hoffe es ist eingermaßen verständlich.