summaryrefslogtreecommitdiff
path: root/CHANGELOG.md
blob: cece66fd713479129de5905298d2d240adcc893d (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
# 2.6.2

* Reorder fractal kinds
* Optimise renderer
* Refactor code

# 2.6.1

* Update readme

# 2.6.0

* Clean up and refactor code
* Add new palette 'simple'
* Remove getters and setters for fractal
* Implement FromStr for types
* Update messages
* Set terminal title in script mode
* Depend on windows (Windows-only)
* Bump minor version

# 2.5.1

* Fix readme

# 2.5.0

* Make fill_palettes safe
* Rename 'ancient' palette to 'twilight'
* Update package description
* Add new palettes 'emerald' and 'ruby'
* Bump minor version

# 2.4.1

* Remove renderers in favour of the fractal type
* Fix default configuration
* Update rendering
* Greatly improve safety
* Remove ctor as dependency
* Modulise and clean up code

# 2.4.0

* Clean up and restructure code
* Add multibrot d=4 fractal
* Update messages
* Improve safety
* Add image and render types

# 2.3.0

* Bump minor version
* Re-enable window border
* Support translation when rendering Julias
* Rework key handling
* Update naming convention
* Update controls guide
* Add key for resetting viewport
* Support perturbation
* Refactor and modulise code structure
* Rework animations
* Update configuration
* Rework row colourisers as point colourisers
* Fix image file extensions
* Use our own complex type

# 2.2.0

* Bump minor version
* Rework row renderers as point renderers
* Support inverse fractals (toggle with left control)

# 2.1.1

* Update readme
* Add desktop entry

# 2.1.0

* Refactor code structure
* Pre-calculate palettes
* Depend on ctor
* Remove factoriser functions
* Depend on enum-iterator
* Bump minor version
* Bump dependency versions
* Fix control guide

# 2.0.0

* Bump major version
* Update controls
* Support non-square canvasses again
* Modulise and refactor code
* Draw textual feedback to window (enable with F1)
* Bump dependency versions
* Support multiple palette functions (reflect in configuration)
* Add multibrot3 fractal
* Improve commenting
* Check interactive input
* Remove dumping from interactive mode
* Fix image file extensions

# 1.2.1

* Fix readme

# 1.2.0

* Bump minor version
* Update logging
* Support PNG encoding (set using configuration, depend on png)
* Make window borderless
* Update readme
* Don't set scale from configuration
* Update feedback
* Support setting dump path from configuration
* Update controls
* Colour according to new maximum iteration count if less than previous
* Update default colour range
* Modulise code
* Also dump colour range

# 1.1.0

* Bump minor version
* Set colour range in configuration
* Don't draw feedback on Julia

# 1.0.0

* Use hexadecimal versioning (with major.minor.patch)
* Don't animate single frames
* Support enabling of Julia rendering from configuration
* Perform configuration checks
* Colour in thread pools
* Update naming convention
* Synchronise with screen refresh rate
* Rework logs and timings
* Fix zoom animation
* Panic on missing configuration
* Add new logo
* Restructure code
* Update colouring (change using controls)

# 23

* Optimise and refactor code
* Update colouring
* Log version and copyright
* Fix complex-to-cartesian conversions (and controls)
* Update translation feedback

# 22

* Fix Julia toggle messages
* Fix configuration parameter names
* Bump dependency versions

# 21

* Support offsets in viewport feedback
* Remove support for non-square canvasses (update configuration)

# 20

* Draw positional feedback before renders (does not currently support offsets)
* Rename objects (allow some abbreviations)

# 1F

* Bring back Julia sets (using row renderers)
* Update controls (decrease sensitivity of zooms)
* Scale by default

# 1E

* Update colouring for small iteration counts
* Revert start zoom for interactive renders

# 1D

* Update colouring (smooth)
* Yield square distances from renders
* Update start zoom
* Add control for cycling fractals
* Add function for getting the name of a fractal

# 1C

* Optimise rendering
* Use Rayon for threading
* Update thread structure (use arc for common data)
* Use iterator functions instead of row renderers
* Fix render garbage (somehow)
* Lower precision

# 1B

* Support rendering of the Tricorn and Burning Ship fractals
* Update configuration
* Update start zoom value
* Remove Julia fractal(s)
* Bump dependency versions
* Update messages
* Update commenting

# 1A

* Support rendering of Julia sets
* Update controls
* Refactor code
* Update configuration

# 19

* Update controls guide (fix typo)

# 18

* Optimise renderer
* Update commenting

# 17

* Make configuration support more precise numbers (must be parsed as strings now)
* Use global constant for precision

# 16

* Use arbitrary-precision calculations
* Depend on Rug
* Optimise renderer
* Animate if configured
* Update commenting
* Remove scale option from configuration
* Auto-deduce thread count
* Update controls (only render on command)
* Update messages
* Refactor application structure
* Print controls

# 15

* Update controls
* Update configuration format
* Optimise renderer
* Fix thread count not being loaded

# 14

* Rename handle_key to handle_keys
* Only load configuration if provided

# 13

* Modulise code
* Check I/O errors
* Support configuration
* Depend on toml
* Update gitignore

# 12

* Clean up code
* Support rendering to files
* Depend on webp
* Modulise code

# 11

* Render using multiple threads

# 10

* Update colouring
* Rename changelog file: changelog.md => CHANGELOG.md

# F

* Update render message
* Add scaling setting

# E

* Render and draw in different passes
* Update colouring
* Actually remove old makefile

# D

* Remove old makefile
* Optimise renderer
* Modulise code
* Check keyboard input (allow viewpoint movement)
* Update colouring

# C

* Rewrite in Rust again
* Update gitignore
* Update readme
* Update changelog format
* Use git tagging for versioning

# B

* Drop *boost::multiprecision::mpfr_float* in favour of the standard type *::__float128* for multiprecision
* Create a prettier colour palette
* Use JSON instead of XML for configuration
* Automatically create a configuration file if one doesn't already exist
* Greatly improve render time

# A

* Fix #3
* Implement a working, multithreaded renderer forked from MandelbrotSDL
* Add more command-line options

# 9

* Remove *\*.ppm* from *.gitignore*
* Reformat changelog from HTML to Markdown
* Add an alpha channel to the image data
* Use *std::from_chars* instead of *std::stoi* in argument handler
* Inline the *benoit::wrtimg::iterwrt* lambda expression

# 8

* Fix #2

# 7

* Fix #1
* Fix some language mistakes
* Add a *Copyright & License* page in *README.md*
* Create logo
* Update *README.md*

# 6

* Actually switch compiler from Clang++ to G++
* Add more command-line arguments
* Move all data variables into seperate files
* Update *README.md*
* Remove PPM as a supported format
* Change maximum resolution to 65536
* Change maximum number of threads to 65536
* Fix WebP encoding
* Create temporary renderer that renders a *test* image using multiple threads

# 5

* Automatically detect number of threads
* Improve debugging
* Enable POSIX C
* Create foundation for loading and creating XML configurations
* Improve help screen
* Fix the static_assert in *include/benoit.hh* comparing to bits instead of bytes
* Switch compiler from Clang++ to G++ as it has better C++20 support
* Rework code structure
* Resize maximum resolution from *65535* to *4294967295*
* Make renderer able to create and use threads
* Create *purge* target in Makefile

# 4

* Remove build artifacts
* Update .gitignore to ignore more build artifacts

# 3

* Remove unused variables from Makefile
* Require the LLP64 data model when compiling
* Create working multithreaded example
* Depend also on libpng
* Remove JPEG as a supported image format

# 2

* Cleanup code
* Create argument handler
* Create better support for different image formats
* Remove C-string functions in favour of the ones in &ltcstring&gt
* Greatly improve debugging
* Create foundation for new multithreaded multiprecision renderer
* Remove old renderer
* Completely remove Rust artifacts

# 1

* Add changelog
* Add README
* Move codebase to C++
* Copy renderer from MandelbrotSDL
* Change default filetype to PPM

# 0

* First