Я занимаюсь преобразованием некоторого кода opengl в DSA, и везде написано, что он не связывает массив вершин, потому что его наследуют в DSA. Поэтому я использую
GLuint VBO, VAO, indexBuffer;
glCreateVertexArrays(1, &VAO);
glCreateBuffers(1, &indexBuffer);
glCreateBuffers(1, &VBO);
...
вместо аналогов glGen ...
Но теперь мне просто интересно, существует ли версия DSA для связывания массивов вершин в цикле обновления. Теперь у меня есть
while (!glfwWindowShouldClose(window)) {
glfwPollEvents();
glClearColor(0.2f, 0.3f, 0.3f, 1.0f);
glClear(GL_COLOR_BUFFER_BIT);
// Draw the triangle
ourShader.Use();
const auto Textureloc = glGetUniformLocation(ourShader.Program, "ourTexture");
glBindTextureUnit(Textureloc, texture);
glBindVertexArray(VAO);
glDrawElements(GL_TRIANGLES, 9, GL_UNSIGNED_INT, 0);
glBindVertexArray(0);
glBindTextureUnit(0, 0);
glfwSwapBuffers(window);
}
, который работает хорошо. Но столкнусь ли я позже с некоторыми интересными проблемами в моем коде, если я не заменю glBindVertexArray
на что-то другое. Так же, как я заменил glBindTexture
на glBindTextureUnit