@Override
public Surface fillTriangles(float[] xys, int xysOffset, int xysLen,
int[] indices, int indicesOffset, int indicesLen, int indexBase) {
bindFramebuffer();
GLShader shader = ctx.trisShader(this.shader);
if (fillPattern != null) {
int tex = fillPattern.ensureTexture();
if (tex > 0) {
shader.prepareTexture(tex, tint);
shader.addTriangles(topTransform(), xys, xysOffset, xysLen,
fillPattern.width(), fillPattern.height(),
indices, indicesOffset, indicesLen, indexBase);
}
} else {
int tex = ctx.fillImage().ensureTexture();
shader.prepareTexture(tex, Tint.combine(fillColor, tint));
shader.addTriangles(topTransform(), xys, xysOffset, xysLen, 1, 1,
indices, indicesOffset, indicesLen, indexBase);
}
return this;
}