Jump to content
  • Advertisement

Archived

This topic is now archived and is closed to further replies.

Krisc

Outlining a glQuad(); ?

This topic is 5734 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

Hello again, my menu system is working very nicely so far and I have ran into a bunch of bumps in the road! OpenGL rules! I love it so far...but I was wondering if there was a way to outline a quad that I draw...this is the code I have so far...
  
void Menu::RenderMenu(float red, float green, float blue)
{
	glTranslatef( 0.0f, 0.0f, 0.0f);

	glBindTexture(GL_TEXTURE_2D, background[0]);
	glBegin(GL_QUADS);
		//glColor3f(1.0f,0.0f,0.0);

		glTexCoord2f(-2.0f, 2.0f); glVertex3f( 0.0f,    768.0f, 0.0f); // Upper Left

		glTexCoord2f(-1.0f, 2.0f); glVertex3f( 1024.0f, 768.0f, 0.0f); // Upper Right

		glTexCoord2f(-1.0f, 1.0f); glVertex3f( 1024.0f, 0.0f,   0.0f); // Lower Right

		glTexCoord2f(-2.0f, 1.0f); glVertex3f( 0.0f,    0.0f,   0.0f); // Lower Left

	glEnd();

	glBlendFunc(GL_SRC_ALPHA,GL_ONE);		// Blending Function For Translucency Based On Source Alpha Value ( NEW )

	glEnable(GL_BLEND);		// Turn Blending On

	glDisable(GL_DEPTH_TEST);	// Turn Depth Testing Off


	glColor4f(red, green, blue, 0.3f);
	glBegin(GL_QUADS);
		glVertex3f( 300.0f,  625.0f, 0.0f); // Upper Left

		glVertex3f( 700.0f,  625.0f, 0.0f); // Upper Right

		glVertex3f( 700.0f,   50.0f, 0.0f); // Lower Right

		glVertex3f( 300.0f,   50.0f, 0.0f); // Lower Left

	glEnd();
	glColor4f(1.0f, 1.0f, 1.0f, 1.0f);

	glColor4f(red, green, blue, 0.5f);
	glBegin(GL_QUADS);
		glVertex3f( 302.0f,  623.0f, 0.0f); // Upper Left

		glVertex3f( 698.0f,  623.0f, 0.0f); // Upper Right

		glVertex3f( 698.0f,   52.0f, 0.0f); // Lower Right

		glVertex3f( 302.0f,   52.0f, 0.0f); // Lower Left

	glEnd();
	glColor4f(1.0f, 1.0f, 1.0f, 1.0f);

}
  
What I am doing is enabling blending to give the first quad a duller look and then the one on top, a brighter look, but I want to switch the two, so its bright around the border and dull in the center... is there a way to outline or would it be better to go for a texture? EDIT 1: It would help if I added the code...lol <- http://www.digitalexplosions.com -> "Discipline is my sword, faith is my shield do not dive into uncertainty, and you may live to reap the rewards" - (Unreal Championship) [edited by - Krisc on December 7, 2002 2:09:23 PM]

Share this post


Link to post
Share on other sites
Advertisement
If I understand you right, you want a line around the outside of the quad. If so, simply draw the vertices again inside glBegin(GL_LINES); and it will draw a line around the edge. You may want to adjust the co-ordinates slightly to move the line in or out.

Share this post


Link to post
Share on other sites
Sorry if I don''t understand GL_LINES correctly, but I would think that based on GL_QUADS, I would have to specify like a lot of vertices...I am looking to just be able to do it quickly and easily...

I used a texture and it is working better, but I am still looking for an Outline routine...

<- http://www.digitalexplosions.com ->
"Discipline is my sword, faith is my shield
do not dive into uncertainty, and you may live to reap the rewards" - (Unreal Championship)

Share this post


Link to post
Share on other sites
You can use glPolygonMode (GL_FRONT_AND_BACK, GL_LINE); to draw as wireframe and glPolygonMode (GL_FRONT_AND_BACK, GL_FILL); to return to solid primitives.

If you first draw a polygon solid and then draw it as wireframe, you can use that to outline your polygon. Just set the appropriate colour and disable texturing.

BTW, GL_LINES isn't that hard to use. Just draw a line from point A to B, B to C, C to D and D back to A and you have your quad. It takes only twice as many vertices to use lines.



[edited by - Kippesoep on December 7, 2002 3:12:01 PM]

Share this post


Link to post
Share on other sites
I just thought of something that has been changing my mind. This is an engine, and so I am going to keep it textured so that the developer/modder can easily just make a texture and use that instead of having to draw lines and quads and having them declare the color. Thank you though, I will attempt to remember these functions for future use!

<- http://www.digitalexplosions.com ->
"Discipline is my sword, faith is my shield
do not dive into uncertainty, and you may live to reap the rewards" - (Unreal Championship)

Share this post


Link to post
Share on other sites

  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

We are the game development community.

Whether you are an indie, hobbyist, AAA developer, or just trying to learn, GameDev.net is the place for you to learn, share, and connect with the games industry. Learn more About Us or sign up!

Sign me up!