Temporary fix for models index offset

This commit is contained in:
Atlante45 2015-06-04 17:57:58 +02:00
parent 54b0a03fae
commit 31d257db09

View file

@ -2358,8 +2358,6 @@ void Model::renderPart(RenderArgs* args, int meshIndex, int partIndex, bool tran
GLBATCH(glColor4f)(1.0f, 1.0f, 1.0f, 1.0f);
}
qint64 offset = 0;
// guard against partially loaded meshes
if (partIndex >= networkMesh.parts.size() || partIndex >= mesh.parts.size()) {
return;
@ -2450,6 +2448,20 @@ void Model::renderPart(RenderArgs* args, int meshIndex, int partIndex, bool tran
meshPartsRendered++;
// FIX ME This is very unefficient
qint64 offset = 0;
for (int j = 0; j < partIndex; j++) {
const NetworkMeshPart& networkPart = networkMesh.parts.at(j);
const FBXMeshPart& part = mesh.parts.at(j);
if ((networkPart.isTranslucent() || part.opacity != 1.0f) != translucent) {
offset += (part.quadIndices.size() + part.triangleIndices.size()) * sizeof(int);
continue;
}
offset += part.quadIndices.size() * sizeof(int);
offset += part.triangleIndices.size() * sizeof(int);
}
if (part.quadIndices.size() > 0) {
batch.drawIndexed(gpu::QUADS, part.quadIndices.size(), offset);
offset += part.quadIndices.size() * sizeof(int);