NSOpenGLViewは、NSOpenGLPixelFormatをいじってやることでOpenGL 3.2 Core Profileを使うことが出来る。
しかし、そこでgl3.hをインクルードすると、「gl.hとgl3.hは同時にインクルードできないよ」とコンパイラに言われてしまう。
ビルド設定のプリプロセッサマクロにGL_DO_NOT_WARN_IF_MULTI_GL_VERSION_HEADERS_INCLUDED
を定義すれば警告は消せるのだが、なぜこんな事態になっているのか。
実は、gl.h ⊂ CoreVideo/CVOpenGLBuffer.h ⊂ QuarzCore/CIImage.h ⊂ AppKit/NSCIImageRep.h
という風にインクルードされていて、Cocoaをプレフィックスヘッダでインクルードすると自動的にgl.hもインクルードされるらしい。
別にヘッダファイルでgl.hをインクルードする必要はないんじゃないか?
何か腑に落ちないのでどうにかしてほしい。