8 |
/** An adapter between MipzipLoader and MemoryConsumer. |
/** An adapter between MipzipLoader and MemoryConsumer. |
9 |
*/ |
*/ |
10 |
public class MipzipMemoryConsumer implements MemoryConsumer { |
public class MipzipMemoryConsumer implements MemoryConsumer { |
11 |
|
public static boolean dbg = false; |
12 |
|
final static void pa(String s) { System.out.println(s); } |
13 |
|
|
14 |
MemoryPartitioner pool; |
MemoryPartitioner pool; |
15 |
MipzipLoader mipzip; |
MipzipLoader mipzip; |
16 |
|
|
17 |
public boolean getScalable() { return true; } |
public boolean getScalable() { return true; } |
18 |
|
|
19 |
public int getMaxBytes(float quality) { |
public int getMaxBytes(float quality) { |
20 |
return mipzip.getLevelBytes( |
int mb = mipzip.getMemory( |
21 |
mipzip.getLevelForQuality(quality)); |
mipzip.getLevelForQuality(quality)); |
22 |
|
if(dbg) |
23 |
|
pa("MipzipMemcons maxbytes "+quality+" = "+mb); |
24 |
|
return mb; |
25 |
} |
} |
26 |
public int setReservation(int bytes, float quality, Obs o) { |
public int setReservation(int bytes, float quality, Obs o) { |
27 |
|
if(dbg) pa("MipzipMemcons setres "+mipzip+" "+ |
28 |
|
bytes+" "+quality); |
29 |
int lq = mipzip.getLevelForQuality(quality); |
int lq = mipzip.getLevelForQuality(quality); |
30 |
int lb = mipzip.getLevelBytes(bytes); |
int lb = mipzip.getLevelForBytes(bytes); |
31 |
int level = Math.max(lb, lq); |
int level = Math.max(lb, lq); |
32 |
|
|
33 |
mipzip.setGoalBaseLevel(level, |
mipzip.setGoalBaseLevel(level, |
44 |
} |
} |
45 |
|
|
46 |
public GL.Texture getTexture(float importance, float quality) { |
public GL.Texture getTexture(float importance, float quality) { |
47 |
|
if(dbg) pa("MipzipMemcons getTexture "+mipzip+" "+ |
48 |
|
importance+" "+quality); |
49 |
|
pool.request(this, importance, quality, null); |
50 |
return mipzip.getTexture(); |
return mipzip.getTexture(); |
51 |
} |
} |
52 |
|
|