Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Arcs, segments, and sectors #40

Open
wants to merge 4 commits into
base: main
Choose a base branch
from

Conversation

stevesims
Copy link
Contributor

Adds support for drawing arcs, filled segments and filled sectors

Parameters for these functions essentially match the style of Acorn's equivalent PLOT calls

also includes code from #39

for clarity of the git commit history I'd recommend merging using a merge commit rather than using a "squash". the commits in this PR individually add functionality for each new feature

Canvas gets several new calls:

`setLinePattern` accepts a LinePattern object for setting a pattern a line can optionally use

`setLinePatternLength` allows the length of the line pattern to be set

`setLinePatternOffset` allows the offset within the pattern to be adjusted

`setLineOptions` sets whether a line should be drawn as a dotted line, and whether its first and/or last points should be omitted

BitmappedDisplayController’s `PaintState` object now includes `linePattern`, `lineOptions` and `linePatternLength`.

`genericAbsDrawLine` now looks at the `lineOptions` in the current paint state to determine whether a dotted line should be drawn, and whether first or last points should be omitted

fabutils gains a `getBit` function which will get a bit at an index within an array of uint8_t numbers.  the position is in “most significant bit” order, i.e. bitIndex 0 is the bit representing 128 in the first byte in the array
basic arc support for all screen depths

NB there is no compensation in these for non-square pixel modes, i.e. the circle that arc follows assumes squareness
adds the ability to draw filled segments

builds on work to draw arcs
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant