OpenGL を勉強して以来、ちょっとしたジレンマに陥っています。GL 4.3 (nVidia GTX 550 ti
モデル) をサポートする優れたビデオ カードを持っているのに、ラップトップは統合グラフィックス (Intel HD 3000、i5-2410M
からバージョン 3.1 を実行します。このカードが OpenGL 3.2 をサポートできるかどうかはわかりません。
いずれにせよ、コア i3/i5 プロセッサーが OpenGL 3.2+ をサポートするために必要なのはドライバーの更新だけであることが判明したとしても、サポートのためにどこを見ればよいのか、正確に何に注意を払う必要があるのかはまだわかりません。 3.x および 4.x。
たとえば、AFAIK GLSL 1.4 は、このlayout(location=x) in blah blah
機能を使用するシェーダーをサポートしていません。しかし、GLSL 1.5 はありますか?
C/C++とGLSL のプリプロセッサ ディレクティブについてはどうですか? これを使用して、どの機能がどの機能で動作するかを区別できますか? または、これを処理する完全に個別のヘッダー/ソース/シェーダー ファイルを作成することをお勧めしますか (GLSL または C/C++ の場合)。
私は 3.x から 4.x までしかサポートしないつもりなので、これはもっと簡単にできるはずです。
アップデート
私のラップトップで最近ドライバーを更新した後、Nicol Bolas も述べたように、現在 Intel 3000 カードで 3.2 をサポートしていないことがわかりました。したがって、この質問を簡単にするために、バージョン 3.3 以降と比較してバージョン 3.1 で実装できるシェーディング言語機能 (回答または外部 URL) を知りたいと思います。これに関連する OpenGL 固有の C/C++ 機能/機能も歓迎します。
私の目標は、基本的に、私が取り組んでいるプロジェクト (現在 GL 4.0 コンテキストを使用している) と 3.1 コンテキストとの互換性を仲介するために何をしなければならないかを知ることができるようにすることです。
まだ不明な点があれば、適宜更新します。ありがとう。