Small crash fixes.
This commit is contained in:
parent
754690e251
commit
21490c5228
@ -7,6 +7,9 @@ using namespace std;
|
|||||||
|
|
||||||
OpenGLWidget::OpenGLWidget(QWidget *parent)
|
OpenGLWidget::OpenGLWidget(QWidget *parent)
|
||||||
:QGLWidget(parent)
|
:QGLWidget(parent)
|
||||||
|
,m_uBeginIndex(0)
|
||||||
|
,m_uEndIndex(0)
|
||||||
|
,noOfIndices(0)
|
||||||
,m_xRotation(0)
|
,m_xRotation(0)
|
||||||
,m_yRotation(0)
|
,m_yRotation(0)
|
||||||
{
|
{
|
||||||
@ -14,6 +17,12 @@ OpenGLWidget::OpenGLWidget(QWidget *parent)
|
|||||||
|
|
||||||
void OpenGLWidget::setSurfaceMeshToRender(const PolyVox::SurfaceMesh<PositionMaterialNormal>& surfaceMesh)
|
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
|
//Convienient access to the vertices and indices
|
||||||
const vector<uint32_t>& vecIndices = surfaceMesh.getIndices();
|
const vector<uint32_t>& vecIndices = surfaceMesh.getIndices();
|
||||||
const vector<PositionMaterialNormal>& vecVertices = surfaceMesh.getVertices();
|
const vector<PositionMaterialNormal>& vecVertices = surfaceMesh.getVertices();
|
||||||
@ -77,6 +86,12 @@ void OpenGLWidget::resizeGL(int w, int h)
|
|||||||
|
|
||||||
void OpenGLWidget::paintGL()
|
void OpenGLWidget::paintGL()
|
||||||
{
|
{
|
||||||
|
if(noOfIndices == 0)
|
||||||
|
{
|
||||||
|
//Nothing to render
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
//Clear the screen
|
//Clear the screen
|
||||||
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
|
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
|
||||||
|
|
||||||
|
@ -51,9 +51,6 @@ namespace PolyVox
|
|||||||
{
|
{
|
||||||
//Create a volume of the right size.
|
//Create a volume of the right size.
|
||||||
resize(uWidth, uHeight, uDepth, uBlockSideLength);
|
resize(uWidth, uHeight, uDepth, uBlockSideLength);
|
||||||
|
|
||||||
//Create the border block
|
|
||||||
m_pBorderBlock.fill(VoxelType());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
@ -329,6 +326,10 @@ namespace PolyVox
|
|||||||
m_pBlocks[i].resize(m_uBlockSideLength);
|
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
|
//Other properties we might find useful later
|
||||||
m_uLongestSideLength = (std::max)((std::max)(m_uWidth,m_uHeight),m_uDepth);
|
m_uLongestSideLength = (std::max)((std::max)(m_uWidth,m_uHeight),m_uDepth);
|
||||||
m_uShortestSideLength = (std::min)((std::min)(m_uWidth,m_uHeight),m_uDepth);
|
m_uShortestSideLength = (std::min)((std::min)(m_uWidth,m_uHeight),m_uDepth);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user