From cb224076ec320540904119a77526e7e7f0afaa05 Mon Sep 17 00:00:00 2001 From: Hitalo Souza <63821277+enghitalo@users.noreply.github.com> Date: Sun, 14 Jan 2024 07:34:23 -0400 Subject: [PATCH] examples: add examples/wasm/change_color_by_id/ (#20519) --- cmd/tools/modules/testing/common.v | 3 +- examples/wasm/change_color_by_id/README.md | 20 +++++++ .../change_color_by_id.html | 55 ++++++++++++++++++ .../change_color_by_id.wasm.v | 18 ++++++ examples/wasm/change_color_by_id/favicon.ico | Bin 0 -> 991 bytes .../wasm/change_color_by_id/serve_folder.v | 22 +++++++ 6 files changed, 117 insertions(+), 1 deletion(-) create mode 100644 examples/wasm/change_color_by_id/README.md create mode 100644 examples/wasm/change_color_by_id/change_color_by_id.html create mode 100644 examples/wasm/change_color_by_id/change_color_by_id.wasm.v create mode 100644 examples/wasm/change_color_by_id/favicon.ico create mode 100644 examples/wasm/change_color_by_id/serve_folder.v diff --git a/cmd/tools/modules/testing/common.v b/cmd/tools/modules/testing/common.v index 5448eba9b8..de9f5de486 100644 --- a/cmd/tools/modules/testing/common.v +++ b/cmd/tools/modules/testing/common.v @@ -277,8 +277,9 @@ pub fn new_test_session(_vargs string, will_compile bool) TestSession { skip_files << 'examples/sokol/sounds/wav_player.v' skip_files << 'examples/sokol/sounds/simple_sin_tones.v' } - // examples/wasm/mandelbrot/mandelbrot.wasm.v requires special compilation flags: `-b wasm -os browser`, skip it for now: + // requires special compilation flags: `-b wasm -os browser`, skip it for now: skip_files << 'examples/wasm/mandelbrot/mandelbrot.wasm.v' + skip_files << 'examples/wasm/change_color_by_id/change_color_by_id.wasm.v' } vargs := _vargs.replace('-progress', '') vexe := pref.vexe_path() diff --git a/examples/wasm/change_color_by_id/README.md b/examples/wasm/change_color_by_id/README.md new file mode 100644 index 0000000000..928faf327a --- /dev/null +++ b/examples/wasm/change_color_by_id/README.md @@ -0,0 +1,20 @@ +# Run V Mandelbrot Example + +## Using only V + +``` +v run . +``` + +## Using Python or Emscripten + +1. First, create `change_color_by_id.wasm`. Compile with `-os browser`. + +``` +v -b wasm -os browser change_color_by_id.wasm.v +``` + +2. Then, open the `change_color_by_id.html` file in the browser. + - CORS errors do not allow `change_color_by_id.wasm` to be loaded. + - Use `python -m http.server 8080` + - Use `emrun change_color_by_id.html` diff --git a/examples/wasm/change_color_by_id/change_color_by_id.html b/examples/wasm/change_color_by_id/change_color_by_id.html new file mode 100644 index 0000000000..6ec46ebaab --- /dev/null +++ b/examples/wasm/change_color_by_id/change_color_by_id.html @@ -0,0 +1,55 @@ + + +
+ + + +Some cool description
+Some cool description
+Some cool description
+Some cool description
+ + + + + diff --git a/examples/wasm/change_color_by_id/change_color_by_id.wasm.v b/examples/wasm/change_color_by_id/change_color_by_id.wasm.v new file mode 100644 index 0000000000..5dd109e9a7 --- /dev/null +++ b/examples/wasm/change_color_by_id/change_color_by_id.wasm.v @@ -0,0 +1,18 @@ +fn JS.change_color_by_id(ptr u8, len int, color_ptr u8, color_len int) + +// `main` must be public! +pub fn main() { + println('starting main.main...') + change_color_by_id('description', 'red') + change_color_by_id('description1', 'green') + change_color_by_id('description2', 'blue') + change_color_by_id('description3', 'black') +} + +pub fn click_callback() { + println('Hello from V') +} + +fn change_color_by_id(id string, color string) { + JS.change_color_by_id(id.str, id.len, color.str, color.len) +} diff --git a/examples/wasm/change_color_by_id/favicon.ico b/examples/wasm/change_color_by_id/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..d3f932a47ba2988351f32c8fc898b020949212f7 GIT binary patch literal 991 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE0wix1Z>k4UEa{HEjtmSN`?>!lvVtU&J%W50 z7^>757#dm_7=8hT8eT9klo~KFyh>nTu$sZZAYL$MSD+10f+@+{-G$+Qd;gjJKpuOE zr>`sfa~^I1bM-&|v0H)i&pllnLp+Z6Ufr7?<0``X;r^cf+Ojt;akp=TiA1uow&-wQ z7I5SZ;%b?~Bv7I$z$>(bLsVB(PeZ^pE2EIHX@7&7rhrI|#k2$44s_+H3LW|wz9(Pf z+uL`yW7%uwhb=a@et)O<++JhhC2YzZS5Is?6yKo`maMxeD^Y#X1y&DLwcgu;b1QsO zuBPvOvseE4U6aSm^<1Jq1iIgdFs@uM#Uo}z#