現在、デスクトップでOpenVGを起動して実行しようとしています。問題はここにあります:私は、ハードウェアアクセラレーションされたOpenGL ES2.0とOpenVG1.0.1(TI OMAP35xに基づく)を備えたWindows CEデバイス(.NET Compact Frameworkを使用)用のアプリケーションを開発しています。 )。アプリケーションは間違いなくOpenVGを描画に使用し、OpenVGが提供しない場合(つまりぼかし)、一部の効果にはOpenGLを使用する可能性があります。
次に、エミュレータを使用せずにデスクトップで開発したいと思います(この質問を参照)。それで、OpenVGをP / Invokeでインポートするだけだと思いました。これは、OpenVGの人々が定数を実際の列挙型に作成し、手続き型C APIであるにもかかわらず、オブジェクト指向形式(Graphicsクラスを使用)に非常によく変換されたためです。描画およびパス、ペイント、ストローク、およびイメージオブジェクト用)。また、別の名前のDLLとエントリポイントを使用することもできました。ああ、私はEGL 1.3をインポートしました。これも、オブジェクト指向APIに変換するのは非常に簡単です。
この時点まで、それはかなり良い音でした。KhronosのOpenVGリファレンス実装を使用するだけだと思いましたが、遅いです。本当に遅い。文字通り1秒で表面をクリアするようなものです。ですから、OpenVGは標準であり、他の実装の1つを採用するだけだと思いました。それらのほとんどは、私が欲しいものであるOpenGLに基づいています。それともそうではありませんか?
いいえ、ちがいます。EGL1.3(OpenGL ES2.0用のPowerVRWindowsエミュレーションSDKに付属)を使用してOpenGL ES 2.0サーフェスを作成することは、私が試したどのOpenVG実装とも互換性がありません。それらのいくつかは従来のOpenGL(AmanithVG GLE)を必要とし、PowerVRが提供するEGLバージョンはOpenVGをサポートしていません。ほとんどの実装にはEGLがなく、いくつかの奇妙な関数を使用してコンテキストを初期化します。これらはすべて、OpenGLコンテキストがすでに作成されていることを前提としています。OpenGL ESではなく、OpenGL。はぁ。
私が仕事に取り掛かることができたのはAmanithVGSREだけでした。これは、ソフトウェアの実装が非常に高速で、OpenGLやEGLに依存していません。動作しますが、リアルタイムアニメーションにはまだ遅すぎます。
私はこれらのことがとても間違っていると信じることができません。PowerVRがデスクトップWindows用のエミュレーションレイヤーを提供するWindowsMobile.DirectX.Direct3Dを使用したいのですが、最終的なボードサポートパッケージがDirect3DをOpenGLESラッパーとして提供することを期待しています。デバイス。
それで、質問、最後に:
OpenGL ES 2.0で動作するWindowsデスクトップシステム用のOpenVG実装はありますか?PowerVRのOpenGLES2.0エミュレーションと付属のEGL1.3でスムーズに動作する場合のボーナスポイント。
または、デスクトップで従来のOpenGL 2.0実装を使用してみるべきですか?しかし、彼らは通常、EGLも提供していません。2つの初期化レイヤー(EGLとWGL)は必要ありません。それとも私がすべきですか?
注:問題は.NETがなくてもまったく同じであるため、これは.NETの質問ではありません。