libgdx ScissorStack não está funcionando como esperado

Estou tentando criar uma espécie de "barra de progresso", mas o recorte não parece funcionar da maneira que eu esperava. Isso é algo que estou fazendo de errado ou algo que eu interpretei errado?

odraw() rotina que deve cortar:

    @Override
    public void draw(SpriteBatch batch, float parentAlpha) {
        Rectangle scissors = new Rectangle();
        Rectangle clipBounds = new Rectangle(getX(), getY(), getWidth() * 0.75f, getHeight());

        ScissorStack.calculateScissors(
                getStage().getCamera(),
                getStage().getGutterWidth(),
                getStage().getGutterHeight(),
                getStage().getCamera().viewportWidth,
                getStage().getCamera().viewportHeight,
                batch.getTransformMatrix(),
                clipBounds, scissors);

        if (ScissorStack.pushScissors(scissors)) {
            super.draw(batch, parentAlpha);
            ScissorStack.popScissors();
        }
    }
}

Código de amostra completo paraGrupo ClipTest classe,TestScreen e captura de tela.

ClipTest é uma subclasse de grupo usada para demonstrar o "bug".ClipImage é uma subclasse de Image, que executa o recorte emdraw().ClipTest tem 2 imagens, plano de fundo e primeiro plano.

O plano de fundo é uma imagem em preto e sempre deve ser do tamanho total da barra de progresso.

O primeiro plano é uma imagem em branco e a largura é cortada dependendo da porcentagem da barra.

O resultado estranho que encontrei é que, embora o primeiro plano esteja usando a classe de recorte, a imagem de plano de fundo é aquela realmente cortada.

O resultado esperado foi criado usando o photoshop (como eu não poderia produzi-lo via código).

Alguma idéia do que está errado?

questionAnswers(1)

yourAnswerToTheQuestion