PDA

View Full Version : weird bug with bitmap fonts (or maybe rasters) when running on dual monitor setup



torisutan
10-01-2003, 09:56 PM
ok, this has weirded me out.
i have been pulling my hair out over a problem i was having where the text i am printing text to the screen (used wglUseFontBitmaps to generate displaylists, the raster them onto the screen) is not the color i specified by glColor4f. I was just about to give up on it, and then i moved the opengl window onto the 2nd monitor, and the color that i was looking for suddenly appeared!!!

"wtf??" i said as i moved the window from one minitor to the other watching the color appear and disaper (in this case, change from white to yellow)

i have figured out the cause depends on which head the specific monitor is plugged into on my video card (a soltek geforce fx 5600).
if the monitor is plugged into the analog head, it shows the color. but if it's plugged into the dvi head (thru a analog-to-dvi) converter, the color doesn't show.

however, i don't think it's a fault with the card, because if i hold the window half way between the two monitors it shows color on both. but as soon as the window is fully on the dvi-driven monitor the color disapears.

also, i tried disabling the monitor attached to the analog head, and then the color worked on the dvi-driven monitor.

I think it is something to do with how a raster color is set. i did a quick test using NeHe's bitmap font tutorial http://nehe.gamedev.net/data/lessons/lesson.asp?lesson=13 , slightly modified as such



int DrawGLScene(GLvoid)
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glLoadIdentity();
glTranslatef(0.0f,0.0f,-1.0f);
glColor3f(1.0f*float(cos(cnt1)),1.0f*float(sin(cnt 2)),1.0f-0.5f*float(cos(cnt1+cnt2)));
glBegin(GL_LINES);
glVertex3f(0.0f, 0.0f, 1.0f);
glVertex3f(0.0f, 0.0f, -1.0f);
glVertex3f(0.0f, 1.0f, 0.0f);
glVertex3f(0.0f, -1.0f, 0.0f);
glVertex3f(1.0f, 0.0f, 0.0f);
glVertex3f(-1.0f, 0.0f, 0.0f);
glEnd();
glRasterPos2f(-0.45f+0.05f*float(cos(cnt1)), 0.32f*float(sin(cnt2)));
glPrint("Active OpenGL Text With NeHe - %7.2f", cnt1);
cnt1+=0.051f;
cnt2+=0.005f;
return TRUE;
}

now, when on the analog-driven monitor, the colors of both the GL_LINES, and the rastered text "evolved". now when i moved the window onto the dvi-driven monitor teh color of the GL_LINES continued to "evolve", but the color of the text froze (did not go white, but froze on the last color set by the glColor3f line)

so, is this a fault with the nvidia drivers (det45.23)? or windows dual monitor system (win2003svr)? or OpenGL rastering? buggered if i know :P

anyone got any thoughts about this?
has anyone had a similar problem?

anyways, i hope my bringing this up sparks some sort of fix, cause it's a damned pain :P
--tristan