glGetBufferSubData () не возвращает никаких данных? - PullRequest
0 голосов
/ 14 мая 2018

Я попытался запустить код в примере ниже.Однако после вызова glGetBufferSubData данные сохраняют свои значения по умолчанию и не получают значения, сохраненные в bufferObject [0], которые равны значениям в вершинах.Я неправильно использую glGetBufferSubData?

    glBindVertexArray(arrayObject);
    glGenBuffers(1, &bufferObject[0]);
    glBindBuffer(GL_ARRAY_BUFFER, bufferObject[0]);
    glBufferData(GL_ARRAY_BUFFER, numVertices * sizeof(Vector3), vertices, GL_STATIC_DRAW);
    glVertexAttribPointer(0, 3, GL_FLOAT, GL_FALSE, 0, 0);
    glEnableVertexAttribArray(0);

    Vector3 *data = new Vector3();

    glGetBufferSubData(bufferObject[0], 0, numVertices * sizeof(Vector3), data);

1 Ответ

0 голосов
/ 14 мая 2018
glGetBufferSubData(bufferObject[0], 0, numVertices * sizeof(Vector3), data);
                   ^^^^^^^^^^^^^^^ nope

Параметр target glGetBufferSubData() должен указывать точку привязки, а не буферный объект. Попробуйте GL_ARRAY_BUFFER вместо:

glGetBufferSubData(GL_ARRAY_BUFFER, 0, numVertices * sizeof(Vector3), data);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...