diff options
author | Kae <80987908+Novaenia@users.noreply.github.com> | 2024-03-17 01:53:46 +1100 |
---|---|---|
committer | Kae <80987908+Novaenia@users.noreply.github.com> | 2024-03-17 01:53:46 +1100 |
commit | 53c7c3775fae0810b0831297b50aab1b0a1ef4e0 (patch) | |
tree | ee8153e55810085d6ed07a64efb6a17c1fa87a2f /source/core/scripting/StarImageLuaBindings.cpp | |
parent | 463205c09cc393e92ae2f51b9bc8f61c4e368dea (diff) |
Lua: new Image userdata (& cursor mod fix)
Diffstat (limited to 'source/core/scripting/StarImageLuaBindings.cpp')
-rw-r--r-- | source/core/scripting/StarImageLuaBindings.cpp | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/source/core/scripting/StarImageLuaBindings.cpp b/source/core/scripting/StarImageLuaBindings.cpp new file mode 100644 index 0000000..83fb8d1 --- /dev/null +++ b/source/core/scripting/StarImageLuaBindings.cpp @@ -0,0 +1,28 @@ +#include "StarImageLuaBindings.hpp" +#include "StarLuaConverters.hpp" +#include "StarImage.hpp" + +namespace Star { + +LuaMethods<Image> LuaUserDataMethods<Image>::make() { + LuaMethods<Image> methods; + + methods.registerMethodWithSignature<Vec2U, Image&>("size", mem_fn(&Image::size)); + methods.registerMethodWithSignature<void, Image&, Vec2U, Image&>("drawInto", mem_fn(&Image::drawInto)); + methods.registerMethodWithSignature<void, Image&, Vec2U, Image&>("copyInto", mem_fn(&Image::copyInto)); + methods.registerMethod("set", [](Image& image, unsigned x, unsigned y, Color const& color) { + image.set(x, y, color.toRgba()); + }); + + methods.registerMethod("get", [](Image& image, unsigned x, unsigned y) { + return Color::rgba(image.get(x, y)); + }); + + methods.registerMethod("subImage", [](Image& image, Vec2U const& min, Vec2U const& size) { + return image.subImage(min, size); + }); + + return methods; +} + +} |