// (c): Tuomas J. Lukka package gzz.gfx.gl; import gzz.mem.*; import gzz.*; import gzz.util.*; /** An adapter between MipzipLoader and MemoryConsumer. */ public class MipzipMemoryConsumer implements MemoryConsumer { MemoryPartitioner pool; MipzipLoader mipzip; public boolean getScalable() { return true; } public int getMaxBytes(float quality) { return mipzip.getLevelBytes( mipzip.getLevelForQuality(quality)); } public int setReservation(int bytes, float quality, Obs o) { int lq = mipzip.getLevelForQuality(quality); int lb = mipzip.getLevelBytes(bytes); int level = Math.max(lb, lq); mipzip.setGoalBaseLevel(level, Background.getDefaultInstance(), 0); return mipzip.getMemory(level); } public int getReservation() { return mipzip.getMemory(); } public float getQuality() { return mipzip.getQuality(); } public GL.Texture getTexture(float importance, float quality) { return mipzip.getTexture(); } public MipzipMemoryConsumer(MemoryPartitioner pool, MipzipLoader mipzip) { this.pool = pool; this.mipzip = mipzip; } }