OpenGLのはじめ
- Qt4.7.3
プロジェクトファイルを作成する(GUIアプリケーション)
新規プロジェクトを作成します。
- メニューのファイルから、「ファイル/プロジェクトの新規作成」を選択します。
- プロジェクトから「Qtウィジェット プロジェクト」→「Qt GUI アプリケーション」を選択します。
- 「選択」をクリックします。
- プロジェクト名はここでは"hellogl"とします。
- プロジェクトパス名を適当に設定します。ここでは"qtwork"を作成します。
- 「次へ」をクリックします。
- ターゲット設定、そのまま「次へ」をクリックします。
- クラス情報、そのまま「次へ」をクリックします。
- プロジェクト管理、そのまま「次へ」をクリックします。
QGLWidgetの追加
次にQGLWdigetを継承したクラスを作成します。
ここではクラス名を"GLWidget"とします。
ここではクラス名を"GLWidget"とします。
- ファイルから「ファイル/プロジェクトの新規作成」
- ファイルとクラスから「C++」→「C++クラス」を選択
- 「選択」をクリックします。
- クラス名に、ここでは"GLWidget"と入力します。
- 入力したら、「次へ」をクリックします。
#ref error :ご指定のファイルが見つかりません。ファイル名を確認して、再度指定してください。 (gl007.png)
- プロジェクト管理、そのまま「完了」をクリックします。
すると、次のようにglwidget.hとglwidget.cppが追加されます。
ただし、まだ空のクラスを追加したにすぎないため、ここからキーボードを使ってプログラムを作成します。
glwidget.hおよびglwidget.cppを以下のように記述修正します。
glwidget.hおよびglwidget.cppを以下のように記述修正します。
- glwidget.h
#ifndef GLWIDGET_H
#define GLWIDGET_H
#include <QGLWidget>
class GLWidget : public QGLWidget
{
Q_OBJECT
public:
GLWidget(QWidget *parent = 0);
~GLWidget();
protected:
virtual void initializeGL();
virtual void resizeGL( int w, int h );
virtual void paintGL();
};
#endif // GLWIDGET_H
- glwidget.cpp
#include "glwidget.h"
GLWidget::GLWidget(QWidget *parent):
QGLWidget(parent)
{
}
GLWidget::~GLWidget()
{
}
void GLWidget::initializeGL()
{
glClearColor(0.3, 0.3, 0.3, 1.0);
}
void GLWidget::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 GLWidget::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();
}
次がポイントです。
「クラスの格上げ」という機能を使ってユーザが作成したクラスをプロジェクトに組み込みます。
「クラスの格上げ」という機能を使ってユーザが作成したクラスをプロジェクトに組み込みます。
- プロジェクト→フォームから"mainwindow.ui"をダブルクリックします。
するとウィンドウの右側にフォームの情報が表示されます。
- "centralWidget"を右クリックして「クラスの格上げ指定」を選択します。
- 「格上げされたクラス名」に"GLWidget"と入力します。
- 入力したら「追加」ボタンをクリックします。
- 「格上げ」をクリックします。
これでユーザが作成した"GLWidget"が格上げされてプロジェクトに組み込まれました。
最後に、プロジェクトでOpenGLを使うので、
- プロジェクトの"helllo.pro"を開き、「QT」の変数に"opengl"を追加します。
あとは、コンパイル&ビルドをするだけです。
実行結果
うまく実行できると、以下のような結果となります。
まとめ
QtのバージョンがかわるごとにCreatorの使い方が微妙に変わってくるので、それに合わせて操作を覚えるのが大変です。
ただ、「格上げ」というのは便利なので、ぜひ覚えておきたい機能です。
ただ、「格上げ」というのは便利なので、ぜひ覚えておきたい機能です。