abstract class SF::InputStream
- SF::InputStream
- Reference
- Object
Overview
Abstract class for custom file input streams
This class allows users to define their own file input sources from which SFML can load resources.
SFML resource classes like SF::Texture
and
SF::SoundBuffer
provide load_from_file and load_from_memory functions,
which read data from conventional sources. However, if you
have data coming from a different source (over a network,
embedded, encrypted, compressed, etc) you can derive your
own class from SF::InputStream
and load SFML resources with
their load_from_stream function.
Usage example:
# custom stream class that reads from inside a zip file
class ZipStream < SF::InputStream
def initialize(archive : String)
end
def open(filename : String)
end
def read(data : Slice) : Int64
end
def seek(position : Int) : Int64
end
def tell : Int64
end
def size : Int64
end
# [...]
end
# now you can load textures...
stream = ZipStream.new("resources.zip")
stream.open("images/img.png")
texture = SF::Texture.from_stream(stream)
# musics...
stream = ZipStream.new("resources.zip")
stream.open("musics/msc.ogg")
music = SF::Music.from_stream(stream)
# etc.
Direct Known Subclasses
Defined in:
system/obj.crConstructors
Instance Method Summary
- #finalize
-
#read(data : Slice) : Int64
Read data from the stream
-
#seek(position : Int) : Int64
Change the current reading position
-
#size : Int64
Return the size of the stream
-
#tell : Int64
Get the current reading position in the stream
Constructor Detail
Instance Method Detail
Read data from the stream
After reading, the stream's reading position must be advanced by the amount of bytes read.
- data - Buffer where to copy the read data
Returns: The number of bytes actually read, or -1 on error
Change the current reading position
- position - The position to seek to, from the beginning
Returns: The position actually sought to, or -1 on error
Return the size of the stream
Returns: The total number of bytes available in the stream, or -1 on error
Get the current reading position in the stream
Returns: The current position, or -1 on error.