OpenGLをC++11でラップしてみんとてするなり 第3回
●GLコンテキストクラスの実装
前回(第2回)で述べたように、OpenGL関連の処理は、コンテキストクラス内に用意することにしました。
このクラスの実装は、次のようになっています。
gl/Context.h
namespace gl { class Context { protected : Context() {} virtual ~Context() {} public : // TODO: 各種処理の実装 } ; }
コンテキストの作成/破棄は環境依存ですので、環境に合わせたサブクラスを作るような設計にしていますが、サブクラスの作り方についての解説は本題から外れるため、割愛します。
とりあえず今後、OpenGLのラッパーを、この「TODO」の部分に実装していきます。
●サンプルコードについて
サンプルコードは、C++の2011年版の標準仕様である、通称C++11を用いて書かれています。が、Visual Studio 2012ではC++11への対応が遅れているらしく、正しくコンパイルできないっぽいです。最新だとコンパイルできるかも。
動作確認はXCode4.4.1で行っていますが、gccでもたぶん大丈夫だと思います。