Refacturación

Corrigiendo las consecuencias de reusar código que no está diseñado para el propósito. En la prueba de colores, se reciclo la clase PixMapActor() que crea y dispone una textura por instancia. Esto hace una textura por cada color y es totalmente innecesario.

Ahora solo se crea una textura a nivel de la clase y se recicla por cada color.  

private TextureRegion textureRegion;

También ahora solo se muestran 16 colores.

int flux = 0;
int totalColors = 16;

colorTest = new Array<>(false, totalColors);

for (ObjectMap.Entry<String, Color> color : Colors.getColors()) {
     if (flux++ >= totalColors) break;
     colorTest.add(new BaseActor(color.value));
}

for (BaseActor baseActor : colorTest) stage.addActor(baseActor);

El método setColorSprites() calcula el tamaño de la textura y aplica la misma a todos los actores. Cada actor se encarga de aplicar color a la textura.

private void setColorSprites() {

     int height = Math.round(stage.getHeight());
     int width = Math.round(stage.getWidth() / colorTest.size);

     Pixmap pixmap = new Pixmap(width, height, Pixmap.Format.RGB565);
     pixmap.setColor(Color.WHITE);
     pixmap.fillRectangle(0, 0, width, height);

     if (textureRegion != null) textureRegion.getTexture().dispose();

     textureRegion = new TextureRegion(new Texture(pixmap));

     textureRegion.getTexture().setFilter(
          Texture.TextureFilter.Nearest,
          Texture.TextureFilter.Nearest);

     for (BaseActor baseActor : colorTest) baseActor.setTextureRegion(textureRegion);

     pixmap.dispose();
}

Con esa alteración se reduce el uso de memoria a una pizca comparado al código anterior.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Salir /  Cambiar )

Google photo

Estás comentando usando tu cuenta de Google. Salir /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Salir /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Salir /  Cambiar )

Conectando a %s

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios .