Sha256: 1f0868b683b4c9f69af716ce634a10fac9b7281bff39e2a96b9e07e19f249876

Contents?: true

Size: 855 Bytes

Versions: 3

Compression:

Stored size: 855 Bytes

Contents

#pragma once

#include <Gosu/Fwd.hpp>
#include "BinPacker.hpp"
#include "TexChunk.hpp"
#include <cstdint>
#include <memory>

namespace Gosu
{
    class Texture : public std::enable_shared_from_this<Texture>, private Noncopyable
    {
        BinPacker m_bin_packer;
        std::uint32_t m_tex_name;
        const bool m_retro;

    public:
        Texture(int width, int height, bool retro);
        ~Texture();

        int width() const { return m_bin_packer.width(); }
        int height() const { return m_bin_packer.height(); }
        std::uint32_t tex_name() const { return m_tex_name; }
        bool retro() const { return m_retro; }

        [[nodiscard]] std::unique_ptr<TexChunk> try_alloc(const Bitmap& bitmap, int padding);

        void insert(const Bitmap& bitmap, int x, int y);
        Bitmap to_bitmap(const Rect& rect) const;
    };
}

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
gosu-2.0.0.pre8 src/Texture.hpp
gosu-2.0.0.pre7 src/Texture.hpp
gosu-2.0.0.pre6 src/Texture.hpp