v0.9.4: moved last bits of texture creation into TextureCache

This commit is contained in:
Evan Debenham
2021-07-29 13:18:41 -04:00
parent 630fbbb43f
commit d03c80cb97
3 changed files with 38 additions and 21 deletions

View File

@@ -78,9 +78,30 @@ public class TextureCache {
}
}
public synchronized static void add( Object key, SmartTexture tx ) {
all.put( key, tx );
//texture defaults to black and given size, but no assurance is made about this is another already exists
public synchronized static SmartTexture create( Object key, int width, int height ) {
if (all.containsKey( key )) {
return all.get( key );
} else {
Pixmap pixmap = new Pixmap( width, height, Pixmap.Format.RGBA8888 );
pixmap.setColor(0x000000FF);
pixmap.fill();
SmartTexture tx = new SmartTexture( pixmap );
tx.filter( Texture.LINEAR, Texture.LINEAR );
tx.wrap( Texture.CLAMP, Texture.CLAMP );
all.put( key, tx );
return tx;
}
}
public synchronized static void remove( Object key ){

View File

@@ -24,6 +24,7 @@ package com.watabou.noosa;
import com.badlogic.gdx.graphics.Pixmap;
import com.watabou.gltextures.SmartTexture;
import com.watabou.gltextures.TextureCache;
import com.watabou.glwrap.Texture;
public class Halo extends Image {
@@ -38,12 +39,13 @@ public class Halo extends Image {
super();
if (!TextureCache.contains( CACHE_KEY )) {
Pixmap pixmap = new Pixmap(2*RADIUS+1, 2*RADIUS+1, Pixmap.Format.RGBA8888);
Pixmap pixmap = TextureCache.create( CACHE_KEY, 2*RADIUS+1, 2*RADIUS+1 ).bitmap;
pixmap.setColor( 0xFFFFFF08 );
for (int i = 0; i < RADIUS; i+=2) {
pixmap.fillCircle(RADIUS, RADIUS, (RADIUS - i));
}
TextureCache.add( CACHE_KEY, new SmartTexture( pixmap ) );
}
texture( CACHE_KEY );