I know that what both glEdgeFlagv and glEdgeFlag do is toggle boundary edge status, but my question is why does the v version exist when the documentation specifies that the only difference is that glEdgeFlagv takes (quoting from documentation):

a pointer to an array that contains a single Boolean element, which replaces the current edge flag value.

What's the point of having a special version that takes a pointer to an array of length one? I can't imagine its to let you toggle the pointed-to bool to change the value later because the documentation would have to mention that to avoid inadvertent frees. I don't know of any platform where a pointer is smaller than a bool. When would one use glEdgeFlagv instead of glEdgeFlag?

up vote 3 down vote accepted

It is there for the sake of completeness and consistency with the other APIs. There are vector forms of glVertex, glColor, glTexCoord, etc. glEdgeFlag is part of that group of functions; therefore, there is a vector version of glEdgeFlag.

If you are looking for just the outline portion of the graphic, you could try using an emboss filter on it. The outline will be highlighted in white and remove the other non-white pixels below a certain tolerance.

Here's a decent link talking about various image filters and matrices for accomplishing them: Image Processing for Dummies with C# and GDI+ Part 2 - Convolution Filters

  • This doesn't seem to answer the question. – Tetrad Aug 11 '11 at 16:21

Your Answer


By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

Not the answer you're looking for? Browse other questions tagged or ask your own question.