Hi,
I'm in the process of writing a software 3d engine (just for fun, keeps my mind busy) and I would be very interested to know what the fastest way of blitting my rendered output to the screen would be (I'm of course aware that you can't ACTUALLY just blit something into screen memory directly) .
I'm currently using a few basic OpenGL / GLUT calls to create a large texture from my rendered bitmap data and then render it into a window (yes, I know, using OpenGL to render bitmap to the screen is a bit silly), updating the texture every frame.
My application is completely C based, although I would be happy to have one source file in (say) Objective-C if that file could handle the blitting side of things for me.
So what I need is the simplest way to:
*) Create a plain window at a specific (content) size (w,h)
*) Blit a block of memory to that window
*) Repeat.
The only user interaction I need is to handle the Quit command.
Any pointers would be really appreciated
Update:- Reading though some other forum posts it seems like OpenGL / Quartz is the way to do it, but with OpenGL insisting on power of two textures it seems wasteful to have to make and update a 1042 x 1024 texture to update a 600x600 window for example.
Ian Moody
I'm in the process of writing a software 3d engine (just for fun, keeps my mind busy) and I would be very interested to know what the fastest way of blitting my rendered output to the screen would be (I'm of course aware that you can't ACTUALLY just blit something into screen memory directly) .
I'm currently using a few basic OpenGL / GLUT calls to create a large texture from my rendered bitmap data and then render it into a window (yes, I know, using OpenGL to render bitmap to the screen is a bit silly), updating the texture every frame.
My application is completely C based, although I would be happy to have one source file in (say) Objective-C if that file could handle the blitting side of things for me.
So what I need is the simplest way to:
*) Create a plain window at a specific (content) size (w,h)
*) Blit a block of memory to that window
*) Repeat.
The only user interaction I need is to handle the Quit command.
Any pointers would be really appreciated
Update:- Reading though some other forum posts it seems like OpenGL / Quartz is the way to do it, but with OpenGL insisting on power of two textures it seems wasteful to have to make and update a 1042 x 1024 texture to update a 600x600 window for example.
Ian Moody
Last edited: