1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| uniformBlockBindingID = 10;
unsigned int uboMatrices; glGenBuffers(1, &uboMatrices); glBindBuffer(GL_UNIFORM_BUFFER, uboMatrices); glBufferData(GL_UNIFORM_BUFFER, 2 * sizeof(glm::mat4), NULL, GL_STATIC_DRAW); glBindBuffer(GL_UNIFORM_BUFFER, 0);
glBindBufferRange(GL_UNIFORM_BUFFER, uniformBlockBindingID, uboMatrices, 0, 2 * sizeof(glm::mat4));
unsigned int uniformBlockIndex1 = glGetUniformBlockIndex(program1, "Matrices"); glUniformBlockBinding(program1, uniformBlockIndex1, uniformBlockBindingID);
unsigned int uniformBlockIndex2 = glGetUniformBlockIndex(program2, "Matrices"); glUniformBlockBinding(program2, uniformBlockIndex2, uniformBlockBindingID);
glm::mat4 projection = glm::perspective(45.0f, (float)SCR_WIDTH / (float)SCR_HEIGHT, 0.1f, 100.0f); glBindBuffer(GL_UNIFORM_BUFFER, uboMatrices); glBufferSubData(GL_UNIFORM_BUFFER, 0, sizeof(glm::mat4), glm::value_ptr(projection));
|