I would say that the triangle strip is the most effecient for performance, mainly because it's a single draw call as opposed to two (or maybe more). It does however, require the calculation of all parallel vertices. It really depends on the type of shape you're outlining.
You would need to calculate the normal at each vertex (average of previous line and next line) and offset the outline's vertex by that normal. There is required amount of adjustment to this offset depending on the angle of that corner (it should be further for sharper corners).
I would then say that using Selba Ward's Spline would be more efficient for programming as all those calculations are done for you. If you then draw the spline as your outline, it costs two draw calls instead of one. This may add up if you have hundreds of these.
You could, of course, get the best of both worlds: form a sw::Spline to follow the outline and then retrieve the above calculations from that Spline so that you can add it to your own vertex array. This way you get it all as one draw call and all of the calculations are done by Spline
Here's an example of getting the information from Spline. Note the inner (last) circle in the line of circles (trail) that follows the inside edge:
I like your SelbaWard library very much @Hapax. How long did it take you to make it altogether?
Thank you!
It seems that I 'published' it almost two years ago (
see its forum thread) and I've developed and added quite a lot since that time (as you can see in the posts). The things I published at the beginning were things I created for my own use and then re-written to be free of any other library (except SFML of course).