From a8265d53504f2800828385649a47d27737a0dce5 Mon Sep 17 00:00:00 2001 From: Surma Date: Wed, 23 Jan 2019 14:05:37 -0500 Subject: [PATCH] AssemblyScript version works --- codecs/rotate/{rotate.ts => rotate.as} | 2 +- codecs/rotate/rotate.wasm | Bin 342 -> 341 bytes codecs/rotate/tsconfig.json | 4 ++-- src/codecs/rotate/processor-meta.ts | 7 +++++++ 4 files changed, 10 insertions(+), 3 deletions(-) rename codecs/rotate/{rotate.ts => rotate.as} (96%) diff --git a/codecs/rotate/rotate.ts b/codecs/rotate/rotate.as similarity index 96% rename from codecs/rotate/rotate.ts rename to codecs/rotate/rotate.as index a8f184c4..b3466b39 100644 --- a/codecs/rotate/rotate.ts +++ b/codecs/rotate/rotate.as @@ -56,7 +56,7 @@ export function rotate(inputWidth: i32, inputHeight: i32, rotate: i32): void { for (let d2 = d2Start; d2 >= 0 && d2 < d2Limit; d2 += d2Advance) { for (let d1 = d1Start; d1 >= 0 && d1 < d1Limit; d1 += d1Advance) { let start = ((d1 * d1Multiplier) + (d2 * d2Multiplier)); - store(offset + i, load(start)); + store(offset + i * 4, load(start * 4)); i += 1; } } diff --git a/codecs/rotate/rotate.wasm b/codecs/rotate/rotate.wasm index 730041fde4dbb88461021a1140aa2e70e8d63c87..a1c76a21bb740b2c7247788759e98c747cf30ad6 100644 GIT binary patch delta 41 vcmcb{bd_m>H%A8(QzH{2XZ^&e6GDzmC0Pm#3hX%w%nF=2SwQY&Jw^=x^REhr delta 42 ycmcc0bd70(H-9G+Qxg*-XT1WG;}*tzsfocSc(N226xeeVm=!p4vL@>?Y5)NGcM7!t diff --git a/codecs/rotate/tsconfig.json b/codecs/rotate/tsconfig.json index c614e5c8..29b04405 100644 --- a/codecs/rotate/tsconfig.json +++ b/codecs/rotate/tsconfig.json @@ -1,6 +1,6 @@ { - "extends": "../node_modules/assemblyscript/std/assembly.json", + "extends": "./node_modules/assemblyscript/std/assembly.json", "include": [ "./**/*.ts" ] -} \ No newline at end of file +} diff --git a/src/codecs/rotate/processor-meta.ts b/src/codecs/rotate/processor-meta.ts index 854bcafa..1b70ccdd 100644 --- a/src/codecs/rotate/processor-meta.ts +++ b/src/codecs/rotate/processor-meta.ts @@ -3,3 +3,10 @@ export interface RotateOptions { } export const defaultOptions: RotateOptions = { rotate: 0 }; + +export interface RotateModuleInstance { + exports: { + memory: WebAssembly.Memory; + rotate(width: number, height: number, rotate: 0 | 90 | 180 | 270): void; + }; +}