VS2017でOpenGLとGLUTを使う手順
OpenGLを使って、簡単にクロスプラットフォームなコードを書くための、GLUTというライブラリがあります。
ちょっと必要に迫られて、久しぶりにGLUTを使う機会があったので、VS2017でGLUTを使うまでの手順をざっとまとめておこうと思います。
GLUT使うのは、5~6年ぶりくらいかな。。。
単純なグラデーションを描いたりしただけですが、とても懐かしい気持ちになりましたw
freeglut
glutはもう随分と長いこと更新されなくなっているので、現在はfreeglutという互換ライブラリが使われることが多いようです。
知らんかった。。。
なので、ここではfreeglutを使ってサンプルコードを書いています。
Nugetパッケージ
このご時世に、必要なdll一式などをWebサイトから自分でダウンロードしてきて用意するのはちょっと面倒ですよね。
ライブラリはパッケージマネージャ経由で管理したいものです。
Nugetで利用できるパッケージがないか探してみると、以下のようなものがありました。 * NupenGL * freeglut
NupenGLがいい感じ!!
NupenGLは、freeglut/GLFW/GLEWの3つのライブラリをまとめてインストールしてくれます。
Nugetパッケージにfreeglutという項目もありますが、
こちらはVS2010/VS2012向けのビルドとなっていて、それ以降の環境ではlibファイルのリンクでエラーになってしまいます。
一応VS2012のコンパイラがあれば、プロジェクトのプラットフォーム・ツールセットをVS2012のものに変更することでVS2017からも利用できます。
ですが、わざわざそんなことするより、NupenGLの方を使った方が何かとトラブルが少ないかと思います。
準備
Windows SDKの準備
OpenGLのヘッダーファイル類は、WindowsSDKに含まれています。
そのため、VS2017インストール時にWindowsSDKも一緒にインストールしておく必要があります。
(未インストールの場合は、VS2017のインストーラを起動し、以下の項目にチェックを入れて追加インストールしておきましょう)
プロジェクトの作成
新規プロジェクトでWin32コンソールアプリの空のプロジェクトを作成します。
Nugetでパッケージのインストール
Nugetパッケージの管理から、「nupengl.core」という項目をインストールします。
サンプル
以上で準備ができたので、サンプルコードを動かしてみます。
グラデーションのかかった四角形を書くだけの単純なコードです。
#include <windows.h> #include <GL/gl.h> #include <GL/glut.h> void disp(void) { glClear(GL_COLOR_BUFFER_BIT); glBegin(GL_POLYGON); glColor3d(1.0, 0.0, 0.0); glVertex2d(-0.9, -0.9); glColor3d(0.0, 1.0, 0.0); glVertex2d(0.9, -0.9); glColor3d(0.0, 0.0, 1.0); glVertex2d(0.9, 0.9); glColor3d(1.0, 1.0, 0.0); glVertex2d(-0.9, 0.9); glEnd(); glFlush(); } int main(int argc, char ** argv) { glutInit(&argc, argv); glutInitWindowPosition(100, 50); glutInitWindowSize(300, 300); glutInitDisplayMode(GLUT_SINGLE | GLUT_RGBA); glutCreateWindow("Hello GLUT!!"); glutDisplayFunc(disp); glutMainLoop(); return 0; }