Visual Studio2019でC言語を用いたopenGL構築

# はじめに
This article is in Japanese. English version is [here](https://honahuku.hateblo.jp/entry/2021/04/14/140250).

この記事はwindows10の環境にて、Visual Studio Community 2019のセットアップを行い、C言語の環境を構築します。その後openGLを構築します。
VS(Visual Studio)には[Chocolatey](https://chocolatey.org/)、openGLにはNuGetを用いて構築を行います。

## 注意
ESETやMcFee等のアインチウイルスソフトは一時的に無効化することを推奨します。
アンチウイルスソフトの影響で、ChocolateyやNuGet、VSの動作に支障が出る場合があります。
これは、今からセットアップに用いるソフトウェア達がユーザーの動作を自動化しているからであり、私のスクリプトの動作はウイルスと関係ないので安心してください。
また、このインストールではVS2019のCommunityを使用していますが、ProやEnterpriseでの動作は確認できてないのでお気をつけください。

# VS2019とC langのインストール
VS(Visual Studio)というのは、今回openGLでの開発に用いる統合開発環境(IDE)です。
これをインストールする際の手順を簡略化するために、今回Chocolateyというツール(パッケージ管理システム)を使用します。

## ソフトウェアのダウンロード
今回のセットアップに用いるファイルをダウンロードします。
[ここ](https://drive.google.com/file/d/1Ejtdn6mlpxuTqDBEvBAZq1WjUBvi3Wyl/view?usp=sharing)からzip形式の`openGL_software_etc.zip`というファイルがダウンロードできます。

右上のダウンロードアイコンを選択します。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/593714/0b364ef6-b7b0-fff2-d44e-8c8378d0b081.jpeg" width="650">

zipファイルという形式でダウンロードされるので、このファイルを右クリックして、`Extarct ALL...`を選択します。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/593714/c3d4a74e-7afb-ac48-e861-88d35e3a779d.png" width="650">

ウィザードが立ち上がります。ディレクトリは規定のままで良いので`Extract`を選択します。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/593714/d4f52769-fa55-1817-33a2-b544c849d83c.png" width="650">

展開されたファイルの中の`openGL.bat`もしくは`openGL`を右クリックし、`Run as administrator`を選択します。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/593714/e9cb39d8-a8d1-b585-3379-fe9a9635aa80.png" width="650">

未認証のプログラムなのでエラーが出ます。内容は問題ないので`More info`を選択します。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/593714/b3b78a4e-cfc5-3c9e-1487-97bcc07fa952.png" width="650">

`Run anyway`を選択します。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/593714/edefe208-d7f3-17e9-d294-74422de2d638.png" width="650">

ネットワークに繋がっていれば自動でVS 2019のインストールが実行されます。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/593714/880f8d16-d290-76e9-db28-4514f155aae9.png" width="650">

```
Please refer to the web article to set up C lang and openGL
```
と表示されれば完了です。

## Visual Studio2019のセットアップ
次は、先程インストールしたVS2019のセットアップです。
インストールされたVS2019を起動してください。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/593714/ff4326dd-e3a9-1863-9d0f-b2c2ea0cef96.png" width="500">

アカウントのログイン画面が表示されるので、`Sign in`を選択します。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/593714/c6d7d9b0-7f2e-d26e-685a-650cc6b88eb2.png" width="500">

職場または学校アカウントか個人のマイクロソフトアカウントでログインします。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/593714/6850ce1c-4a26-cde9-ea9b-d2f00517b852.png" width="500">

ログイン中の画面です。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/593714/6af781c3-602d-dd39-98fe-ca74cd5b8c3f.png" width="500">

## C langのセットアップ

ログインが完了してロードがすべて終了すると、この画面になります。
右下の`Create a new project`を選択します。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/593714/ba1c1b11-88ec-b71b-8326-8c6800f79ebc.png" width="650">

`install more tools and features`を選択し、追加の情報を取得します。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/593714/01942c42-01db-0a5e-92b6-5e77937ab20c.png" width="650">

`Desktop & Mobile`カテゴリー内の`Desktop development with C++`を選択して右下の`Modify`を選択します。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/593714/940dbff9-9508-ca4b-6483-7e321eb76f25.png" width="650">

VSのソフトウェアインストーラーではなくVSから起動した場合は以下のウィンドウが表示される場合があります。`Continue`を選択します。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/593714/affe9fb1-843b-fab2-8dec-9b6c4ceadcd7.png" width="500">

インストール中です。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/593714/697f2da4-fe3e-83c1-c98c-27de26b90716.png" width="650">

インストールが完了しました。このVisual Studio Installerは終了します。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/593714/d1caf5cf-2374-cb23-1f0c-b4d22839ba82.png" width="650">

# openGLのセットアップ

Visual Studioに戻って、右上の`File`→`New`→`Project...`を選択します。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/593714/6f8a7449-a49a-3fb2-0074-10914e9f7e11.png" width="650">

`C++`,`Windows`,`Console`のタグが付いている`Empty project`を選択します。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/593714/8f08b811-ae71-8ab6-3d05-40c63b926767.png" width="650">

`Project name`は任意に変更してください。
`Location`は変更しないほうがいいです。動作不良の原因にもなります。

`Place solution and project in the same directory`のチェックボックスはチェックを入れます。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/593714/a3299e91-962a-eafc-879a-141de3db6a9e.png" width="650">

プロジェクトが作成されました。これはホーム画面です。
ここで右のプロジェクト名(ここではProject1)を右クリックします。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/593714/b3a22be5-8e9f-fb60-ac5b-b41899a76ad5.png" width="650">

真ん中にある`Manage Nuget Packages`を選択します。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/593714/fb2d6a1f-34e2-6ad7-8ee9-067284d071e7.png" width="400">

選択後の画面です。右側の歯車アイコンを選択します。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/593714/6135fd18-a2b6-ebf1-a049-e074c0ccce33.png" width="650">

Package sourcesを追加します。右上の`+`アイコンをクリックします。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/593714/fceb869e-77b2-609b-7711-7623e3935b00.png" width="650">

`Name:`に`Nuget`,`Source:`に`https://nuget.org/api/v2`を入力します。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/593714/5f3602f5-84de-f8ea-ecc2-5707141596e1.png" width="650">

左側の`Browse`タブを選択し、検索バーに`nupengl`を入力して検索します。
検索結果から`nupengl.core`を選択し、真ん中の`Install`を選択します。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/593714/db1d2948-417a-ffe2-12f5-ee407c19b42c.png" width="650">

インストール確認画面です。`OK`を選択します。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/593714/9b9bb460-0c81-0613-c0cb-2747b77f5593.png" width="400">

## ファイルの展開
VSのプロジェクトディレクトリを開きます。
プロジェクト名を右クリックし、(ここではProject1)`Open Folder in File Explorer`を選択します。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/593714/66b1f383-c415-a296-fee9-7c05103f92a3.png" width="650">

セットアップの最初でダウンロードした`openGL_software_etc`を開きます。このディレクトリ内の、

`colorpic.c`
`Lenna.bmp`
`opgls.ft`

の3つをプロジェクトのディレクトリにコピーします。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/593714/124e7604-3ce1-b432-4cc0-ee54345726dd.png" width="650">

VSのプロジェクトディレクトリにあるファイルをVSで読み込みます。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/593714/2bb19b70-059f-02c8-bc03-9884fdbe7f99.png" width="650">

読み込んだ`colorpic.c`をダブルクリックして開き、画面上の真ん中にある`Local Windows Debugger`を選択します。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/593714/1cd04f1d-75b3-a718-f33c-14870c67d859.png" width="650">

画像が表示されれば成功です。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/593714/e36bc0dc-a476-3ed4-7419-00cfb47813c1.png" width="650">

# 参考記事
https://tokoik.github.io/opengl/libglut.html

https://pswork.jp/dotnet/visual-studio-nuget-packagesource/