リソースを扱うクラス群があります。リソースというのは画像、フォント、サウンド、などのことです。いったリソースは通常、ファイルから読み込んでプログラム内で使いますよね(つまり、loadFromFile()関数を使う)。(つまり、loadFromMemory()関数でメモリから取得)。大体は、この2つの方法で事足りると思います。圧縮ファイルからリソースを読み込みたいかもしれない。暗号化されているファイルから読み込みたいかもしれない。ネットワークを通して、他のコンピューターから読み込みたいかもしれない。第3の関数があります。loadFromStream()関数です。データを読み込みます。抽象クラスなので、中身は好きなように実装できます。以下、このページでは、独自のストリームクラスを実装して使う方法を紹介します。標準のストリーム機能を使えばいいのではなくて?ご多分に漏れず、C++には入力ストリーム用のクラスが用意されています。用意されているクラスは2つ。std::streambuf。前者はフロントエンド専用。独自のデータを扱うための抽象インターフェイスを提供しているのは後者です。残念ながら、どちらもあんまりユーザーフレンドリーではありません。細かい制御をしようとすると、非常に複雑になってしまいます。非常に巨大なライブラリなので、SFMLとしては「使うといいよ」とは言いにくい。独自のストリーム用のインターフェイスを用意しています。シンプル&高速、で、ありますように......。いう抽象クラス(インターフェイス)があります。内部で4つの仮想関数が宣言されています。以下は、各関数の仕様です。このインターフェイスを継承し、仕様に沿って中身を実行することで、独自のストリームクラスとなります。戻り値は実際に取り出すことができたデータのバイト数です。seek()関数は、ストリーム内での現在の読み込み位置を変更します。表しているのは、絶対位置です。データの開始位置からの相対座標とも言えます。