У меня есть программа OpenGL, которой необходимо периодически обновлять текстуры.Но в то же время я хочу, чтобы программа реагировала (в частности, продолжала выполнять код рисования / отображения) во время обновления этих текстур.
Но это кажется невозможным: если я заставлю thread1 сделать код рисования / отображения и thread2 для перемещения текстуры, то они будут конфликтовать с ресурсом GL_ARRAY_BUFFER_ARB, потому что thread2 должен сохранить этот ресурс для перемещения некоторых текстурВБО.И мне нужно GL_ARRAY_BUFFER_ARB, чтобы сделать код рисования / отображения для thread1, потому что он использует разные VBO.
Например, этот код
glBindBufferARB(GL_ARRAY_BUFFER_ARB, tVboId);
glBufferDataARB(GL_ARRAY_BUFFER_ARB, numVertices*2*sizeof(GLfloat), texCoords, GL_DYNAMIC_DRAW_ARB);
glBindBufferARB(GL_ARRAY_BUFFER_ARB,0);
переместит некоторые текстуры, но это займет некоторое время.В течение этого времени предполагается, что код дисплея будет выполняться много раз, но вместо этого произойдет сбой, поскольку используется GL_ARRAY_BUFFER_ARB.
Я думал, что мог бы сделать что-то вроде GL_ARRAY_BUFFER_ARB2, но я думаю, что такого нет.