4

私は SDL と SFML について多くのことを読んできましたが、間違いなくいくつかの情報を見逃したり、理解していません。これが私が集めたものです:

  • 現在、SDL が標準 (最も一般的)
  • SDL は C とソフトウェア レンダリングを使用します (どちらが遅いですか?)
  • SDL はすべてに組み込まれていますか?
  • SFMLの人気が高まっています
  • SFML は C++ を使用し (ただし C バインディングがあります)、ハードウェア アクセラレーションによるレンダリング (高速) を利用します。
  • SFML はすべてに組み込まれるわけではありませんか?

私がやりたいことには、CとOpenGLを使用する必要があります。また、プログラムが可能な限り移植可能であることを確認する必要もあります。ただし、遅くすることはできません。

私は何をすべきか?

4

3 に答える 3

5

OpenGlをSDLで使用する場合、レンダリングはソフトウェアではなくハードウェアによって行われます。SFMLを試したことはありませんが、SDLは非常にシンプルで、成熟したライブラリです。SDLでOpenGlを作成した後、私が直面した唯一の問題は、SDLで複数のウィンドウを使用できないことです。移植性に関しては、私のプログラムはLinux、MacOS、Windowsで動作しました。今のところ、別のライブラリに切り替える理由はありません。

于 2011-08-03T16:30:43.797 に答える
5

SFMLはより成熟したライブラリです。Windows、Linux、Mac OS では、おそらく SDL よりもうまく機能します。

SFML は、Windows (98、2000、XP、Vista) や Unix システム (Linux、Mac OS X) などの標準プラットフォームでコンパイルできます。ライブラリが成長するにつれて、より多くのオペレーティング システムのサポートが追加されます。

また、SFML は当初からハードウェア アクセラレーションをサポートしていましたが、SDL ではそれについていくつか疑問があります。

ただし、SDL は現在、モバイルを含むより多くのプラットフォームで動作します。

また、C 言語を使用すると、SFML のオブジェクト指向の利点をすべて享受できない場合があります。

したがって、C (またはモバイル プラットフォームの場合) では SDL を使用し、C++ では SFML を使用する必要があります。


それで、あなたは2Dのことをしたいですか?OpenGL で頭を悩ませるのではなく、SFML を使用してください。2D 用に OpenGL とハードウェア アクセラレーションを内部的に使用します。

于 2011-08-04T15:25:25.870 に答える
2

CIを使用する必要があると言うので、SDLを使用することをお勧めします。SDL で OpenGL を使用すると、ハードウェア アクセラレーションが適用されます。SDL 2D グラフィック関数のみがソフトウェアに含まれますが、OpenGL を使用するため、画面に何も描画するためにそれらを使用することはありません。

SDL は非常に移植性が高く、SDL 1.3 (ホームページの svn またはアーカイブから) は、OpenGL ES を使用する Android 用にコンパイルすることもできます。

于 2011-08-03T16:42:14.307 に答える