diff options
Diffstat (limited to 'include/components/texture.hpp')
-rw-r--r-- | include/components/texture.hpp | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/include/components/texture.hpp b/include/components/texture.hpp new file mode 100644 index 0000000..f4d414e --- /dev/null +++ b/include/components/texture.hpp @@ -0,0 +1,33 @@ +#ifndef COMPONENTS_TEXTURE_HPP +#define COMPONENTS_TEXTURE_HPP + +#include "window.hpp" + +class Texture +{ +public: + Texture(const char *path) { + tex = sdl2LoadTexture(path); + } + + ~Texture() { + if (tex != nullptr) + SDL_DestroyTexture(tex); + } + + void operator()(SDL_Renderer *rend, Point p) const noexcept { + const int x = static_cast<int>(p.x); + const int y = static_cast<int>(p.y); + SDL_Rect rect {x, y, 0, 0}; + + /* TODO err check */ + SDL_QueryTexture(tex, nullptr, nullptr, &rect.w, &rect.h); + SDL_RenderCopy(rend, tex, nullptr, &rect); + } + +private: + SDL_Texture *tex; +}; + +#endif // COMPONENTS_TEXTURE_HPP + |