[cpp] Artifacts showing after graphics.clear() using drawTriangles() with culling

I’ve been writing a primitive way to read and display .obj files using drawTriangles() and have most things working correctly but am having some artifacts remaining after calling graphics.clear(). It only happens with culling enabled. (Testing on windows)

Here’s some examples of my crappy texture test on a monkey head:
TriangleCulling.NEGATIVE: http://i.imgur.com/CRTnwUu.gif (Same artifacts also appear with POSITIVE)
TriangleCulling.NONE: http://i.imgur.com/x1SwbNy.gif (No artifacts here, but culling obviously needed)
And in case it helps to debug, NEGATIVE with -Dlegacy gives no artifacts, but uv implementation is apparently different so the texture doesn’t display correctly: http://i.imgur.com/Qy0WLVG.gif

Note that I’m just referring to the streaking artifacts left by the ears, not depth issues with the culling (looks like this may be best for just simple convex objects - unless a fix for that is possible as well? Not sure on the limitations of drawTriangles)

Have you tried using OpenGL directly? (Or indirectly?)