Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. International
  3. Polish
  4. Qt 5.3.0 MiniGW + OpenGL
Forum Updated to NodeBB v4.3 + New Features

Qt 5.3.0 MiniGW + OpenGL

Scheduled Pinned Locked Moved Polish
4 Posts 2 Posters 2.2k Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • A Offline
    A Offline
    arknaw
    wrote on last edited by
    #1

    Witam, jestem początkującym programistą, stawiam pierwsze kroki w Qt 5.3.0+ MiniGw i mam problem skompilować jakikolwiek program z OpenGL np. "youtube":http://www.youtube.com/watch?v=1nzHSkY4K18. Proste programy które napisałem działają na innych komputerach (których karty graficzne są komatybline z OpenGL 3.0) niestety mój komputer ma straszą karte graficzną Mobile Intel® 4 Series Express Chipset Family która wspomaga openGL w wer. 2.1. Ten sam problem dotyczy przykładów z qt-creatr'a z openGL. Czy to oznacza że nie uda mi się skompilować żadnego programu z openGl na tej karcie? Najnowsze sterowniki zainstalowane i DirectX. Dodam że OpenGL pod Microsoft Visual Studio działa bez zastrzeżeń

    1 Reply Last reply
    0
    • sierdzioS Offline
      sierdzioS Offline
      sierdzio
      Moderators
      wrote on last edited by
      #2

      Minimalna wersja OpenGLa w Qt 5 to 2.0. Także powinno działać, tym bardziej że sterowniki Intela bardzo się poprawiły w ostatnim czasie.

      Spróbuj zainstalować build z ANGLE (używa DirectX), może podziała. Jak nie, to można jeszcze spróbować użyć Mesa-LLVMPipe, czyli softwareowego OpenGLa: ale to raczej dla bardziej zaawansowanych.

      Alternatywnie, jeśli mało Ci nauki, to polecam przeskoczyć na Linuxa, tak jak w linkowanym przez ciebie video. Plusy Linuxa są takie, że nie ma tu nigdy problemów z kompilatorami i podstawowym OpenGLem. Minusy też są, a jakże ;-) OK, starczy propagandy :-P

      Na koniec całkiem ważna sprawa: podaj jakieś szczegóły do "mam problem skompilować jakikolwiek program z OpenGL". Jakie błędy ci wyskakują? Może wystarczy poustawiać trochę opcji w projekcie i znajdzie brakujące nagłóœki/ biblioteki.

      (Z(:^

      1 Reply Last reply
      0
      • A Offline
        A Offline
        arknaw
        wrote on last edited by
        #3

        Błąd jest dość powszechny: Program opengl.exe przestał działać. a w trybie debbug:
        @Podproces zatrzymany, ponieważ otrzymał on sygnał z systemu operacyjnego.

        Nazwa sygnału:
        SIGSEGV
        Znaczenie sygnału:
        Segmentation fault
        @
        tak jak pisalem kod dziala na innych komputerach bez najmniejszego problemu. Dołączam kod programu:
        mainwindow.cpp
        @#include "mainwindow.h"
        #include "ui_mainwindow.h"

        MainWindow::MainWindow(QWidget *parent) :
        QMainWindow(parent),
        ui(new Ui::MainWindow)
        {
        ui->setupUi(this);

        cScena* scena = new cScena(this);
        ui->verticalLayout->addWidget(scena);
        

        }

        MainWindow::~MainWindow()
        {
        delete ui;
        }
        @
        cscena.cpp
        @#include "cscena.h"

        cScena::cScena(QWidget *parent) :
        QGLWidget(parent)
        {
        }
        cScena::cScena (const QGLFormat & format, QWidget * parent = 0, const QGLWidget * shareWidget = 0, Qt::WindowFlags f = 0)
        :QGLWidget(format,parent,shareWidget,f)
        {

        }

        void cScena::paintGL()
        {
        glClear(GL_COLOR_BUFFER_BIT);
        glColor3f(1.0, 1.0, 0.0);
        glBegin(GL_POLYGON);
        glVertex3f(-1.0,-1.0,0);
        glVertex3f(-1.0,1.0,0);
        glVertex3f(1.0,1.0,0);
        glVertex3f(1.0,-1.0,0);
        glEnd();
        }

        void cScena::initializeGL()
        {
        glClearColor (1.0, 1.0, 1.0, 0.0);

        }

        void cScena::resizeGL(int width,int height)
        {
        glViewport(0,0,width,height);
        glMatrixMode (GL_PROJECTION);
        glLoadIdentity ();
        glOrtho(-5,5,-5,5,-1.0, 1.0);
        glMatrixMode (GL_MODELVIEW);
        glLoadIdentity ();
        }

        @
        mainwindow.h
        @
        #ifndef MAINWINDOW_H
        #define MAINWINDOW_H

        #include <QMainWindow>
        #include <cscena.h>
        #include <qpushbutton.h>
        namespace Ui {
        class MainWindow;
        }

        class MainWindow : public QMainWindow
        {
        Q_OBJECT

        public:
        explicit MainWindow(QWidget *parent = 0);
        ~MainWindow();

        private:
        Ui::MainWindow *ui;

        };

        #endif // MAINWINDOW_H
        @
        cscena.h
        @
        #ifndef CSCENA_H
        #define CSCENA_H

        #include <QGLWidget>

        class cScena : public QGLWidget
        {
        Q_OBJECT //makro
        public:
        explicit cScena(QWidget *parent = 0);
        cScena (const QGLFormat & format, QWidget * parent , const QGLWidget * shareWidge, Qt::WindowFlags f );

        virtual void paintGL();
        virtual void initializeGL();
        virtual void resizeGL(int width, int height);
        

        signals:

        };
        #endif // CSCENA_H
        @
        dołączyłem oczywiście QT += opengl w opengl.pro. i mama dołączone .dll w katalogu system32. Mógłbys powiedzieć coś więcej o tym angle? i dlaczego nie działa u mnie ten kod skoro podobno qt 5.3 działa juz z opengl'em 2.1?
        Dziękuje za dotychczasową odpowiedz.

        1 Reply Last reply
        0
        • sierdzioS Offline
          sierdzioS Offline
          sierdzio
          Moderators
          wrote on last edited by
          #4

          NIe znam się dobrze na OpenGLu w Qt (ani na OpenGL w ogóle), sorry. Jedyne co potrafię zauważyć, to to, że używasz starych wywołąń OpenGL. Jeśli exe się wywala tylko na tym kompie i debugging nie pokazuje, gdzie, to może trafiłeś w słaby punkt sterownika.

          Angle to projekt, który przerabia wywołania OpenGL na DirectX. Dzięki temu Qt mysli, że używa OpenGL, a tak na prawdę w tle działa sterownik DirectX. Przydatne głownie na starszych kompach i Windowsie XP. Qt Project udostępnia instalatory, które mają wbudowane ANGLE w siebie.

          (Z(:^

          1 Reply Last reply
          0

          • Login

          • Login or register to search.
          • First post
            Last post
          0
          • Categories
          • Recent
          • Tags
          • Popular
          • Users
          • Groups
          • Search
          • Get Qt Extensions
          • Unsolved