Tries to pick the best of a set of 16 "CGA color palette" colors
by first mapping each of the RGB components to 0x00, 0x55, 0xAA,
or 0xFF (so 64 possible colors), then finding which of the 16 CGA
colors best matches it.
Also, don't accept the same color as the "background"/"clear" of
"ASCII Typewriter" (white) or "ASCII Computer" (black), to avoid
painting solid colors; pick the reverse color. (In other words,
both black and white choice draw white computer text on black
background, for example.)
Starting with four tools:
* No rotation, shrink to 50%
* No rotation, grow to 150%
* 15deg rotiation, grow to 110%
* 90deg rotation, shrink to 75%
Don't redraw everything while sketching; do the recursive work once,
at the end (avoid CPU explosion).
+ WIP Makefile updates to support building for OS/2
- TODO: Makefile needs SYSNAME test to detect OS/2 (Bill has asked Elbert)
+ Added "__declspec(dllexport)" (via new "TX_EXTERN" #define'd in
`tp_magic_api.h`) to public function definitions in Magic tools
- WIP: So far just "Mirror/Flip" plugin
- TODO: Add "TX_EXTERN" prefix to all other public Magic tool functions
+ Renamed long Magic tool source files to have shorter filenames
- WIP: So far just "Mirror/Flip" (`mirror_flip.c` -> `mirror_f.c`)
- TODO: Rename all other magic tool source files.
h/t Elbert Pol for providing info and some diffs!
New API function which rolls back the Undo buffer (which is snapshotted
upon a mousedown event ahead of calling the Magic tool's `_click()`
function.) Dangerous; use sparingly!
Filled Polygon uses this to prevent partially-created (aka unfinished
aka incomplete) polygons -- the preview lines and control points -- from
being recorded and wasting space in the Undo history, or reappearing
upon Redo.
TODO - Other tools (e.g., Clone) would certainly benefit from this.
TODO - Needs more testing to help identify any bugs/issues introduced
by this!
TODO - Magic API docs need updating.
This is probably a sufficient solution that will make
https://sourceforge.net/p/tuxpaint/feature-requests/246/,
'"Overlay" surface in Magic API', unnecessary.
In instructions, mention that adjacent points may be merged.
When no more space is available for additional points, simply
move the last point to the new location (rather than silently
doing nothing).
h/t Pere for the ideas
When red & green endpoint dots are being dragged near each other,
play a different sound.
Based on CC Attribution 4.0 sound by Eliot Lash
(see CHANGES.txt & AUTHORS.txt).