Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion ReadMe.md
Original file line number Diff line number Diff line change
Expand Up @@ -141,7 +141,7 @@ The Flipper and its community wouldn't be as rich as it is without your contribu
| Etch-A-Sketch | ![Games Badge] | [by SimplyMinimal](https://github.com/SimplyMinimal/FlipperZero-Etch-A-Sketch) | | ![None Badge] |
| Pong | ![Games Badge] | [by nmrr](https://github.com/nmrr/flipperzero-pong) | Modified by [SimplyMinimal](https://github.com/SimplyMinimal/FlipperZero-Pong) | [![UFW Badge]](https://lab.flipper.net/apps/flipper_pong) |
| Game of Life (Updated to work by tgxn) | ![Games Badge] | [by itsyourbedtime](https://github.com/tgxn/flipperzero-firmware/blob/dev/applications/game_of_life/game_of_life.c) | | [![UFW Badge]](https://lab.flipper.net/apps/gameoflife) |
| Mandelbrot Set | ![Games Badge] | [by Possibly-Matt](https://github.com/Possibly-Matt/flipperzero-firmware-wPlugins) | | [![UFW Badge]](https://lab.flipper.net/apps/mandelbrotset) |
| Mandelbrot Set | ![Games Badge] | by Possibly-Matt | | [![UFW Badge]](https://lab.flipper.net/apps/mandelbrotset) |
| Monty Hall | ![Games Badge] | [by DevMilanIan](https://github.com/RogueMaster/flipperzero-firmware-wPlugins/pull/203) | | [![UFW Badge]](https://lab.flipper.net/apps/montyhall) |
| Nu Pogodi! (Ну, погоди!) | ![Games Badge] | [by sionyx](https://github.com/sionyx/flipper_nupogodi) | | [![UFW Badge]](https://lab.flipper.net/apps/nupogodi) |
| Paint | ![Games Badge] | [by iinsaane](https://github.com/iinsaane) | | [![UFW Badge]](https://lab.flipper.net/apps/paint) |
Expand Down
31 changes: 31 additions & 0 deletions apps_source_code/mandelbrot/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
# Changelog

## 1.4

- Compute the picture on the app thread, only when the view actually changed, and hand it to the draw callback as a ready-made bitmap. It used to be computed inside the draw callback, on the GUI service thread, and requested afresh at least ten times a second whether or not anything had moved; once enough pixels reached the iteration limit the app could no longer keep up with its own redraws and the device stopped responding to buttons
- Show a coarse preview first and refine it band by band, checking for key presses between scanlines, so a slow picture at high zoom can be interrupted instead of holding up the event loop
- Skip the iteration loop for points in the main cardioid and the period-2 bulb, the two large solid regions that always cost the full iteration budget
- Zoom around the middle of the screen; zooming used to shrink the picture towards its top left corner
- Halve or double the visible span per zoom step. The old step subtracted a fixed amount from the span, which drove it through zero and mirrored the picture after about two dozen presses
- Hold Ok to zoom back out, which the app previously could not do at all, and stop zooming in at 16384x, where single precision floats run out of mantissa
- Show the zoom factor for a moment after each step, so reaching either limit is visible instead of looking like the app stopped reacting
- Hold a direction key to keep panning, and pan by a fixed fraction of the screen so the step stays usable at every zoom level
- Keep the visible window within reach of the set, so panning cannot strand the view in empty space with no way back
- Use square pixels and raise the iteration budget with the zoom level: the picture used to be squashed horizontally by about a tenth, and deep views collapsed into a solid blob
- Point the app link at this repository, since the original author's GitHub account no longer exists

## 1.3

- Version bump for catalog compatibility (no functional changes)

## 1.2

- Version bump for catalog compatibility (no functional changes)

## 1.1

- Release the state mutex before asking for a redraw, instead of holding it across the request

## 1.0

- Initial release: browse the Mandelbrot set with the arrow keys, Ok to zoom in
6 changes: 3 additions & 3 deletions apps_source_code/mandelbrot/application.fam
Original file line number Diff line number Diff line change
Expand Up @@ -5,12 +5,12 @@ App(
entry_point="mandelbrot_app",
cdefines=["APP_MANDELBROT_GAME"],
requires=["gui"],
stack_size=1 * 1024,
stack_size=2 * 1024,
order=130,
fap_icon="Mandelbrot.png",
fap_category="Games",
fap_author="@Possibly-Matt",
fap_weburl="https://github.com/Possibly-Matt",
fap_version="1.3",
fap_weburl="https://github.com/xMasterX/all-the-plugins",
fap_version="1.4",
fap_description="The Mandelbrot set is the set of all so-called (complex) numbers that meet Mandelbrots simple arithmetic criterion.",
)
Loading
Loading