Blitting images onto OpenGL scene

Hi,

I’m using SDL and OpenGL and I have a question relating to displaying bitmaps.

I’ve got a 3d scene with some text drawn on top using freetype (based on NeHe lesson 43 I think). I’m using glOrtho to draw some rectangles over the top and bottom of the 3D scene and my text is being drawn on these areas without any problem.

I’m wanting to place some bitmap images over the display to create items like a status panel and compass but wasn’t sure of the best way to do this. Should I render these as textured quads or does openGL have a blit type command for use when working in 2D? I’m really just wanting to keep the bitmaps as they are without any scaling or smoothing.

Thanks for any help.

Guilherme> ----- Original Message -----

From: sn.ml@bayminer.com (Sami Naatanen)
To: A list for developers using the SDL library. (includes SDL-announce)
Sent: Wednesday, 22 November, 2006 6:31:54 PM
Subject: Re: [SDL] 2D above OpenGL graphics

On Wednesday 22 November 2006 15:17, Nuno Santos wrote:

Hi,

I’ve tried your code but i dont know what linker option should i use
to have to get glOrtho2d recognized.

That is his own function or something like that.
The function you should use is glOrtho.

glOrtho( 0, width, 0, height, 0.0, 1.0 );
should be fine.

I also don’t understand what he does. Can you make me a resume?

I putted it in my render function, in the end, just before
glSwapBuffes

Can you give me some lights here?

Cheers,

Nuno

Em Nov 20, 2006, ?s 9:43 AM, kuon - Nicolas Goy - ??? escreveu:

Nuno Santos wrote:

Hi,
Yes, i was meaning that! I see!
My first goal in that direction was to include some text above my
scenes! Do you recommend me the same strategy?
Cheers,
Nuno

Hoy.
Opengl can be a very good 2d api.

Just do:

glMatrixMode(GL_MODELVIEW);
glPushMatrix();
glLoadIdentity();
glMatrixMode(GL_PROJECTION);
glPushMatrix();
glLoadIdentity();

glOrtho2d(0, screenWidth, 0, screenHeight);

glMatrixMode(GL_MODELVIEW);
// some 2d drawing like

glRasterPos2i(100, 100); // draw at position 100 100 pixel
glutBitmapCharacter(GLUT_BITMAP_8_BY_13, ‘H’); // Will draw a H at
100 100, for more advanced text handling or if you don’t wanna link
with glut, check the opengl.org site for font rastering, SDL also
provide true type library.

glPopMatrix();
glMatrixMode(GL_PROJECTION);
glPopMatrix();

Some tips:

Always draw your 2d (interface or anything) AFTER the scene.

Disable as much option as you can (man glPushAttrib) like depth
test, blending (you need it if image has alpha value), texture,
lighting… before drawing the 2d layer.

Regards


Kuon
CEO - Goyman.com SA
http://www.goyman.com/

“Computers should not stop working when the users’ brain does.”


SDL mailing list
SDL at libsdl.org
http://www.libsdl.org/mailman/listinfo/sdl


SDL mailing list
SDL at libsdl.org
http://www.libsdl.org/mailman/listinfo/sdl


All new Yahoo! Mail “The new Interface is stunning in its simplicity and ease of use.” - PC Magazine
http://uk.docs.yahoo.com/nowyoucan.html