glGenBuffers(1, &ubo_matrix);
glBindBuffer(GL_UNIFORM_BUFFER, ubo_matrix);
glBufferData(GL_UNIFORM_BUFFER, sizeof matrix_state, &matrix_state, GL_STREAM_DRAW);
glGenBuffers(1, &ubo_matrix);
glBindBuffer(GL_UNIFORM_BUFFER, ubo_matrix);
glBufferData(GL_UNIFORM_BUFFER, sizeof matrix_state, &matrix_state, GL_STREAM_DRAW);