Firstly the VBO was initialized like below:
GLuint vertex_buffer;
glGenBuffers(1, &vertex_buffer);
glBindBuffer(GL_ARRAY_BUFFER, vertex_buffer);
glBufferData(GL_ARRAY_BUFFER, data_size_in_bytes, data_vertices, GL_STATIC_DRAW);
data_vertices store some points data, then I push back another points into it and data_vertices will be resized(larger).
If glDeleteBuffers/glGenBuffers needed to be called again or only just glBindBuffer the new data?
glDeleteBuffers(1, &vertex_buffer); // is this necessary?
glGenBuffers(1, &vertex_buffer); // is this necessary?
glBindBuffer(GL_ARRAY_BUFFER, vertex_buffer);
glBufferData(GL_ARRAY_BUFFER, new_data_size_in_bytes, new_data_vertices, GL_STATIC_DRAW);
Now I did not call glDeleteBuffers/glGenBuffers in every update frame, and on some computers the points maybe disappear...