2011-09-13 14 views
5

XNA/Silverlightのロックダウンを回避する方法があるかどうかを調べていたので、MicrosoftがWindows Phone 7用に設定していたので、アプリケーション開発やその他のライブラリにSFML(.netバインディング)知るようになる。
は、私が見つかりました。どれも..... Windowsの携帯電話や他の類似の装置は、いくつかの言語とOpenGLなど非管理ライブラリを使用することはできませんなぜプログラミング言語/ライブラリはハードウェアとどのように通信しますか?

は、今私は思ったんだけど、すべては、特にI以来、ちょうど約プラットフォームの呼び出し/外部リンケージ/他のバイリンガルな技術を発見した。

これを理解するには、言語とマシンのハードウェアの関係を理解する必要があると思います。OpenGLのようなc/C++ライブラリは、スクリーン/グラフィックスカードとどのように通信しますか?

ボーナス質問: XNAはOpenGL/DirectXを使用しないため、完全に独立したグラフィックスAPIですか?

+0

XNAはDirectXのマネージドラッパーです! http://en.wikipedia.org/wiki/DirectX –

+0

各ビデオメーカー(AMD/NVidia/Intel)が独自の* OpenGLドライバを提供し、ハードウェアの適切な低レベルビットを処理するようにコード化されています[ほとんどの]ドライバがカーネルの一部として動作する理由です)。このレイヤーはさまざまな方法でラップできますが、これはどのように動作するかの「コア」です。 –

+0

@pst:Windowsの携帯電話はOpenGL対応のドライバを持っていません。そしてカーネルは何ですか? – Griffin

答えて

3

オペレーションシステムは、すべてのハードウェアを同じAPIでカプセル化します。 OS内部では、ハードウェアのioアドレスを使用して制御していました。

OpenGL/DirectX/XNAは、すべてのOSのシステムAPIを、その上にあるすべてのプログラムへのシンプルで使いやすいインタフェースでカプセル化します。

ジャスト以下のように:

Hardware <- HAL <- DirectX/OpenGL <- XNA <- Your Program 

・ホープ、この便利:)

ジェイソン

+0

Jasonに感謝しますが、HALとは何ですか?これは、WindowsのようなOSが他のベンダーのハードウェアとそのAPIを使ってハードウェアを通信/制御することを意味しますが、単純にすべてのコマンドを整理して使いやすくしていますか? – Griffin

+0

HALはハードウェア抽象化レイヤー(ウィキペディア...)オペレーティングシステムベンダーは、各ベンダーが作成する必要のある特定のメソッドを作成します。 OSがメソッドを呼び出すと、ベンダーはメソッドが何であってもハードウェアを実行します。 –

+0

「HALはハードウェアアブストラクションレイヤーです。」右: –

3

拡張パイプラインは次のようになります。

Hardware <- Vendor Drivers <- HAL (Operating System) <- OS Native Methods (DirectX/OpenGL) <- Managed Wrappers (XNA/.Net Frameworks/Java) <- Your Program 

いくつかの異なった理由があります。ベンダはデバイスをロックダウンします。

  1. ロックされたデバイスは、技術的な問題が少なくなる傾向があり、VerizonなどはApple/Microsoft/Google/Motorola/Blackberryソフトウェアの問題を修正したくありません。
  2. ロックされたデバイスは、第三者が不正なドライバやソフトウェアを書き込む機会が少なくて済むので、必ずしも安全であるとは限りません。
  3. OpenGLの初期/現在のデザインは、モバイルプラットフォーム上で意図されていませんでした。
  4. ロックされたデバイスは、ソフトウェアを作成するための開発ソフトウェアおよび/または開発ライセンスを購入する必要があるため、OSメーカによって収益が増加する可能性があります。

私は特にこれらのどれにも興奮していませんが、彼らはちょうど心に来ています。

関連する問題