0

私は、3つの主要なプラットフォームすべてで動作するある種の画像ビューア/エディタプログラムを作成しています。

このプログラムは利用可能な最もくだらないGFXカードで動作するはずなので、OpenGLを使用できないことはわかっています。つまり、OpenGLドライバーが利用できない可能性があります。

他のプログラムは、ハードウェアアクセラレーションを使用せずに、どのように高速に画面に描画しますか?(GFXカード)。

以前にSDLを使用して画面上のピクセルをレンダリングしたことがありますが、それが解決策になるでしょうか?または、3つのメインシステム(Windows、Mac、Linux)すべてに個別に画像レンダリングを実装する必要がありますか?もしそうなら、これら3つのシステムすべてに使用するライブラリはどれですか?

派手なアニメーションは必要ありません。ズームイン/ズームアウトしてマウスで移動できる単純な静止画像だけです。画像の移動がどのように機能するかわかりません。画面上のすべてのピクセルを更新する必要があり、非常に遅くなりますが、それを最適化するためのトリックはありますか?(ハードウェアアクセラレーションなし)。

たとえば、Paint Shop Pro 7は非常に最適化された画像表示を備えており、GPUをまったく使用していないと思います。また、非常に高速ですが、どうすればその速度を自分で達成できますか?

4

2 に答える 2

1

OpenGLは、3つのプラットフォームすべて(Windows、Linux、Mac)で動作します。固定パイプラインは、最もくだらないグラフィカルカードでもサポートされています。

画像のレンダリングはテクスチャを使用して行うことができ、それはすべてのカードでサポートされています。

マウスの操作は、SDL(または他のフレームワーク)で行う必要があります。

openglを使用しないことを選択した場合は、プラットフォームにほとんど依存しないqtを使用できます。

于 2012-07-07T19:37:43.390 に答える
0

マルチプラットフォームの描画を行うために私が行ったことは、各プラットフォーム(Windowsの場合はWinformsまたはWPF、OSXの場合はCoreGraphics、Linuxの場合はCairo)の描画ルーチンの上に抽象化レイヤーを作成することです。ここでオープンソースです: https ://github.com/picoe/Eto

これは現在、アニメーションをサポートする描画アプリケーションで使用されているため、多くのシナリオで十分なパフォーマンスを発揮します。http: //picoe.ca/products/pablodraw

(見方によって)好みに合う場合とそうでない場合の1つは、.NET / C#で記述されていることです。

于 2012-07-08T02:50:20.740 に答える