I''m pretty new to opengl. I''m working on an app which needs to fill a large (900*900 pixel) moving background image with a pixmap at atleast 30 fps... Right now, I''m getting abysmal performance. What''s the fastest way of moving the image from the processor memory to the framebuffer? Simple glDrawPixels() calls don''t seem to give me enough performance. As far as I can see, the memory transfers aren''t large enough to be a problem... any idea where the bottleneck might be?
I''d appreciate any help.
It is slow to transfer from the processor memory to the card. You are supposed to upload your images to the card. Even a blit API like DirectDraw will propably have hard to reach at least 30fps for a 900x900 bitmap.
Make your image into texture and throw it in VRAM. 900x900 isn''t the easiest size to deal with but I''d either make a 912x912 texure (textures have to be multiples of 16 so 900 wouldn''t work) or if you wanted a smaller texture size to support old cards then maybe 3 or 4 smaller texures.