Merge pull request #683 from MihailRis/canvas-get-data
add canvas:get_data() -> bytearray
This commit is contained in:
commit
38327d93df
@ -195,7 +195,8 @@ Here, *color* can be specified in the following ways:
|
||||
| data:clear() | clears the canvas |
|
||||
| data:clear(*color*) | fills the canvas with the specified RGBA color |
|
||||
| data:update() | applies changes to the canvas and uploads it to the GPU |
|
||||
| data:set_data(data: table<int>) | replaces pixel data (width * height * 4 numbers) |
|
||||
| data:set_data(data: Bytearray | table<int>) | replaces pixel data (width * height * 4 numbers) |
|
||||
| data:get_data() | creates a Bytearray object with the image's pixel data |
|
||||
| data:create_texture(name: str) | creates and shares texture to renderer |
|
||||
| data:unbind_texture() | unbinds the texture from the canvas |
|
||||
| data:mul(*color* or Canvas) | multiplies a color by the specified color or canvas |
|
||||
|
||||
@ -195,7 +195,8 @@ document["worlds-panel"]:clear()
|
||||
| data:clear() | очищает холст |
|
||||
| data:clear(*цвет*) | заполняет холст указанным RGBA цветом |
|
||||
| data:update() | применяет изменения и загружает холст в видеопамять |
|
||||
| data:set_data(data: table<int>) | заменяет данные пикселей (ширина * высота * 4 чисел) |
|
||||
| data:set_data(data: bytearray | table<int>) | заменяет данные пикселей (ширина * высота * 4 чисел) |
|
||||
| data:get_data() | создаёт объект Bytearray с пиксельными данными изображения |
|
||||
| data:create_texture(name: str) | создаёт и делится текстурой с рендерером |
|
||||
| data:unbind_texture() | отвязывает текстуру от холста |
|
||||
| data:mul(*цвет* или Canvas) | умножает увет на указанный цвет или холст |
|
||||
|
||||
@ -224,6 +224,13 @@ static int l_set_data(State* L) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int l_get_data(State* L) {
|
||||
auto& canvas = require_canvas(L, 1);
|
||||
auto& image = canvas.getData();
|
||||
auto data = image.getData();
|
||||
return create_bytearray(L, data, image.getDataSize());
|
||||
}
|
||||
|
||||
static int l_update(State* L) {
|
||||
if (auto canvas = touserdata<LuaCanvas>(L, 1)) {
|
||||
canvas->update();
|
||||
@ -316,6 +323,7 @@ static std::unordered_map<std::string, lua_CFunction> methods {
|
||||
{"add", lua::wrap<l_add>},
|
||||
{"sub", lua::wrap<l_sub>},
|
||||
{"encode", lua::wrap<l_encode>},
|
||||
{"get_data", lua::wrap<l_get_data>},
|
||||
{"_set_data", lua::wrap<l_set_data>},
|
||||
};
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user