//----------------------------------------------------------------------------// void OpenGL3GeometryBuffer::appendGeometry(const Vertex* const vbuff, uint vertex_count) { performBatchManagement(); // update size of current batch d_batches.back().vertexCount += vertex_count; // buffer these vertices GLVertex vd; const Vertex* vs = vbuff; for (uint i = 0; i < vertex_count; ++i, ++vs) { // copy vertex info the buffer, converting from CEGUI::Vertex to // something directly usable by OpenGL as needed. vd.tex[0] = vs->tex_coords.d_x; vd.tex[1] = vs->tex_coords.d_y; vd.colour[0] = vs->colour_val.getRed(); vd.colour[1] = vs->colour_val.getGreen(); vd.colour[2] = vs->colour_val.getBlue(); vd.colour[3] = vs->colour_val.getAlpha(); vd.position[0] = vs->position.d_x; vd.position[1] = vs->position.d_y; vd.position[2] = vs->position.d_z; d_vertices.push_back(vd); } updateOpenGLBuffers(); }
//----------------------------------------------------------------------------// void OpenGL3GeometryBuffer::reset() { d_batches.clear(); d_vertices.clear(); d_activeTexture = 0; updateOpenGLBuffers(); }
//----------------------------------------------------------------------------// void OpenGLES2GeometryBuffer::reset() { OpenGLGeometryBufferBase::reset(); updateOpenGLBuffers(); }
//----------------------------------------------------------------------------// void OpenGLES2GeometryBuffer::appendGeometry(const Vertex* const vbuff, uint vertex_count) { OpenGLGeometryBufferBase::appendGeometry(vbuff, vertex_count); updateOpenGLBuffers(); }
//----------------------------------------------------------------------------// void OpenGL3GeometryBuffer::appendGeometry(const float* vertex_data, std::size_t array_size) { OpenGLGeometryBufferBase::appendGeometry(vertex_data, array_size); updateOpenGLBuffers(); }