2011-07-14 9 views
3

ポータブルなC++ネイティブマルチメディアライブラリをお勧めしますか?私はSDLを試しましたが、それはCライブラリであるため、クラスとうまくインターフェイスしません。良いC++ネイティブマルチメディアライブラリですか?

+2

ライブラリでC言語で書かれているため、クラスとのインターフェースがうまくいかないのはなぜですか?多くの(現代の)Cライブラリはオブジェクト指向スタイルを持ち、C++ラッパーに適しています。 –

+3

@AndréCaronはい、C + +のラッパーと考えることもできますが、*定型的なコードをたくさん*書くことができます。もしそのようなライブラリがすでに存在していれば、それはより良いものになります。 –

+0

マルチプラットフォームでなければならないのですか? – RedX

答えて

4

「シンプルで高速なマルチメディアライブラリ」は、基本的にオブジェクト指向で、プラットフォームに依存しない、OpenGLベースのSDLの代替であり、非常に有望です。

それはクリーンアップをリソースへの特別な注意を払って非常に明確なコードを記述することができます:

#include <SFML/Graphics.hpp> 

int main() { 
    sf::RenderWindow App(sf::VideoMode(800, 600), "SFML window"); 

    sf::Image Image; 
    if (not Image.LoadFromFile("cute_image.jpg")) 
     return -1; 
    sf::Sprite Sprite(Image); 

    while (App.IsOpened()) { 
     sf::Event Event; 
     while (App.GetEvent(Event)) { 
      if (Event.Type == sf::Event::Closed) 
       App.Close(); 
     } 

     App.Clear(); 
     App.Draw(Sprite); 
     App.Display(); 
    } 
} 
1

ffmpegを見てみましたか?

これは非常に広く使用されており、クロスプラットフォームであり、サイトには適切なライブラリであるかもしれないlibavcodecがあります。

+1

これは素晴らしい提案ですが、 'ffmpeg'もCで書かれています。 – jonsca

0

ffmpegのは、使用することは容易ではないものの、かなり良いライブラリです。

あなたは何をしようとしていますか?

+1

ffmpegは自由のように自由ではありません。私は本当に適切なライブラリでうまく行きたくありません。 –

関連する問題