質問

画面に表示し、Win32 GDIでCDCラッピングを使用して印刷する成熟したMFC C ++アプリケーションがあります。長年にわたって最適化されてきましたが、少し高速なものに置き換えたいと思います。グラフィックには、レンダリングされた三角形の表面モデル、複雑なポリラインとポリゴン、および大量のテキストが含まれていました。次の基準を満たす必要があります。

  • 表示されるベクトルの数は非常に多くなる可能性があります。たとえば、単一の表面の三角形は、レンダリング時に多くの線と塗りつぶしを生成する可能性があります。現在、この情報はどこにも保存されておらず、その場で生成および描画されます。 SDKは、バッファリングされたベクターの総数の制限をサポートする必要があります。そうしないと、メモリが不足する可能性があります。

  • SDKは、CViewおよびScrollViewクラスを含むCWnd派生クラスにレンダリングできる必要があります。

  • SDKは、すべてのWindows印刷デバイスへの印刷をサポートする必要があります。

  • SDKは、低レベルのCDC / GDI呼び出しからポートを比較的簡単にするのに十分な低レベルでなければなりません。

  • オープンソースは常に良いものですが、オプションのアップグレード/サポートを含めて最大$ 2kの1回限りのコストでも問題ありません。ユーザーあたりのライセンスコストは許容されません。

  • ソースコードへのアクセスは、特にWindows CE /モバイルでSDKの一部を実行するという考えでは、大きなボーナスになります。

  • 私は現在、独自の3Dから2Dのビューポート管理を扱っています。適切な低レベルSDKが利用できない場合、高レベルSDKは3Dを適切に処理し、32ビットWindowsプラットフォームで数百万の三角形、ポリゴン、テキストエンティティを処理する必要があります。

提案はありますか?提案された提案に特定の長所と短所をリストしていただければ幸いです。

役に立ちましたか?

解決

プロジェクトでFastGraph( http://www.fastgraph.com )を評価したことがあります。私が書いた小さなテストプログラムでそれが気に入った、それは非常に高速でした。外部の理由で使用しなかったため(評価したライブラリとは関係ありません)、実際的な経験はありません。

他のヒント

DirectXまたは SDL がニーズに合っていると思います。 3D用に設計されていますが、2Dでも機能します。どちらもWindows CE / Mobileをサポートし、SDLは多くのMicrosoft以外のOSでも利用できます。

残念ながら、ライブラリではGDIとの直接的な互換性はサポートされていません。ただし、コンバータークラスを作成することで、GDIで設計されたアプリケーションクラスからのすべての出力グラフィックを受け入れ、DirectXまたはSDLクラス(使用する内容に応じて)のニーズに合わせて形式を変換することで、このトリックを行うことができます。

個人的には、このようなコンバータークラスを一度作成しました。 SDLを使用してPocket PC用のゲームを作成し、それをPalmデバイスに移植する必要がありました。そこで、異なるグラフィックライブラリを使用する必要がありました(今はlibの名前を覚えていません)が、他のlibが必要とする形式にすべてのSDL関数出力を移植することに成功しました。現在実行しているデバイスに応じて、PalmまたはPocket PCライブラリへの呼び出しを転送するコンバーター(ラッパー)関数を呼び出すようにアプリケーションを変更する必要がありました。 GDIの変換についても同じことができると思います-> DirectXまたはGDI-> SDL。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top