Name Date Size #Lines LOC

..12-Feb-2024-

gui/H12-Feb-2024-11676

CMakeLists.txtH A D12-Feb-20241.3 KiB3828

README.mdH A D12-Feb-20242.4 KiB4840

fractal.cppH A D12-Feb-20247.4 KiB276197

fractal.hppH A D12-Feb-20245.1 KiB185117

fractal_video.hppH A D12-Feb-20242.5 KiB10171

main.cppH A D12-Feb-20243.1 KiB8750

README.md

1# Fractal sample
2The example calculates two classical Mandelbrot fractals with different concurrency levels.
3
4The application window is divided into two areas where fractals are rendered. The example also has the console mode.
5
6## Building the example
7```
8cmake <path_to_example> [EXAMPLES_UI_MODE=value]
9cmake --build .
10
11```
12### Predefined CMake variables
13* `EXAMPLES_UI_MODE` - defines the GUI mode, supported values are `gdi`, `d2d`, `con` on Windows, `x`,`con` on Linux and `mac`,`con` on macOS. The default mode is `con`. See the [common page](../../README.md) to get more information.
14
15## Running the sample
16### Predefined make targets
17* `make run_fractal` - executes the example with predefined parameters.
18* `make perf_run_fractal` - executes the example with suggested parameters to measure the oneTBB performance.
19* `make light_test_fractal` - executes the example with suggested parameters to reduce execution time.
20
21### Application parameters
22Usage:
23```
24fractal [n-of-threads=value] [n-of-frames=value] [max-of-iterations=value] [grain-size=value] [use-auto-partitioner] [silent] [single] [-h] [n-of-threads [n-of-frames [max-of-iterations [grain-size]]]]
25```
26* `-h` - prints the help for command line options.
27* `n-of-threads` - the number of threads to use; a range of the form low\[:high\], where low and optional high are non-negative integers or `auto` for a platform-specific default number.
28* `n-of-frames` - the number of frames the example processes internally.
29* `max-of-iterations` - the maximum number of the fractal iterations.
30* `grain-size` - the optional grain size, must be a positive integer.
31* `use-auto-partitioner` - use oneapi::tbb::auto_partitioner.
32* `silent` - no output except elapsed time.
33* `single` - process only one fractal.
34
35### Interactive graphical user interface
36The following hot keys can be used in interactive execution mode when the example is compiled with the graphical user interface:
37
38* `left mouse button` - make the fractal active.
39* `w` - move the active fractal up.
40* `a` - move the active fractal to the left.
41* `s` - move the active fractal down.
42* `d` - move the active fractal to the right.
43* `q` - zoom in the active fractal.
44* `e` - zoom out the active fractal.
45* `r` - increase quality (count of iterations for each pixel) the active fractal.
46* `f` - decrease quality (count of iterations for each pixel) the active fractal.
47* `esc` - stop execution.
48