aboutsummaryrefslogtreecommitdiff
path: root/include/mglpp/graphics/Sprite.hpp
blob: 9453c303f6809d6fd9833667aa1a4508c0b88498 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
#ifndef MGLPP_SPRITE_HPP
#define MGLPP_SPRITE_HPP

#include "Drawable.hpp"

extern "C" {
#include <mgl/graphics/sprite.h>
}

namespace mgl {
    class Texture;
    class Sprite : public Drawable {
    public:
        Sprite();
        Sprite(Texture *texture, vec2f position = vec2f(0.0f, 0.0f));
        ~Sprite();

        void set_texture(Texture *texture);

        void set_position(vec2f position) override;
        void set_color(Color color) override;
        vec2f get_position() const override;
        void set_scale(vec2f scale);
        void set_scale(float scale);
        void set_size(vec2f size);
        void set_rotation(float degrees);
        void set_origin(vec2f origin);

        vec2f get_scale() const;

        const Texture* get_texture() const;
    protected:
        void draw(Window &window) override;
    private:
        mgl_sprite sprite;
        Texture *texture;
    };
}

#endif /* MGLPP_SPRITE_HPP */