I am helping work on a project that draws an image to the screen using glDrawPixels(). This is being drawn inside a xMotif scroll window (I believe anyways). When we click on the scrollbar, it takes 3-4 seconds to draw the new image and move the scroll bar. I thought about storing the glDrawPixels in a display list to try to make the moving more efficient. We applied the display list concept, but upon moving the scroll bars, the image still takes 3-4 seconds to redraw. Should a display list cause glDrawPixels to be more efficient? I don’t know much else about the program other than the little bit I have told you. These are very BIG files being displayed and drawn. But the project looks very bad when the scrolling doesn’t even keep up with the mouse. If display lists are not a viable way to go, is there anything else out there that can make glDrawPixmap() more efficient? I have been searching the site and google but have yet to come up with anything. Thanks for your help once again!
Can you mention what GPU are you using and also what is the size of the image that you are trying to display ?
I honestly do not know the size of the file but that it is just rather very large and the only thing I know about the machine is it is a Sun. Sorry I don’t know much else.
Then can you say more about what you are trying to do exactly ?
They read in a BIG image like I said before and only show a portion of it on the screen. Then they include scroll bars to navigate to different areas of the image. The problem is each time they move the scroll bar, they have to redrawe the image which takes 3-5 seconds which means the scrolling is not smooth but rather very rigid. They are drawing the image using glDrawPixels but thought maybe throwing it in a display list could make it draw more efficiently. My question is, can glDrawPixels or something like this be put into a display list to become more efficient and if so how? Or is glDrawPixels as efficient as one can get when drawing an image in this manner? Thanks and hope I said more about what I am trying to do.
Use a Texture about the size of screen, on a quad.
When scrolling, change the texture coordinates accordingly, and use glTexSubImage to update the new part.