summaryrefslogtreecommitdiff
path: root/content/handlers/javascript/duktape/ImageData.bnd
diff options
context:
space:
mode:
Diffstat (limited to 'content/handlers/javascript/duktape/ImageData.bnd')
-rw-r--r--content/handlers/javascript/duktape/ImageData.bnd44
1 files changed, 44 insertions, 0 deletions
diff --git a/content/handlers/javascript/duktape/ImageData.bnd b/content/handlers/javascript/duktape/ImageData.bnd
new file mode 100644
index 000000000..17673d92a
--- /dev/null
+++ b/content/handlers/javascript/duktape/ImageData.bnd
@@ -0,0 +1,44 @@
+/* HTML canvas ImageData objects
+ *
+ * Copyright 2020 Daniel Silverstone <dsilvers@netsurf-browser.org>
+ *
+ * This file is part of NetSurf, http://www.netsurf-browser.org/
+ *
+ * Released under the terms of the MIT License,
+ * http://www.opensource.org/licenses/mit-license
+ */
+
+class ImageData {
+ private int width;
+ private int height;
+ private uint8_t *data;
+};
+
+init ImageData(int width, int height)
+%{
+ priv->width = width;
+ priv->height = height;
+ priv->data = duk_push_buffer(ctx, width * height * 4, false);
+ duk_put_prop_string(ctx, 0, MAGIC(DATA));
+ duk_pop(ctx);
+%}
+
+getter ImageData::width()
+%{
+ duk_push_int(ctx, priv->width);
+ return 1;
+%}
+
+getter ImageData::height()
+%{
+ duk_push_int(ctx, priv->height);
+ return 1;
+%}
+
+getter ImageData::data()
+%{
+ duk_push_this(ctx);
+ duk_get_prop_string(ctx, -1, MAGIC(DATA));
+ duk_push_buffer_object(ctx, -1, 0, priv->width * priv->height * 4, DUK_BUFOBJ_UINT8CLAMPEDARRAY);
+ return 1;
+%}