最近は、時間を見つけてはM1 Mac での(主に)Xcodeでのプログラミング環境の調査と整備とビルドのテストをしています。
Xcode自体は様々なプログラミング言語に対応していますが、経験してきたのが、C言語が中心で、C++やObjective-Cの経験があまりないので、言語の習得も並行して進めています。
最近調べているのは主にC++言語です。
そして今日の記事は「Open GL」のテストがなんとかできる様になったので、その説明です。
「Open CV」に関しては試していますが、まだうまくビルドできていません。
テストに使っているXcodeは現状の最新版の筈です。
ネット検索で見つけた記事は「MacユーザーのためのOpenGL始めかた」です。
基本的にはこの記事に書いてあるとおりにXcodeを使って作業をするだけです。
(この記事を見つけるまでに、1日近くネットを検索しました。)
OSX > Application > Command Line Tool
Build Phases > Link Binary With Libraries(0 times) > +マークを選択する
+マークを押してライブラリの選択画面に切り替える。
「GL」と検索し、GLUT.frameworkとOpenGL.frameworkを選択し、Addを押す。
(下図ではフレームワークの検索画面を表示しています。)
Xcode自体の設定はこれで終わりです。参照サイトに記載のC++言語のサンプル・コードをXcodeで生成されている「main.cpp」にコピー&ペーストしてビルドしてみました。
この様にサンプル実行結果を確認しました。
また、仮にホームフォルダの中にOpenGLフォルダを作って、Xcodeで生成した「main.cpp」をその中にコピーしました。
コマンドラインから、gccを呼んで、ビルドして同じ実行結果の画像が生成されることを確認しました。ここではC++言語で生成される出力ファイルの名前は指定していないので、gccデフォルトの「a.out」が生成されています。コマンドラインは参考サイトの「2.GCCをつかってOpenGL」と同じです。
「gcc -framework GLUT -framework OpenGL main.cpp」
「OpenGL」は、Wikipediaに書いてあるとおり、「クロノス・グループ (英: Khronos Group) が策定している、グラフィックスハードウェア向けの2次元/3次元コンピュータグラフィックスライブラリである。」です。
特定の環境には依存しないので、用意されている環境を使うだけなら汎用性が高いので試してみる価値があると考えました。
但し、macOS環境での位置付けは現状では微妙なライブラリです。
Wikipediaからの引用ですが、
「macOSでの非推奨化[編集]
2018年6月5日、AppleはWWDC 2018でOpenGL/OpenCLの非推奨化を発表し、macOS Mojaveにおいて(サポートはまだ打ち切られないものの)OpenGL/OpenCLは非推奨APIとなった。macOSがネイティブにサポートするOpenGLのバージョンは4.1が最後となっている[75]。
OpenGLの代替として推奨されているAPIはMetalであるが、MetalはVulkan同様、OpenGLよりもハードウェア層に近いローレベルAPIであり、アプリケーション開発向けというよりミドルウェア開発向けに位置する。」
というものだそうです。なので、ビルドは試せますが、今後のアプリケーションなどの開発には注意する必要がありそうです。
#追記(2021/01/13)
この書籍が手元にありました。
CD-ROMでサンプル・プログラムが付いてきます。
テストのためにコマンドラインでgccを使ってビルドして実行結果を確認してみました。
画像にしたのは、sample01.cppを修正したものです。
修正したのは、ファイルのアクセス権を読み書きできる様にしました。(これはサンプル・プログラムがCD-ROMに記録されていた為だと思います。
また、「#include <glut/glut.h>」と赤文字の様にソースコードの修正をしました。これは恐らく対象にしているOpenGLのバージョンの違いだと思います。「MacユーザーのためのOpenGL始めかた」のサイトのソースコードと書籍のサンプルコードを比較して食い違っていた点を書き換えました。それによってビルドして実行結果が推定される実行結果と一致したので、この修正で間違いないと思います。