I have been reading up on OpenGL, and there is a few things I need some clarification on,
The book I am reading, keeps talking about feeding data to OpenGL or the OpenGL context, but I am not exactly sure where OpenGL is. From my understanding, its integrated in the hardware, but I do not know where. Is it safe to assume its installed in the GPU?
My second question is where is the buffer memory located when it is allocated, is it in the hardware or virtual memory? And if hardware, where exactly? Also are the buffer binding points located in the GPU?
Also
// Name of the buffer
GLuint buffer;
// Assigns a name to the buffer, and generates it
glGenBuffers(1, &buffer);
// Assigns the buffer to its target, or buffer binding point
glBindBuffer(GL_ARRAY_BUFFER, buffer);
// Used to initialze buffer.
glBufferData(GL_ARRAY_BUFFER, 1024, data, GL_STATIC_DRAW);
glVertexAttribPointer(0, 4, GL_FLOAT, GL_FALSE, 0, nullptr);
glEnableVertexAttribArray(0);
How does glVertexAttribPointer know where the buffer object is located?
As you can see, I'm having trouble visualizing whats happening, does anyone have any tips in understanding whats happening at the hardware level or does anyone have any supplementary information that can illustrate the under workings. I look forward to your responses.