Правильное использование glMapBufferRange в Swift - PullRequest
0 голосов
/ 26 апреля 2018

Как правильно использовать данные, которые я получаю из указателя, возвращенного glMapBufferRange в swift (я имею в виду чтение, запись в индекс в массиве)?

Мой текущий код (соответствующие части):

initialisation method...
{
    glGenVertexArrays(1, &vao)
    glBindVertexArray(vao)

    glGenBuffers(1, &positionsVBO)
    glBindBuffer(GLenum(GL_ARRAY_BUFFER), positionsVBO)
    glBufferData(GLenum(GL_ARRAY_BUFFER), VectorPath.dynamicBufferSize, nil, GLenum(GL_STREAM_DRAW))

    glEnableVertexAttribArray(0)
    glBindBuffer(GLenum(GL_ARRAY_BUFFER), positionsVBO)
    glVertexAttribPointer(0, 3, GLenum(GL_FLOAT), 0, 0, nil)
}


draw method...
{
    // Not sure how to deal with the vertexPointer variable returned by glMapBufferRange   
    vertexPointer = glMapBufferRange(GLenum(GL_ARRAY_BUFFER), 0, VectorPath.dynamicBufferSize, GLenum(GL_MAP_WRITE_BIT | GL_MAP_INVALIDATE_RANGE_BIT))
    glBindVertexArray(vao)
    glDrawArrays(GLenum(GL_TRIANGLE_STRIP), 0, GLsizei(vertices.count))
    glUnmapBuffer(GLenum(GL_ARRAY_BUFFER))
}
...