blob: 3ff36df100dd8030228a683b6c989d348f217626 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
|
package ru.olamedia.geom;
import ru.olamedia.olacraft.render.jogl.ChunkRangeRenderer;
public class ChunkMesh {
private ImmModeMesh opaqueMesh;
private ImmModeMesh mesh;
private boolean isCompiled = false;
private boolean isValid = false;
private int vertexCount = 0;
private void updateVertexCount() {
vertexCount = 0;
if (null != mesh) {
vertexCount += mesh.getVertexCount();
}
if (null != opaqueMesh) {
vertexCount += opaqueMesh.getVertexCount();
}
}
public int getVertexCount() {
return vertexCount;
}
public void setMesh(ImmModeMesh m) {
mesh = m;
updateVertexCount();
}
public void setOpaqueMesh(ImmModeMesh m) {
opaqueMesh = m;
updateVertexCount();
}
public void render(int pass) {
if (pass == ChunkRangeRenderer.OPAQUE_PASS) {
if (null != opaqueMesh) {
opaqueMesh.draw();
}
} else {
if (null != mesh) {
mesh.draw();
}
}
}
public boolean isCompiled() {
return isCompiled;
}
public void setCompiled(boolean isCompiled) {
this.isCompiled = isCompiled;
}
public boolean isValid() {
return isValid;
}
public void setValid(boolean isValid) {
this.isValid = isValid;
}
public boolean isEmpty() {
return isValid() && (null == mesh) && (null == opaqueMesh);
}
public ImmModeMesh getTransparentMesh() {
return mesh;
}
public ImmModeMesh getOpaqueMesh() {
return opaqueMesh;
}
public int getOpaqueVertexCount() {
return null == opaqueMesh ? 0 : opaqueMesh.getVertexCount();
}
public int getTransparentVertexCount() {
return null == mesh ? 0 : mesh.getVertexCount();
}
}
|