Unity 勉強メモ

ゲームエンジンのUnityを勉強するブログです。

WindowsでVisual Studio 2013を使ってGLFW+GLEWプログラムを作る手順

プロジェクトの作成

Visual Studio 2013を起動して、新しいプロジェクトを作成します。

テンプレートからVisual C++の「Win32 コンソール アプリケーション」を選びます。 f:id:lambdataro:20150530042438p:plain

アプリケーションの設定で「コンソールアプリケーション」を選んで 「空のプロジェクト」にチェックを入れます。 f:id:lambdataro:20150530042449p:plain

プロジェクトの設定 (Debugビルド)

ソリューションエクスプローラから作成したプロジェクトを右クリックして、 プロパティを選びます。

構成プロパティの「C/C++」の「全般」の「追加のインクルード ディレクトリ」を 編集して、

$(SolutionDir)include

と入力します。 f:id:lambdataro:20150530042842p:plain

構成プロパティの「C/C++」の「プリプロセッサ」の「プリプロセッサの定義」を 編集して、

GLEW_STATIC

を追加します。 f:id:lambdataro:20150530043551p:plain

構成プロパティの「リンカー」の「全般」の「追加のライブラリ ディレクトリ」を 編集して、

$(SolutionDir)lib

と入力します。 f:id:lambdataro:20150530043910p:plain

構成プロパティの「リンカー」の「入力」の「追加の依存ファイル」を 編集して、

opengl32.lib
glew32s.lib
glfw3.lib

と入力します。 f:id:lambdataro:20150530043836p:plain

プロジェクトの設定 (Releaseビルド)

まず、Debugビルドの時と同様の設定を行います。

Releaseビルドの時は、コンソールウインドウを表示しないように設定したいと思います。

構成プロパティの「リンカー」の「システム」の「サブシステム」を 「Windows」に設定します。 f:id:lambdataro:20150530044128p:plain

構成プロパティの「リンカー」の「詳細設定」の「エントリポイント」を

mainCRTStartup

に設定します。 f:id:lambdataro:20150530044305p:plain

ソリューションディレクトリにGLFWとGLEWの関連ファイルを配置

ソリューションディレクトリにincludeフォルダとlibフォルダを作成します。 f:id:lambdataro:20150530044548p:plain

GLFWのダウンロードページから 「32-bit Windows binaries」をダウンロードします。 たとえ、64bitのOSを使っていてもこの記事の手順で行う場合は、 32bitバイナリをダウンロードします。

ダウンロードしたzipファイルを解凍して、includeフォルダにある GLFWフォルダをソリューションのincludeフォルダにコピーします。

lib-vc2013にあるglfw3.libをソリューションのlibフォルダにコピーします。

GLEWのページから 「Binaries: Windows 32-bit and 64-bit」をダウンロードします。

ダウンロードしたzipファイルを解凍して、includeフォルダにある GLフォルダをソリューションのincludeフォルダにコピーします。

libフォルダのReleaseフォルダのWin32の中にあるglew32s.libを ソリューションのlibフォルダにコピーします。

ソリューションのincludeフォルダは以下のようになります。 f:id:lambdataro:20150530045402p:plain

ソリューションのlibフォルダは以下のようになります。 f:id:lambdataro:20150530045419p:plain

ソースファイルの追加

ソリューションエクスプローラからプロジェクトのソースファイルフィルタを 右クリックして、Main.cppを追加します。

以下のように入力します。

#include <GLFW/glfw3.h>

int main()
{
    GLFWwindow *window;

    if (!glfwInit()) {
        return -1;
    }

    window = glfwCreateWindow(640, 480, "OpenGL Test", NULL, NULL);
    if (!window) {
        glfwTerminate();
        return -1;
    }

    glfwMakeContextCurrent(window);

    while (!glfwWindowShouldClose(window)) {
        glfwSwapBuffers(window);
        glfwPollEvents();
    }

    glfwTerminate();
    return 0;
}

ビルド

ソリューションをDebugビルドして実行すると コンソールウインドウと以下のウインドウが表示されます。

f:id:lambdataro:20150530045846p:plain

ソリューションをReleaseビルドすると、コンソールウインドウは表示されません。