summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDimitri John Ledkov <xnox@ubuntu.com>2019-09-10 14:00:08 +0100
committerRay Strode <rstrode@redhat.com>2019-09-11 09:11:24 -0400
commitaa89dcdf5e183796c91e3d7e53b443fe276edf6a (patch)
tree237ad96aa899b58ae090a73afcde7a497268b3b6
parent9eb7b17bdb0592e25d35aeaa450338e45315747a (diff)
script: Add image tile support.
Signed-off-by: Dimitri John Ledkov <xnox@ubuntu.com>
-rw-r--r--src/plugins/splash/script/script-lib-image.c22
-rw-r--r--src/plugins/splash/script/script-lib-image.script5
2 files changed, 27 insertions, 0 deletions
diff --git a/src/plugins/splash/script/script-lib-image.c b/src/plugins/splash/script/script-lib-image.c
index 748e6d1e..c53e0b0e 100644
--- a/src/plugins/splash/script/script-lib-image.c
+++ b/src/plugins/splash/script/script-lib-image.c
@@ -146,6 +146,21 @@ static script_return_t image_scale (script_state_t *state,
return script_return_obj_null ();
}
+static script_return_t image_tile (script_state_t *state,
+ void *user_data)
+{
+ script_lib_image_data_t *data = user_data;
+ ply_pixel_buffer_t *image = script_obj_as_native_of_class (state->this, data->class);
+ int width = script_obj_hash_get_number (state->local, "width");
+ int height = script_obj_hash_get_number (state->local, "height");
+
+ if (image) {
+ ply_pixel_buffer_t *new_image = ply_pixel_buffer_tile (image, width, height);
+ return script_return_obj (script_obj_new_native (new_image, data->class));
+ }
+ return script_return_obj_null ();
+}
+
static script_return_t image_text (script_state_t *state,
void *user_data)
{
@@ -256,6 +271,13 @@ script_lib_image_data_t *script_lib_image_setup (script_state_t *state,
"height",
NULL);
script_add_native_function (image_hash,
+ "_Tile",
+ image_tile,
+ data,
+ "width",
+ "height",
+ NULL);
+ script_add_native_function (image_hash,
"GetWidth",
image_get_width,
data,
diff --git a/src/plugins/splash/script/script-lib-image.script b/src/plugins/splash/script/script-lib-image.script
index 00b1c19c..ab4b7cfe 100644
--- a/src/plugins/splash/script/script-lib-image.script
+++ b/src/plugins/splash/script/script-lib-image.script
@@ -14,6 +14,11 @@ Image.Scale = fun (width, height)
return Image.Adopt (this._Scale(width, height));
};
+Image.Tile = fun (width, height)
+{
+ return Image.Adopt (this._Tile(width, height));
+};
+
Image.Text = fun (text, red, green, blue, alpha, font, align)
{
return Image.Adopt (Image._Text (text, red, green, blue, alpha, font, align));