Sha256: 2f76f2c0da3024027d04fb14c25faecf48f282e28a96557e5ecb9c97312c0310

Contents?: true

Size: 879 Bytes

Versions: 12

Compression:

Stored size: 879 Bytes

Contents

#pragma once

#include <Gosu/Platform.hpp>
#include <memory>

namespace Gosu
{
    class BlockAllocator
    {
        struct Impl;
        const std::unique_ptr<Impl> pimpl;

    public:
        struct Block
        {
            unsigned left, top, width, height;
            Block() {}
            Block(unsigned a_left, unsigned a_top, unsigned a_width, unsigned a_height)
            : left(a_left), top(a_top), width(a_width), height(a_height)
            {
            }
        };

        BlockAllocator(unsigned width, unsigned height);
        ~BlockAllocator();

        unsigned width() const;
        unsigned height() const;

        bool alloc(unsigned width, unsigned height, Block& block);
        void block(unsigned left, unsigned top, unsigned width, unsigned height);
        void free(unsigned left, unsigned top, unsigned width, unsigned height);
    };
}

Version data entries

12 entries across 12 versions & 1 rubygems

Version Path
gosu-0.12.1 src/BlockAllocator.hpp
gosu-0.12.0 src/BlockAllocator.hpp
gosu-0.11.4.pre3 src/BlockAllocator.hpp
gosu-0.11.4.pre2 src/BlockAllocator.hpp
gosu-0.11.4.pre1 src/BlockAllocator.hpp
gosu-0.11.3.1 src/BlockAllocator.hpp
gosu-0.11.3 src/BlockAllocator.hpp
gosu-0.11.3.pre1 src/BlockAllocator.hpp
gosu-0.11.2 src/BlockAllocator.hpp
gosu-0.11.1 src/BlockAllocator.hpp
gosu-0.11.1.pre1 src/BlockAllocator.hpp
gosu-0.11.0 src/BlockAllocator.hpp