bambooflow Note

OpenGLのはじめ

最終更新:

Bot(ページ名リンク)

- view
メンバー限定 登録/ログイン

CreatorでOpenGLをはじめる方法メモ





はじめかた


  • プロジェクトの作成
ここではGUIアプリケーション作成を選択します。


プロジェクト名はhello_glとします。
パスは、ここでは"C:\work"としました。


OpenGLを使用するので、QtOpenGLにチェックを入れます。


基本クラスは、QWdigetを選択します。(後にQGLWidgetを設定するために)


これで、プロジェクト作成は完了です。


ソースコードの修正

次にソースコードを修正します。

下記のファイルは、自動で生成されると思います。
main.cpp
widget.cpp
widget.h
widget.ui

main.cppは変更しません。
widget.uiはQtのユーザフォーム設定なので変更しません。
変更するのは、widget.cppとwidget.hです。


  • widget.h
#ifndef WIDGET_H
#define WIDGET_H
 
#include <QWidget>
#include <QGLWidget>   // <= 追加
 
namespace Ui {
    class Widget;
}
 
class Widget : public QGLWidget {   // <= QWidgetをQGLWdigetに変更
    Q_OBJECT
public:
    Widget(QWidget *parent = 0);
    ~Widget();
 
protected:
    void changeEvent(QEvent *e);
 
    virtual void initializeGL();               // <= 追加
    virtual void resizeGL( int w, int h );     // <= 追加
    virtual void paintGL();                    // <= 追加
 
private:
    Ui::Widget *ui;
};
 
#endif // WIDGET_H
 

  • widget.cpp
#include "widget.h"
#include "ui_widget.h"
 
Widget::Widget(QWidget *parent) :
    QGLWidget(parent),                 // <= QWidgetをQGLWdigetに変更
    ui(new Ui::Widget)
{
    ui->setupUi(this);
}
 
Widget::~Widget()
{
    delete ui;
}
 
void Widget::changeEvent(QEvent *e)
{
    QWidget::changeEvent(e);
    switch (e->type()) {
    case QEvent::LanguageChange:
        ui->retranslateUi(this);
        break;
    default:
        break;
    }
}
 
void Widget::initializeGL()               // <= 追加
{
    glClearColor(0.3, 0.3, 0.3, 1.0);
}
 
void Widget::resizeGL( int w, int h )     // <= 追加
{
    glViewport(0, 0, w, h);
 
    glLoadIdentity();
    glOrtho( -w/200.0, w/200.0, -h/200.0, h/200.0, -1.0, 1.0);
}
 
void Widget::paintGL()                    // <= 追加
{
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
 
    glColor3d(1.0, 0.0, 0.0);
    glBegin(GL_POLYGON);
    glVertex2d(-0.5, -0.5);
    glVertex2d(0.5, -0.5);
    glVertex2d(0.5, 0.5);
    glVertex2d(-0.5, 0.5);
    glEnd();
    //glFlush();
}
 
 


コンパイル&実行


デバッグを実行(F5)します。


タグ:

Qt OpenGL
記事メニュー
ウィキ募集バナー