Modified GeometryBatchFactory to be thread safe
from other readers of the meshes upon which it is operating. At least in theory. git-svn-id: https://jmonkeyengine.googlecode.com/svn/trunk@9099 75d07b2b-3a1a-0410-a2c5-0572b91ccdca
This commit is contained in:
parent
606b676d69
commit
e6dc1b7183
@ -178,11 +178,11 @@ public class GeometryBatchFactory {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else if (Type.Position.ordinal() == bufType) {
|
} else if (Type.Position.ordinal() == bufType) {
|
||||||
FloatBuffer inPos = (FloatBuffer) inBuf.getData();
|
FloatBuffer inPos = (FloatBuffer) inBuf.getDataReadOnly();
|
||||||
FloatBuffer outPos = (FloatBuffer) outBuf.getData();
|
FloatBuffer outPos = (FloatBuffer) outBuf.getData();
|
||||||
doTransformVerts(inPos, globalVertIndex, outPos, worldMatrix);
|
doTransformVerts(inPos, globalVertIndex, outPos, worldMatrix);
|
||||||
} else if (Type.Normal.ordinal() == bufType || Type.Tangent.ordinal() == bufType) {
|
} else if (Type.Normal.ordinal() == bufType || Type.Tangent.ordinal() == bufType) {
|
||||||
FloatBuffer inPos = (FloatBuffer) inBuf.getData();
|
FloatBuffer inPos = (FloatBuffer) inBuf.getDataReadOnly();
|
||||||
FloatBuffer outPos = (FloatBuffer) outBuf.getData();
|
FloatBuffer outPos = (FloatBuffer) outBuf.getData();
|
||||||
doTransformNorms(inPos, globalVertIndex, outPos, worldMatrix);
|
doTransformNorms(inPos, globalVertIndex, outPos, worldMatrix);
|
||||||
} else {
|
} else {
|
||||||
@ -229,8 +229,7 @@ public class GeometryBatchFactory {
|
|||||||
numOfVertices = g.getVertexCount();
|
numOfVertices = g.getVertexCount();
|
||||||
}
|
}
|
||||||
for (int i = 0; i < lodLevels; i++) {
|
for (int i = 0; i < lodLevels; i++) {
|
||||||
ShortBuffer buffer = (ShortBuffer) g.getMesh().getLodLevel(i).getData();
|
ShortBuffer buffer = (ShortBuffer) g.getMesh().getLodLevel(i).getDataReadOnly();
|
||||||
buffer.rewind();
|
|
||||||
//System.out.println("buffer: " + buffer.capacity() + " limit: " + lodSize[i] + " " + index);
|
//System.out.println("buffer: " + buffer.capacity() + " limit: " + lodSize[i] + " " + index);
|
||||||
for (int j = 0; j < buffer.capacity(); j++) {
|
for (int j = 0; j < buffer.capacity(); j++) {
|
||||||
lodData[i][bufferPos[i] + j] = buffer.get() + numOfVertices * curGeom;
|
lodData[i][bufferPos[i] + j] = buffer.get() + numOfVertices * curGeom;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user