don't try to render until mesh is ready

This commit is contained in:
Seth Alves 2016-11-18 16:33:48 -08:00
parent b2a28147c0
commit 8ee1fac367
2 changed files with 5 additions and 19 deletions

View file

@ -556,11 +556,6 @@ void RenderablePolyVoxEntityItem::render(RenderArgs* args) {
assert(getType() == EntityTypes::PolyVox);
Q_ASSERT(args->_batch);
if (_start == 0) {
_start = usecTimestampNow();
return;
}
bool voxelDataDirty;
bool volDataDirty;
withWriteLock([&] {
@ -585,6 +580,11 @@ void RenderablePolyVoxEntityItem::render(RenderArgs* args) {
voxelVolumeSize = _voxelVolumeSize;
});
if (!mesh ||
!mesh->getIndexBuffer()._buffer) {
return;
}
if (!_pipeline) {
gpu::ShaderPointer vertexShader = gpu::Shader::createVertex(std::string(polyvox_vert));
gpu::ShaderPointer pixelShader = gpu::Shader::createPixel(std::string(polyvox_frag));
@ -618,22 +618,10 @@ void RenderablePolyVoxEntityItem::render(RenderArgs* args) {
Transform transform(voxelToWorldMatrix());
batch.setModelTransform(transform);
batch.setInputFormat(_vertexFormat);
// ok
if (usecTimestampNow() - _start < 600000) {
return;
}
batch.setInputBuffer(gpu::Stream::POSITION, mesh->getVertexBuffer()._buffer,
0,
sizeof(PolyVox::PositionMaterialNormal));
// crash
// if (usecTimestampNow() - _start < 600000) {
// return;
// }
batch.setIndexBuffer(gpu::UINT32, mesh->getIndexBuffer()._buffer, 0);
if (!_xTextureURL.isEmpty() && !_xTexture) {

View file

@ -188,8 +188,6 @@ private:
void cacheNeighbors();
void copyUpperEdgesFromNeighbors();
void bonkNeighbors();
quint64 _start { 0 };
};
bool inUserBounds(const PolyVox::SimpleVolume<uint8_t>* vol, PolyVoxEntityItem::PolyVoxSurfaceStyle surfaceStyle,