Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
6
Help us understand the problem. What is going on with this article?
@cho_design_lab

Visual Studio + GLFW 簡単導入

More than 5 years have passed since last update.

まえおき

動機

Visual Studio で利用できるNuGetを利用したら、想像以上に短時間でGLFWを利用したプロジェクトが作成できたので記事にすることにしました。

対象者

Visual Studioを利用している方で、GLFWを導入したい方。
インターネットに接続されている方。

環境

Visual Studio 2015(2013でも一応確認)
Windows7

謝辞

本記事は床井先生の情報を参考に執筆いたしました。また、ソースコードは床井先生のコードをパク…参考にしたと思います。昔書いたコードを移植しただけなので、覚えておりません。
よろしければ、以前書いたGLFW導入の記事をどうぞ。
GLFWを導入する

さっそく本題

流れ
1. プロジェクトを作成する
2. NuGetパッケージマネージャからGLFWをインストール
3. OpenGLライブラリのリンク設定
4. ビルド&実行

1. プロジェクトを作成する

Visual Studioのメニューから、ファイル新規作成プロジェクトを選ぶ
WS000059.JPG

今回はWin32コンソールアプリケーションを指定。
WS000060.JPG

ちょっと事情があって、空のプロジェクトにしました。
WS000061.JPG

これにてプロジェクト作成完了

2. NuGetパッケージマネージャからGLFWをインストール

ソリューションエクスプローラにある作成したプロジェクトを右クリックし、NuGetパッケージの管理 を選択する
WS000062.JPG

NuGetパッケージマネージャの検索窓にglfwと入力すると、絞り込まれる。
glfwのパッケージを選択し、右側にあるインストールボタンを押下する。この時バージョンに希望があれば、指定する。
WS000063.JPG

インストールする前に、確認がでるので、よければOK。
WS000064.JPG

3. OpenGLライブラリのリンク設定

GLFWを利用する際には必ず(?)OpenGLを利用するので、OpenGLのライブラリをリンクしなければならない。そこで、プロジェクトプロパティを開き、構成プロパティ->リンカ->追加依存ファイルopengl32.libを追加する。
WS000065.JPG

4. ビルド&実行

ここまでで設定完了です。あとはどしどしコードを書いて実行してください。とりあえず、今回は下記のソースコードで動作の確認をしました。

以前書いたGLFW導入の記事から拝借しました。
GLFWを導入する

main.cpp
#include <iostream>
#include <GLFW/glfw3.h>


int main()
{
    if (glfwInit() == GL_FALSE)
    {
        std::cerr << "Can't initilize GLFW" << std::endl;
        return 1;
    }

    glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 3);
    glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 2);
    glfwWindowHint(GLFW_OPENGL_FORWARD_COMPAT, GL_TRUE);
    glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE);

    GLFWwindow *const window = glfwCreateWindow(640, 480, "SAMPLE", NULL, NULL);
    if (window == nullptr)
    {
        std::cerr << "Can't create GLFW window." << std::endl;
        glfwTerminate();
        return 1;
    }

    glfwMakeContextCurrent(window);

    glClearColor(1.0f, 1.0f, 1.0f, 0.0f);

    while (glfwWindowShouldClose(window) == GL_FALSE)
    {
        glClear(GL_COLOR_BUFFER_BIT);


        glfwSwapBuffers(window);

        glfwWaitEvents();
    }

    glfwTerminate();
}

白い画面にウィンドウタイトルが"SAMPLE"と出れば成功です。
WS000067.JPG

おわりに

とっても簡単に導入することができました。以前、大学の授業で多数の学生相手に、ライブラリのダウンロード、適切な場所への移動、パスの追加などなど、非常にミスが多発し、頭が痛くなりましたが、これで少し問題が解消できそうです。

6
Help us understand the problem. What is going on with this article?
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
cho_design_lab
たぶん新規性はありません

Comments

No comments
Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account Login
6
Help us understand the problem. What is going on with this article?