libgdx ScissorStack no funciona como se esperaba

Estoy tratando de crear una especie de "barra de progreso", pero el recorte no parece funcionar de la manera que espero. ¿Es algo que estoy haciendo mal o que he malinterpretado?

losdraw() rutina que debería recortar:

    @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 muestra completo paraGrupo ClipTest clase,TestScreen y captura de pantalla.

ClipTest es una subclase de grupo utilizada para demostrar el "error".ClipImage es una subclase de imagen, que realiza el recorte endraw().ClipTest Tiene 2 imágenes, fondo y primer plano.

El fondo es una imagen negra y siempre debe ser del tamaño completo de la barra de progreso.

El primer plano es una imagen en blanco y su ancho se recorta dependiendo del porcentaje de la barra.

El extraño resultado que he encontrado es que, aunque el primer plano está utilizando la clase de recorte, la imagen de fondo es la que realmente está recortada.

El resultado esperado se creó usando Photoshop (ya que no pude producirlo a través del código).

¿Alguna idea de lo que está mal?

Respuestas a la pregunta(1)

Su respuesta a la pregunta