У меня есть проблема в рамках моего проекта с использованием qt 5.5.1 и openGL GLSL. Я пытаюсь отобразить skybox, и поэтому я создал класс. Этот наследует QOpenGLFunctions_3_1. Этот последний класс содержит много функций gl. Теперь на моем конструкторе с текстурой неба, я инициализировать свои массивы (вершинные и индексные), а затем я это сделать:glGenVertexArrays QOpenGLFunctions_3_1 нарушение прав доступа на чтение
glGenVertexArrays(1, &m_vaoHandle);
glBindVertexArray(m_vaoHandle);
GLuint handle[2] = {0, 1};
glGenBuffers(2, handle);
glBindBuffer(GL_ARRAY_BUFFER, handle[0]);
glBufferData(GL_ARRAY_BUFFER, 24 * 3 * sizeof(float), v, GL_STATIC_DRAW);
glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, handle[1]);
glBufferData(GL_ELEMENT_ARRAY_BUFFER, 36 * sizeof(GLuint), el, GL_STATIC_DRAW);
У меня есть нарушение права доступа для чтения на вторую линию. Если я поместил две первые строки в конец, нарушение доступа к чтению будет отображаться на первом glBindBuffer ... Решение должно использовать glew, но я не хочу. Я взял код в начальный, который не использовал этой библиотеки (OpenGL 4.0 Shading Cookbook). Вы знаете, как я могу это исправить?
Просто потому, что вы унаследовали от 'QOpenGLFunctions_3_1', это не значит, что вы можете использовать эти функции. Вы правильно инициализировали все до использования? Пожалуйста, покажите ** полный ** пример, демонстрирующий проблему. Вам не нужно ничего фантастического, просто один 'main.cpp' с классом, который показывает проблему, и любой необходимый код инициализации OpenGL в самом' main'. –