OpenGL 2D innaccuracy

BlitzMax Forums/BlitzMax OpenGL Programming/OpenGL 2D innaccuracy

The forum is locked. These are the original blitzbasic.com forums, kept so they can still be read. No new topics, replies or edits can be made here. To join in, head over to the Blitz3D+ forums.

I am writing some 2D commands, and need to draw pixel-perfect lines, points, and rectangles.

Let's say the client area is 400x300, and I want to draw a line (0,0,400,0), across the very top of the viewport.

1) I set glViewport to 0,0,400,300.

2) I set glOrtho to -200,200,-150,150.

3) I draw a line ((Ax-200),(300-Ay-150),(Bx-200),(300-By-150)) or ((0-200),(300-0-150),(400-200),(300-0-150)).

The line is one pixel too high, and lies offscreen. If I make a line across the very bottom, it lies offscreen as well. What is the correct mathematical change I need to make so that I can draw an arbitrary size window and get pixel-perfect results?

Thanks.