コンテキスト (計算機科学)
OSやデバイスドライバーが管理するプロセッサ状態のようなハードウェアレベルの情報に限らず、各種APIなど、アプリケーションソフトウェアレベルの抽象化された状態情報に関しても、コンテキストという概念が使われることがある。以下はその例である。
Microsoft WindowsのGDIおよびDirect3D/Direct2Dには「デバイスコンテキスト」の概念があり、グラフィックスオブジェクト集合の保持、グラフィックスパイプラインステートの設定、描画命令の発行などを担当する。
OpenGLには「OpenGLコンテキスト」の概念があり、OpenGLインスタンスに関連付けられたステートを保持する。WindowsのWGLでは「レンダリングコンテキスト」とも呼ばれ、すべてのOpenGL命令を通過させるポートの役割を果たす。OpenGL呼び出しを実行するスレッドはカレントコンテキストを持つ必要があり、スレッドローカルストレージの変数により保持される。
macOS/iOSのQuartz 2D(Core Graphics)には、描画パラメータや描画に必要なデバイス固有の情報を保持・管理する「グラフィックスコンテキスト」を表現するクラスとしてCGContextがある。
Androidには、アプリケーション環境に関する情報にアクセスするための抽象クラスとしてandroid.content.Contextがある。
.NETには、論理的な実行スレッドに関する情報を格納するコンテナとして「実行コンテキスト」ExecutionContextがある。.NET Frameworkでは、実行コンテキストはセキュリティコンテキスト、呼び出しコンテキスト、同期コンテキストを含んでいる。