class
#include <bn_affine_bg_tiles_ptr.h>
affine_bg_tiles_ptr std::shared_ptr like smart pointer that retains shared ownership of the tiles of an affine background.
Several affine_
The background tiles are released when the last remaining affine_
The tiles are not copied but referenced, so they should outlive the affine_
Public static functions
-
static auto find(const affine_
bg_ tiles_ item& tiles_item) -> optional<affine_ bg_ tiles_ ptr> - Searches for an affine_
bg_ tiles_ ptr which references the given tiles. -
static auto create(const affine_
bg_ tiles_ item& tiles_item) -> affine_ bg_ tiles_ ptr - Searches for an affine_
bg_ tiles_ ptr which references the given tiles. If it is not found, it creates an affine_ bg_ tiles_ ptr which references them. -
static auto allocate(int tiles_count) -> affine_
bg_ tiles_ ptr - Creates an affine_
bg_ tiles_ ptr which references a chunk of VRAM tiles not visible on the screen. -
static auto create_optional(const affine_
bg_ tiles_ item& tiles_item) -> optional<affine_ bg_ tiles_ ptr> - Searches for an affine_
bg_ tiles_ ptr which references the given tiles. If it is not found, it creates an affine_ bg_ tiles_ ptr which references them. -
static auto allocate_optional(int tiles_count) -> optional<affine_
bg_ tiles_ ptr> - Creates an affine_
bg_ tiles_ ptr which references a chunk of VRAM tiles not visible on the screen.
Constructors, destructors, conversion operators
-
affine_bg_tiles_ptr(const affine_
bg_ tiles_ ptr& other) - Copy constructor.
-
affine_bg_tiles_ptr(affine_
bg_ tiles_ ptr&& other) noexcept - Move constructor.
- ~affine_bg_tiles_ptr()
- Releases the referenced background tiles if no more affine_
bg_ tiles_ ptr objects reference to them.
Public functions
-
auto operator=(const affine_
bg_ tiles_ ptr& other) -> affine_ bg_ tiles_ ptr& - Copy assignment operator.
-
auto operator=(affine_
bg_ tiles_ ptr&& other) -> affine_ bg_ tiles_ ptr& noexcept - Move assignment operator.
- auto id() const -> int
- Returns the internal id.
- auto cbb() const -> int
- Returns the character base block of the referenced tiles.
- auto tiles_count() const -> int
- Returns the referenced number of tiles.
-
auto compression() const -> compression_
type - Returns the compression of the referenced tiles.
- auto tiles_ref() const -> optional<span<const tile>>
- Returns the referenced tiles unless it was created with allocate or allocate_optional. In that case, it returns bn::
nullopt. -
void set_tiles_ref(const affine_
bg_ tiles_ item& tiles_item) - Sets the tiles to handle.
- void reload_tiles_ref()
- Uploads the referenced tiles to VRAM again to make visible the possible changes in them.
- auto vram() -> optional<span<tile>>
- Returns the allocated memory in VRAM if this affine_
bg_ tiles_ ptr was created with allocate or allocate_optional; bn:: nullopt otherwise. - auto handle() const -> int
- Returns the internal handle.
-
void swap(affine_
bg_ tiles_ ptr& other) - Exchanges the contents of this affine_
bg_ tiles_ ptr with those of the other one.
Friends
-
void swap(affine_
bg_ tiles_ ptr& a, affine_ bg_ tiles_ ptr& b) - Exchanges the contents of an affine_
bg_ tiles_ ptr with those of another one. -
auto operator==(const affine_
bg_ tiles_ ptr& a, const affine_ bg_ tiles_ ptr& b) -> bool defaulted - Default equal operator.
Function documentation
static optional<affine_ bg_ tiles_ ptr> bn:: affine_bg_tiles_ptr:: find(const affine_ bg_ tiles_ item& tiles_item)
Searches for an affine_
Parameters | |
---|---|
tiles_item | affine_ |
Returns | affine_ |
static affine_ bg_ tiles_ ptr bn:: affine_bg_tiles_ptr:: create(const affine_ bg_ tiles_ item& tiles_item)
Searches for an affine_
Parameters | |
---|---|
tiles_item | affine_ |
Returns | affine_ |
The tiles are not copied but referenced, so they should outlive the affine_
static affine_ bg_ tiles_ ptr bn:: affine_bg_tiles_ptr:: allocate(int tiles_count)
Creates an affine_
Parameters | |
---|---|
tiles_count | Number of tiles to allocate. |
Returns | affine_ |
static optional<affine_ bg_ tiles_ ptr> bn:: affine_bg_tiles_ptr:: create_optional(const affine_ bg_ tiles_ item& tiles_item)
Searches for an affine_
Parameters | |
---|---|
tiles_item | affine_ |
Returns | affine_ |
The tiles are not copied but referenced, so they should outlive the affine_
static optional<affine_ bg_ tiles_ ptr> bn:: affine_bg_tiles_ptr:: allocate_optional(int tiles_count)
Creates an affine_
Parameters | |
---|---|
tiles_count | Number of tiles to allocate. |
Returns | affine_ |
bn:: affine_bg_tiles_ptr:: affine_bg_tiles_ptr(const affine_ bg_ tiles_ ptr& other)
Copy constructor.
Parameters | |
---|---|
other | affine_ |
bn:: affine_bg_tiles_ptr:: affine_bg_tiles_ptr(affine_ bg_ tiles_ ptr&& other) noexcept
Move constructor.
Parameters | |
---|---|
other | affine_ |
affine_ bg_ tiles_ ptr& bn:: affine_bg_tiles_ptr:: operator=(const affine_ bg_ tiles_ ptr& other)
Copy assignment operator.
Parameters | |
---|---|
other | affine_ |
Returns | Reference to this. |
affine_ bg_ tiles_ ptr& bn:: affine_bg_tiles_ptr:: operator=(affine_ bg_ tiles_ ptr&& other) noexcept
Move assignment operator.
Parameters | |
---|---|
other | affine_ |
Returns | Reference to this. |
void bn:: affine_bg_tiles_ptr:: set_tiles_ref(const affine_ bg_ tiles_ item& tiles_item)
Sets the tiles to handle.
Parameters | |
---|---|
tiles_item | affine_ |
Remember that the background tiles system does not support multiple affine_
Remember also that the tiles are not copied but referenced, so they should outlive the affine_
void bn:: affine_bg_tiles_ptr:: swap(affine_ bg_ tiles_ ptr& other)
Exchanges the contents of this affine_
Parameters | |
---|---|
other | affine_ |
void swap(affine_ bg_ tiles_ ptr& a,
affine_ bg_ tiles_ ptr& b)
Exchanges the contents of an affine_
Parameters | |
---|---|
a | First affine_ |
b | Second affine_ |