diff options
Diffstat (limited to 'source/libs/asura-lib-core/graphics/binding/_image.cpp')
-rw-r--r-- | source/libs/asura-lib-core/graphics/binding/_image.cpp | 57 |
1 files changed, 51 insertions, 6 deletions
diff --git a/source/libs/asura-lib-core/graphics/binding/_image.cpp b/source/libs/asura-lib-core/graphics/binding/_image.cpp index 7c1034c..b455ad5 100644 --- a/source/libs/asura-lib-core/graphics/binding/_image.cpp +++ b/source/libs/asura-lib-core/graphics/binding/_image.cpp @@ -10,10 +10,13 @@ namespace AsuraEngine LUAX_REGISTRY(Image) { LUAX_REGISTER_METHODS(state, + { "New", _New }, { "Load", _Load }, { "GetWidth", _GetWidth }, { "GetHeight", _GetHeight }, - { "GetSize", _GetSize } + { "GetSize", _GetSize }, + { "GetPixel", _GetPixel }, + { "Render", _Render } ); } @@ -22,33 +25,75 @@ namespace AsuraEngine } - // image:Load() + // image = Image.New() + LUAX_IMPL_METHOD(Image, _New) + { + LUAX_STATE(L); + + Image* image = new Image(); + image->PushLuaxUserdata(state); + return 0; + } + + // successed = image:Load(image_data) LUAX_IMPL_METHOD(Image, _Load) { LUAX_PREPARE(L, Image); + ImageData* imgdata = state.CheckUserdata<ImageData>(2); + bool loaded = self->Load(imgdata); + state.Push(loaded); + return 1; } - // image:GetWidth() + // width = image:GetWidth() LUAX_IMPL_METHOD(Image, _GetWidth) { LUAX_PREPARE(L, Image); + state.Push(self->GetWidth()); + return 1; } - // image:GetHeight() + // height = image:GetHeight() LUAX_IMPL_METHOD(Image, _GetHeight) { LUAX_PREPARE(L, Image); + state.Push(self->GetHeight()); + return 1; } - // image:GetSize() + // w, h = image:GetSize() LUAX_IMPL_METHOD(Image, _GetSize) { LUAX_PREPARE(L, Image); + Math::Vector2u size = self->GetSize(); + state.Push(size.x); + state.Push(size.y); + return 2; + } + + // color32 = image:GetPixel(x, y) + LUAX_IMPL_METHOD(Image, _GetPixel) + { + LUAX_PREPARE(L, Image); + + uint x = state.CheckParam<uint>(2); + uint y = state.CheckParam<uint>(3); + Color32* c32 = new Color32(self->GetPixel(x, y)); + c32->PushLuaxUserdata(state); + return 1; + } + + // image:Render() + LUAX_IMPL_METHOD(Image, _Render) + { + LUAX_PREPARE(L, Image); + + return 0; } } -} +}
\ No newline at end of file |