-
Notifications
You must be signed in to change notification settings - Fork 9
Home
Richard Thomson edited this page Apr 28, 2024
·
63 revisions
This is the current release as a Windows Installer package.
The farther out a release is on this plan, the more flexible and vague are the goals.
- reconstitute Windows installer package with CPack
- fix these issues
- Incorporate code cleanups from other branches, but not any radical restructuring:
convert from C to C++replace single-line/* */
comments with//
commentsreplace chained multiple assignments with multiple single assignments- replace use of
char*
strings withstd::string
eliminate crazy memory casting/aliasing that was done because of impoverished DOS execution environmentreplaceint 0/1
withbool
- name all the magic values with enums or
const
s split multiple declarations (int i, j;
) into multiple single declarations (int i; int j;
)- localize variable declarations to their first use
- localize variables to
for
andif
scope initialize all variablesreplace(void)
argument lists with empty argument lists()
- replace C-style casts with C++ cast operators
eliminate unnecessarystruct
decorations on typeswrite numeric constants directly instead of castingreplace use ofmalloc
andfree
with standard library containerseliminate use ofMemoryAlloc
andmemory.cpp
- replace fixed-size arrays with
std::vector
- remove debug flag code
- eliminate integer math code?
- restore mouse support
eliminate the use of curses in the X11 version- get the minimal X11 code working similar to the way the Win32 code is working with a CGA color style 'text window' instead of curses
change all references from 'fractint' to 'iterated dynamics', except when talking about historyeliminate 286/287, 386/387, 486/487 and pentium code paths- automated regression suite based on reference images from the DOS version
clean report from cppcheckclean report from clang static analyzerreplace Driverstruct
with an interface and derived classesreplace monolithicexterns.h
andprototyp.h
with module-oriented headers.- fix these issues
- deprecate legacy parameters:
askvideo
colorps
comport
epsf
gif87a
halftone
iterincr
linefeed
maxcolorres
minstack
noninterlaced
pixelzoom
printer
printfile
rleps
textsafe
title
tplus
translate
tweaklzw
warn
video
- promote this project
allow use of boost- separate UI from application logic
- switch to OpenGL for all pixel and primitive rendering operations
- switch UI from polling to event-driven
- switch to a wxWidgets based UI with a 'CGA text window' wxWidgets component to handle the text screens
- replace the major CGA text window options screens with wxWidgets dialogs
- replace crazy homebrew complex types/math with C++
std::complex<>
- replace homebrew bignum with boost multiple precision library with GNU GMP/mpfrcpp backend
- lots of automated testing needed here to ensure that the math isn't messed up. Maybe a clang refactoring tool could do some of the transformations. Not sure.
- replace homebrew formula parser with one based on Boost.Spirit
- recast existing fractal types as C++ algorithms operating on
std::complex<T>
to enable arbitrary precision on them - recast existing fractal types as GPU shaders