diff --git a/cmd/tools/modules/testing/common.v b/cmd/tools/modules/testing/common.v index 77209bdac8..5448eba9b8 100644 --- a/cmd/tools/modules/testing/common.v +++ b/cmd/tools/modules/testing/common.v @@ -277,8 +277,8 @@ 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.v requires special compilation flags: `-b wasm -os browser`, skip it for now: - skip_files << 'examples/wasm/mandelbrot/mandelbrot.v' + // examples/wasm/mandelbrot/mandelbrot.wasm.v requires special compilation flags: `-b wasm -os browser`, skip it for now: + skip_files << 'examples/wasm/mandelbrot/mandelbrot.wasm.v' } vargs := _vargs.replace('-progress', '') vexe := pref.vexe_path() diff --git a/examples/wasm/mandelbrot/README.md b/examples/wasm/mandelbrot/README.md index 9c4cb6c4af..9b7f0dda5f 100644 --- a/examples/wasm/mandelbrot/README.md +++ b/examples/wasm/mandelbrot/README.md @@ -1,12 +1,20 @@ -# V Mandelbrot Example +# Run V Mandelbrot Example + +## Using only V + +``` +v run main.v +``` + +## Using Python or Emscripten 1. First, create `mandelbrot.wasm`. Compile with `-os browser`. ``` -v -b wasm -os browser mandelbrot.v +v -b wasm -os browser mandelbrot.wasm.v ``` 2. Then, open the `mandelbrot.html` file in the browser. - - CORS errors do not allow `mandelbrot.wasm` to be loaded. - - Use `python -m http.server 8080` - - Use `emrun mandelbrot.html` \ No newline at end of file + - CORS errors do not allow `mandelbrot.wasm` to be loaded. + - Use `python -m http.server 8080` + - Use `emrun mandelbrot.html` diff --git a/examples/wasm/mandelbrot/main.v b/examples/wasm/mandelbrot/main.v new file mode 100644 index 0000000000..a3a8988ca7 --- /dev/null +++ b/examples/wasm/mandelbrot/main.v @@ -0,0 +1,29 @@ +module main + +import vweb +import os + +const http_port = 3001 + +struct App { + vweb.Context +} + +fn main() { + vweb.run(new_app(), http_port) +} + +fn new_app() &App { + mut app := &App{} + + os.execute_or_panic('v -b wasm -os browser mandelbrot.wasm.v') + + app.mount_static_folder_at(os.resource_abs_path('./'), '/') + return app +} + +@['/'; get] +pub fn (mut app App) controller_mandelbrot() !vweb.Result { + file := os.read_file('mandelbrot.html') or { panic(err) } + return app.html(file) +} diff --git a/examples/wasm/mandelbrot/mandelbrot.html b/examples/wasm/mandelbrot/mandelbrot.html index 7d65a30707..5bc8c53d57 100644 --- a/examples/wasm/mandelbrot/mandelbrot.html +++ b/examples/wasm/mandelbrot/mandelbrot.html @@ -1,47 +1,54 @@ -
- - - -