Become a MacRumors Supporter for $50/year with no ads, ability to filter front page stories, and private forums.

Blakeasd

macrumors 6502a
Original poster
Dec 29, 2009
643
0
I saw some previous posts and explantations on the internet of glOrthof, but I just don't get it. I am watching the Stanford OpenGL ES lesson on Youtube and the following code came up:

Code:
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glOrthof(0, backingWidth, 0, backingHeight, -1, 1);

This code draws a picture 1px by 1px in the bottom left hand corner of the screen. Why would it do this though? I thought this code would take the picture from (0,0) and stretch it across the entire screen because it specifies the plane as from 0 to the width of the screen and 0 to the height of the screen. Can someone please explain as simply as possible why it draws it as 1px by 1px in the bottom left hand corner. The full source code can be found on the Stanford website labeled as "openGLtransforms.zip":

http://www.stanford.edu/class/cs193p/cgi-bin/drupal/node/79

(The file where this code appears is ESRenderer1.m)

Thanks!
 
The arguments you pass to glOrtho define the boundaries of the projection. For 2D drawing, glOrtho defines the visible area of the screen in OpenGL units. In the code you listed, calling glOrtho sets the lower left corner of the screen to (0, 0) and the upper right corner of the screen to (backingWidth, backingHeight). Anything drawn in the range of (0, 0) to (backingWidth, backingHeight) will be visible on the screen. Assuming that backingWidth and backingHeight are the width and height of the screen in pixels, the code you listed sets a projection where one OpenGL unit equals one screen pixel.

Why does the example draw the picture with a size of one pixel? I haven't looked at the code, but my guess is the code draws from 0 to 1 in OpenGL units. Since you set up the projection so one OpenGL unit equals one pixel, the drawn picture is one pixel in size. If you modify the call to glOrtho by substituting 1 for backingWidth and backingHeight, the picture should fill the screen.
 
Last edited:
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.