VertexArray::VertexArray()
{
    //m_ArrayID = 0;
    GENVERTEXARRAYS(1, &m_ArrayID);
    //glGenVertexArrays(1, &m_ArrayID);
    //glBindVertexArray(m_ArrayID);
    
    //std::cout << m_ArrayID << std::endl;
}
 void BatchRenderer2D::init()
 {
     GENVERTEXARRAYS(1, &m_VAO);
     glGenBuffers(1, &m_VBO);
     
     BINDVERTEXARRAYS(m_VAO);
     glBindBuffer(GL_ARRAY_BUFFER, m_VBO);
     
     glBufferData(GL_ARRAY_BUFFER, RENDERER_BUFFER_SIZE, NULL, GL_DYNAMIC_DRAW);
     
     glEnableVertexAttribArray(SHADER_VERTEX_INDEX);
     glEnableVertexAttribArray(SHADER_UV_INDEX);
     glEnableVertexAttribArray(SHADER_TID_INDEX);
     glEnableVertexAttribArray(SHADER_COLOR_INDEX);
     
     glVertexAttribPointer(SHADER_VERTEX_INDEX, 3, GL_FLOAT, GL_FALSE, RENDERER_VERTEX_SIZE, (const GLvoid*)0);
     glVertexAttribPointer(SHADER_UV_INDEX, 2, GL_FLOAT, GL_FALSE, RENDERER_VERTEX_SIZE, (const GLvoid*)offsetof(VertexData, uv));
     glVertexAttribPointer(SHADER_TID_INDEX, 1, GL_FLOAT, GL_FALSE, RENDERER_VERTEX_SIZE, (const GLvoid*)offsetof(VertexData, tid));
     glVertexAttribPointer(SHADER_COLOR_INDEX, 4, GL_FLOAT, GL_FALSE, RENDERER_VERTEX_SIZE, (const GLvoid*)offsetof(VertexData, color));//(3 * sizeof(GLfloat)));
     
     glBindBuffer(GL_ARRAY_BUFFER, 0);
     
     GLushort indices[RENDERER_INDICES_SIZE];
     
     int offset = 0;
     for (int i = 0; i < RENDERER_INDICES_SIZE; i += 6) {
         indices[ i ] = offset + 0;
         indices[i+1] = offset + 1;
         indices[i+2] = offset + 2;
         
         indices[i+3] = offset + 2;
         indices[i+4] = offset + 3;
         indices[i+5] = offset + 0;
         
         offset += 4;
     }
     
     m_IBO = new IndexBuffer(indices, RENDERER_INDICES_SIZE);
     
     BINDVERTEXARRAYS(0);
 }
Example #3
0
void meshModels::makeBuffer()
{
	GENVERTEXARRAYS(1, &arrayID);
	BINDVERTEXARRAY(arrayID);

	glGenBuffers(1, &bufferID);
	glBindBuffer( GL_ARRAY_BUFFER, bufferID);
	glBufferData( GL_ARRAY_BUFFER, model.verts.size() * sizeof(vertex_t), model.verts.data(), GL_STATIC_DRAW);

	glGenBuffers(1, &elementID);
	glBindBuffer( GL_ELEMENT_ARRAY_BUFFER, elementID);
	glBufferData( GL_ELEMENT_ARRAY_BUFFER, model.polys.size() * sizeof(polygon_t), model.polys.data(), GL_STATIC_DRAW);

	glEnableVertexAttribArray(positionID);
	glVertexAttribPointer( positionID, 3, GL_FLOAT, GL_FALSE, sizeof(vertex_t), 0);
	
	glEnableVertexAttribArray(normalID);
	glVertexAttribPointer( normalID, 3, GL_FLOAT, GL_FALSE, sizeof(vertex_t), (void*)(sizeof(float)*3));

	BINDVERTEXARRAY(0);
	glBindBuffer( GL_ARRAY_BUFFER, 0);
	glBindBuffer( GL_ELEMENT_ARRAY_BUFFER, 0);
}