Форум программистов, компьютерный форум, киберфорум
C++ Qt
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 10.07.2014
Сообщений: 11
1

OpenGL4.3 в Qt5.1 - подключение функций

12.03.2015, 00:08. Показов 801. Ответов 0
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Привет всем.
Решил разобраться с OpenGL на QT. У меня Qt5.1, Windows7x64. Копаться в старом GL (который без шейдеров) смысла больше не вижу. Как я понял, в QTе для всех функций, начиная с OpenGL 1.1, надо прописывать точки входа. Стал читать, как это делается. Как я понял - с помощью классов формата и контекста. Толком так ничего и не получилось. Короче, что я сделал (код ниже):
C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#include "Scene.h"
#include <QGLWidget>
#include <QtOpenGL>
#include <QGLFormat>
#include <QGLContext>
#include <QOpenGLContext>
#include <QOpenGLFunctions_4_3_Core>
#include <QGLFunctions>
 
Widget::Widget(QWidget *parent) : QGLWidget(parent){}
 
Widget::~Widget(){}
 
void Widget::initializeGL(){
    glClearColor(1.0, 1.0, 1.0, 1.0);
}
 
void Widget::resizeGL(int w, int h){
    glMatrixMode(GL_PROJECTION);
    glLoadIdentity();
    glOrtho(0.0, 1.0, 0.0, 1.0, -1.0, 1.0);
    glViewport(0, 0, (GLint)w, (GLint)h);
}
 
void Widget::paintGL() {
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
    QGLFormat format;
    format.setVersion(4, 3);
    QGLContext cont(format);
    cont.create();
    cont.makeCurrent();
    QOpenGLFunctions_4_3_Core *m_funcs;
    m_funcs = cont.functions();
    m_funcs->glCreateShader(GL_VERTEX_SHADER);
}
Простой класс, который ничего не делает (только окно выводит). В его рисовальщике я создал формат, которому прописал только одну настройку - использовать OpenGL4.3 (проверял, поддерживается). Потом этот формат я задаю контексту и делаю его текущим. Потом получаю объект функций QOpenGLFunctions_4_3_Core и назначаю ему все точки входа. Вот здесь (m_funcs = cont.functions() компилятор встаёт на дыбы и пишет "cannot convert 'QGLFunctions*' to 'QOpenGLFunctions_4_3_Core*' in assignment". Понятно, что типы не стыкуются. Объясните, пожалуйста, как правильно назначать точки входа - как я успел понять, без этого OpenGL теряет смысл...
Вложения
Тип файла: rar GL1.rar (84.5 Кб, 8 просмотров)
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
12.03.2015, 00:08
Ответы с готовыми решениями:

Подключение MySQL в QT5.5
Здравствуйте! Начинаю новый проект, нужно использовать БД, нужно будет делать только анализ уже...

Подключение OpenGL и Qt5
Как к Code::Blocks 12.11 подключить opengl и qt5. Желательно и сказать где скачать и какие...

Подключение к проекту на Qt5.7 сторонней динамической библиотеке
Здравствуйте. Возник следующий вопрос с подключением сторонней динамической библиотеке в свой...

OpenGL4.0 vs DirectX11
Не хотел конечно бы устроить холивар. Но интересует вопрос какого характера: кто сейчас работает и...

0
12.03.2015, 00:08
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
12.03.2015, 00:08
Помогаю со студенческими работами здесь

С OpenGL2 переписать на OpenGL4
есть готовая ф-я на OpenGL2, ее нужно переписать на OpenGL4. проблема в том, что я не знаю, как в...

Библиотеки OpenGL3 OpenGL4
Решил изучить OpenGL4. Скачал и решил собрать/запустить пример программы. Библиотеки шли вместе с...

Подключение функций в fmincon
Здравствуйте, у меня возникла проблема, мне необходимо использовать функцию x...

Написание и подключение внешних функций для MS SQL
Проблема: Написали прогу на С++ Build-ре и хотим поключить к MS SQL 7. Никто не знает, как это...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru