Question about scissor test oddity

I am working in a situation where model coordinates are mapped directly to pixels. (ie. doing something like glRecti(0,0,1,1) will reliably fill the lower left pixel of the viewport.) The viewport itself is set up by doing something like

gluOrtho2D(0, width, 0, height);

where width and height are the dimensions of the viewport.

Here is my question…

When the scissor test is enabled, I have to draw lines at half-integer values to draw exactly on one row of pixels (a line from (x1, 0.5) to (x2, 0.5) will draw exactly on the bottom row). However, if I disable the scissor test, I have to use exact integer values to draw exactly on one row. (the same line has to go from (x1, 0) to (x2, 0))

Any ideas what’s going on here? Is there any reason why the scissor test would/could shift coordinates?



What hardware/driver are you using? This behavior sounds incorrect. What are you setting the scissor region to?

Thanks -

[This message has been edited by cass (edited 03-06-2001).]

I was using the standard Microsoft software OpenGL implementation. (It describes itself as Microsoft Corporation, GDI Generic, 1.1.0)

I tried changing to the hardware driver for my GeForce2 MX and the problem went away. (thanks Cass) Using this driver, the correct way to draw a line exactly on a given pixel, regardless of the scissor test, is to use half-integer coordinates like 0.5. (Which is exactly how the red book says you should do it anyways.)

Is there a newer version of the MS software implementation? Is there a place to see known bugs for it?