まず題したWikiページへの便利なリンクが含まれ、それはだこれはOpenGLの仕組みではないからです。 OpenGL自体は、ドライバが提供し、プログラムが使用できるAPIを記述する単なるドキュメントの集まりです。ただし、APIの実際の実装はオペレーティングシステムのコンテキストで行われます。それで、APIをOSから独立させたいのであれば、少し難しくなります。 DirectXは、ある特定のOSに対してのみ設計されているので、簡単です。そのOSはWindowsであり、DirectXは基礎となるOSの一部に対して書かれることを意味します。これは、SDKの開発を管理しやすくします。
OpenGLは何をしていますか?さて、OSのいくつかの部分はとても寛大で、プログラムで利用できるようにする必要があります。最も簡単な形式では、このインターフェースはちょうど1つの関数、GetProcAddress
を提供していたはずです。OpenGL仕様で見つかったすべての関数について、OpenGLドライバの実際のものへのポインタがその関数によって得られている可能性があります。しかし、ほとんどのプログラマが怠け者であり、簡単な方法で行っていると言っています。"OpenGLのバージョン1.1での現在の仕様です。 GetProcAddress
によってロードされる拡張機能を介して公開します。結局のところ、どれくらいの新機能が存在するのでしょうか... "。多くのことが分かります。
とにかく、OSのサポートを提供するすべてのコンパイラは、OSに付属するすべてのAPI用のインターフェイスライブラリを提供することになっています。 Windowsの場合はOpenGL-1.1です。 OpenGLインタフェースライブラリに実際のバージョンバンプが必要な場合は、OSの更新を意味します。しかし、それは新しいDirectXのバージョンがOSアップデートと共に出荷されるDirectXとあまり違いはありません。 MicrosoftがOpenGLをサポートする理由を見ていないことだけです。したがって、OpenGL-1.1は表面上に見えるものであり、我々はそれに対処しなければなりません。また、コンパイラの出荷には含まれているので、実際のSDKをダウンロードする必要はありません。
さて、どのようにこれらの機能をから後で OpenGLのバージョンにするのですか? Well:GetProcAddress
。それはそれを行う公式の方法です。実際の詳細は問題のOSに依存するが、OpenGLはOSに依存しないため、確定 OpenGL SDKにすることはできません。だから、正式にあなたがしなければならないものです:
もちろん最新のOpenGLを使いたい場合は、面倒です。そこで、あなたのために第三者のツールを開発した人もいます。そしてプログラマとして関心をお持ちのすべての場合、これらのツールはSDKのように動作します。これまでのところ最も一般的な選択です(残念ながら、OpenGLの出血の点では完全に問題がないわけではありません)。これはGLEWです。 GLEWの使用は非常に簡単です。プロジェクトのソースファイルと一緒にhttp://glew.sourceforge.net
置きglew.cとglew.hから
- ダウンロードGLEWを:私は静的にリンクされ、それを使用することをお勧めします。
- コンパイルされたソースのリストにglew.cを追加します。
GLEW_STATIC
プリプロセッサマクロ定義をプロジェクトのグローバルコンパイラフラグに設定するようにしてください。
- 代わり
#include <GL/gl.h>
- 権の使用
#include "glew.h"
、あなたのプログラム呼び出しglewInit()
に今いくつかのアドバイスOpenGLのウィンドウを作成した後:あなたは本当にに学ばなければならないが(それを脱脂ない)ドキュメントを参照してください。私が書いたことのすべてはあなたがリンクしている参考文献に記載されています。
"SDKをダウンロードできません*"これはSDKではないからです。彼らはOpenGLが正式にサポートされている実際のSDKを持っていると考えるように人々を吸い込みたいので、SDKを「SDK」と呼んでいます。それは、ウェブサイトメンテナーがリンクを張っている、ライブラリの貧弱なアップデートです。 wikiの「はじめに」ページでは、これがどのように動作するかを正確に説明しています。OpenGLアプリケーションを他の誰かのシステム上で動作させたい場合は、最近のドライバもインストールする必要があります。しかし、それはどんなグラフィックアプリケーションにも当てはまります。 –
それは私が理解しようとしていることです。最新の方法でOpenGLを使用するには、何をインストールして#includeする必要がありますか? opengl32.libはどこで入手できますか?どのヘッダファイルが必要なのか、どこで入手すればよいのですか?それがSDKを持っていない場合は、どのような機能があるのか、またその機能について知ることができますか? – ExOttoyuhr
「SDK」は単に「ライブラリ」の素晴らしい名前です。 "* opengl32.libはどこで入手できますか?*" Getting Startedページは非常に明確です。 "Visual StudioとほとんどのWindowsコンパイラには、このライブラリが付属しています。"あなたにそれにリンクするように言ったのは、*の後の文章でした。ヘッダーの状況については、「機能の取得」の部分で説明しています。あなたがリンクしたページを*読んでください*。特定の用語をスキャンしたり、「ダウンロードする」を検索したりしないでください。実際に行って、それが何を言っているのか理解しています。 –