The "fastest" (i.e. the slowest) way I remember is to Surface.cloneSection the triangle's bounds and manually fill outside of that cloned triangle with rgba(0,0,0,0), but that was always unreliably slow.
To make that far faster, I guess you could just do an inverse polygon that "clips" (paints the area a solid color, say, lime green) everything not in the center zone you want to keep (IE a triangle or hexagon). Then you replaceColor() the contents of the the inverse polygon. Since it's all one solid color, it's lightning fast. But yes, you still must use surfaces on a cloned version of the map or current render.I could make a test game, or you could toy with the above algorithm. I think it's faster... but I haven't tested it. I'm relying on the fact Sphere's replaceColor is really quick. Quicker than the per-pixel method you could do in JS side of things. That and I hope polygons draw really fast too. If so, this is easily the fastest method and could even be done real-time as you play to say, make an interesting hexagon-shaped mini-map.