Hello I am working a Video Mix software and need sone tips ! thank you in advance ! I would like to know how to use my video card’s OpenGL on images that are not on screen but stored in a buffer (ie drawing the pixels on it before showing it). Indeed if I try to reach a pixel that is out of a window or in a not visible part of a window, the Handle returns an empty address…
Thanks a lot
Very general question.
Your first problem is to get the video data into something OpenGL can work with, this can either be one of the color buffers or a texture.
If you want to manipulate the video image, a texture would be the most common application. Search the forum.
If you only want to display the image, you can do a glDrawPixels() to OpenGL’s back buffer in a double buffered pixelformat and then SwapBuffers(). But then you could do this without OpenGL, too, from a device bitmap and GDI BitBlt.
For both, glDrawPixels() and glTexImage2D() (or better glTexSubImage2d() if you’re continually updating the image) you may need to convert the video into a format which is known to your OpenGL implementation on the CPU. Some typcal YUV format may not be possible. Check the supported internalFormats of your OpenGL implementation.
Have a look at these posts, too: http://www.opengl.org/discussion_boards/ubb/Forum3/HTML/000514.html http://www.opengl.org/discussion_boards/ubb/Forum3/HTML/000776.html