Small crash fixes.

This commit is contained in:
David Williams 2011-02-05 18:19:15 +00:00
parent 754690e251
commit 21490c5228
2 changed files with 20 additions and 4 deletions

View File

@ -7,6 +7,9 @@ using namespace std;
OpenGLWidget::OpenGLWidget(QWidget *parent)
:QGLWidget(parent)
,m_uBeginIndex(0)
,m_uEndIndex(0)
,noOfIndices(0)
,m_xRotation(0)
,m_yRotation(0)
{
@ -14,6 +17,12 @@ OpenGLWidget::OpenGLWidget(QWidget *parent)
void OpenGLWidget::setSurfaceMeshToRender(const PolyVox::SurfaceMesh<PositionMaterialNormal>& surfaceMesh)
{
if((surfaceMesh.getNoOfIndices() == 0) || (surfaceMesh.getNoOfVertices() == 0))
{
//We don't have a valid mesh
return;
}
//Convienient access to the vertices and indices
const vector<uint32_t>& vecIndices = surfaceMesh.getIndices();
const vector<PositionMaterialNormal>& vecVertices = surfaceMesh.getVertices();
@ -77,6 +86,12 @@ void OpenGLWidget::resizeGL(int w, int h)
void OpenGLWidget::paintGL()
{
if(noOfIndices == 0)
{
//Nothing to render
return;
}
//Clear the screen
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);

View File

@ -51,9 +51,6 @@ namespace PolyVox
{
//Create a volume of the right size.
resize(uWidth, uHeight, uDepth, uBlockSideLength);
//Create the border block
m_pBorderBlock.fill(VoxelType());
}
////////////////////////////////////////////////////////////////////////////////
@ -327,7 +324,11 @@ namespace PolyVox
for(uint32_t i = 0; i < m_uNoOfBlocksInVolume; ++i)
{
m_pBlocks[i].resize(m_uBlockSideLength);
}
}
//Create the border block
m_pBorderBlock.resize(uBlockSideLength);
m_pBorderBlock.fill(VoxelType());
//Other properties we might find useful later
m_uLongestSideLength = (std::max)((std::max)(m_uWidth,m_uHeight),m_uDepth);