Fill doesn't exclude using a different colour for each vertex. If you keep those colors stored as instances of the fill then the overhead would be pretty minimal.
Ok, I wrote a fill that works correctly, but now I can't seem to get anything beyond garbage out of ShapeRenderer.texture(). I updated to the latest release (239) but most of the problems still presist.
rect = Rectangle
t = ShapeFill
i = Image
Rectangle rect = new Rectangle(drawX, drawY,32,32);
ShapeRenderer.fill(rect,t); // Works great.
ShapeRenderer.texture(rect,i,1.0f,1.0f,t); // Renders nothing.
ShapeRenderer.texture(rect,i); // Renders nothing
ShapeRenderer.textureFit(rect,i); // Renders nothing
i.draw(drawX, drawY,32,32,new Color(1f, 1f, 1f, 1f));// Works great.
I have no idea what I'm doing wrong here.