OpenGL®クラスとは何ですか?
OpenGL®クラスは、OpenGL®抽象プログラミングインターフェイス(API)の一部のオブジェクト指向実装、または独自のコード内でOpenGL®関数呼び出しを使用するクラスを参照できます。 OpenGL®ライブラリの性質により、APIのオブジェクト指向バージョンは実際にはサポートされておらず、ほとんどのプログラムはクラス外で記述されたとおりに関数を呼び出しました。 オブジェクト指向言語が普及するにつれて、さまざまなOpenGL®クラスライブラリがコアライブラリのラッパーオブジェクトとして機能するように見えました。 ライブラリで提供される関数のコレクションだけでなく、完全に実現されたOpenGL®クラスを使用することには利点があります。カプセル化や、基本実装を保護しながら継承を通じて新しい機能クラスを導出する方法などです。 すべての開発者がOpenGL®クラスライブラリを使用しているわけではありません。完全にオブジェクト指向のプログラミングパラダイムに切り替えると混乱する可能性があるためです。
オブジェクト指向プログラミングでは、クラスは、メソッドと呼ばれるデータ、変数、および関数のコレクションであり、含まれる情報を変更します。 オブジェクト指向言語ではないCプログラミング言語の関数ライブラリとしてのOpenGL®の起源は、開発された方法論とプログラミング手法の一部がオブジェクト指向プログラミングにあまり適していないことを意味します。 一部のオペレーティングシステムや他のデバイスがオブジェクト指向言語に依存するようになると、いくつかのOpenGL®クラスライブラリが登場しました。
OpenGL®クラスライブラリの一部は、基本的なOpenGL®関数を単純にカプセル化しました。 これにより、プログラミング用の安全で互換性のあるフレームワークが提供されました。 一部の言語ではこのタイプのクラスが必要でしたが、サポートするクラスを機能的なアプリケーションにする必要がありました。 真に組織化されたライブラリは、実際にOpenGL®関数を一連のクラスに分割し、それぞれがレンダリングなどのライブラリの異なる要素を管理します。
多くのOpenGL®クラスライブラリは、基本的なOpenGL®エンジンを拡張し始め、より多くの機能を含むようになりました。 これには主に、シーングラフと呼ばれる、シーン内のオブジェクトを処理するための特別なクラスが含まれていました。 これらのクラスは、コアライブラリのラッパーとして機能し、新しいOpenGL®フレームワークを毎回作成することなく、シーンをレンダリングして終了する以上のことを行うプログラムを作成するために構築できる論理構造を提供します。
ユーティリティライブラリを含むほぼすべてのOpenGL®ライブラリは、何らかの方法でオブジェクト指向形式に変換されています。 これにより、場合によっては、開発者がオブジェクト指向環境でOpenGL®を実装する方法のほぼ均一な設計図を作成することにより、存在するさまざまなデバイスでOpenGL®を更新しやすくなりました。 オブジェクト指向開発ツールの追加により、ビジュアル開発をサポートするプログラムにOpenGL®クラスをドラッグアンドドロップすることも可能になり、より複雑な側面の一部が簡素化されました。