Original Post
Hello, Its a long time since my last post here. I am creating a Game in the Ogre engine and when I am on the pc that is too slow to program with Ogre then I am learning OpenGL. This is my issue : I have two classes called PXVertex and PXVertexBuffer. PXVertexBuffer has a std::Vector that contains PXVertex objects. The main problem is that when I am trying to draw the buffer is keeps giving me Access Violation at 0x00000000. This is my current Code : Adding vertex to buffer
void PXVertexBuffer::addVertex(PXVector mVec)
{
if((mVertexes.size() + 1) > mVertexes.capacity())
{
totalVertexes++;
mVertexes.resize(totalVertexes);
}
mVertexes.push_back(new PXVertex(mVec.getX(),mVec.getY(),mVec.getZ(),mVec.getColor()));
};
Retrieving vertex from buffer
PXVertex* PXVertexBuffer::getVertex(int id)
{
return mVertexes.at(id);
};
Drawing Vertexes
bool _Update()
{
glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);
glLoadIdentity();
glTranslatef(-1.5f,0.0f,-6.0f);
int i = 1;
int i2 = 1;
VVertexBuffer::iterator mIt = mBuffers.begin();
while(mIt != mBuffers.end())
{
glBegin(GL_TRIANGLES);
VVertex::iterator mIt2 = mBuffers.at(i)->getBeginIterator();
i2 = 0;
for(mIt2 = mBuffers.at(i)->getBeginIterator();mIt2 != mBuffers.at(i)->getEndIterator();++mIt2)
{
float x,y,z;
PXVertex* mVertex = *mIt2;
x = mVertex->getX();
y = mVertex->getY();
z = mVertex->getZ();
glVertex3f(x,y,z);
mIt2++;
i2++;
};
glEnd();
mIt++;
i++;
};
if(!_UpdateRenderWindows()) return false;
return true;
};
The buffers are placed in a vector of PXVertexBuffer objects. The vector variable is named mBuffers. The problem is in mVertex->getX()/Y/Z; One more thing : How can I color the vertex ? I thought glColor4f(r,g,b,a); but I am not sure.