34 |
horizontally(80, foo, FormatData, LevelData); |
horizontally(80, foo, FormatData, LevelData); |
35 |
vertically(80, bar, MipzipFile, foo); |
vertically(80, bar, MipzipFile, foo); |
36 |
|
|
|
Due to the requirements of memory handling and GL threads, |
|
|
we need to separate loading the mipmap level and teximaging |
|
|
it. |
|
|
|
|
37 |
The following classes collaborate to provide Mipzip |
The following classes collaborate to provide Mipzip |
38 |
functionality. First of all, MipzipLoader has a nested |
functionality. First of all, MipzipLoader has a nested |
39 |
class, Level, for representing a mipmap level, and |
class, Level, for representing a mipmap level, and |
57 |
class MipzipLoader.Level |
class MipzipLoader.Level |
58 |
jlink |
jlink |
59 |
fields |
fields |
60 |
|
enum state |
61 |
int levelNo |
int levelNo |
62 |
Dimension size |
Dimension size |
63 |
byte[] loadedData |
byte[] loadedData |
100 |
... |
... |
101 |
|
|
102 |
class gzz.mem.MemoryPartitioner |
class gzz.mem.MemoryPartitioner |
103 |
|
jlink |
104 |
use gzz.mem.MemoryConsumer |
use gzz.mem.MemoryConsumer |
105 |
|
|
106 |
class MipzipMemoryConsumer |
class MipzipMemoryConsumer |
122 |
horizontally(80, naz, gzz.mem.MemoryConsumer, |
horizontally(80, naz, gzz.mem.MemoryConsumer, |
123 |
gzz.mem.MemoryPartitioner); |
gzz.mem.MemoryPartitioner); |
124 |
|
|
125 |
|
The process of loading a single mipzip level is |
126 |
|
rather intricate. |
127 |
|
Due to the requirements of memory handling and GL threads, |
128 |
|
we need to separate loading the mipmap level and teximaging |
129 |
|
it to different threads. |
130 |
|
|
131 |
|
|
132 |
|
|
133 |
|
|
134 |
|
|