-
Notifications
You must be signed in to change notification settings - Fork 143
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
[graphic] Rewrite graphics - Round 1 #665
Conversation
8f9a708
to
c6c0bd0
Compare
b81fd96
to
f9c5077
Compare
f9c5077
to
08f86c9
Compare
093aa98
to
dd857ab
Compare
f2326c6
to
60c8450
Compare
It's the exams phase so I don't have a detailed review, but here are some rought points:
|
8d11b57
to
febf47d
Compare
Thanks @salkinium for the quick review. I'm happy with such short mentoring, Nice to hear the code isn't bullshit and thanks for the feedback.
Before: Advantages
The declarations of |
ca9176d
to
ca385fc
Compare
fe330d1
to
4ed4ed0
Compare
8f6dcfa
to
2ed0fbb
Compare
b0e7799
to
496d898
Compare
I'm generally positively impressed by these changes and looking forward to the finished PR, particularly since there are many very cool improvements in here! 😍 However, I've completely lost the overview of this PR and GitHub is struggling to show me the whole diff, due to +6,742 −14,976 changes, so I'm struggling to review it… There are also too many commits for me to click through, so I cannot review commit by commit either. I think we need to split this up a little, are there changes you can pull out into separate PRs that are more independent? There's no time pressure, just want to let you know that I'm willing to review just not really able to. |
532e1f4
to
f16db8e
Compare
Quote @salkinium, 30 .Juli 2021 in #660 😜
Also didn't expect such a code explosion - It's much fun, a great learning subject and ongoing story: Let's keep #665 as reference and merge proven pieces step bz step! Here's Nr.1 #690
Yes. I have renamed the ordered list in my opening message: |
b8d05e6
to
e9f7689
Compare
f2f625d
to
fd926fa
Compare
cb24915
to
7758b7a
Compare
I've created PRs for environmental changes @salkinium so we get the table as clean as possible to concentrate on the real chunks. See section Roadmap in this PRs opening message. |
Closed because PR is way too big. First fragments are in review and you find the rest of the code in my origin feature/rewrite-graphic |
Synopsis of added goods
modm::Gray
. Same formodm::Rgb
andmodm::Hsv
cause they're made form 3xmodm::Gray
Buffer
interoperation: Copy/Convert buffers from sources (Flash, Ram, SD-Card not yet implemented) to destinations (Ram, Display).,foregroundColor
-> replaced by a colormap*backgroundColor
clear()
andBuffer
copies without color-conversion / -mappingdraw(Point / HLine / VLine / Rectangle, Section)
is hyper-fast cause no pixel-pushing is involved. Just some register setup and DMA, filling the area. See Teach DMA to transfer n bytes n times #666 . This is great for Prototyping and Tools: You can f.e. draw/update colored Bars with next to zero resource-footprint.Roadmap
graphic::Buffer
including Display driver write-methodsgraphic::shape
classes and their rendering into graphic buffersTODO
color::GrayT<...>
implementation to cover f.e. 4 and 16 level grayscale displays.graphic::Buffer<GrayT<...>, ...>
implementation. Targets pixel stacking algorithms.graphic::LocalPainter
with simple UI widgets like Button, Checkbox and SliderHere's a list for follow up rounds.
Rewrite Graphics - Round 2
modm::Buffer
from multiplemodm::Buffer
like layers in graphics manipulation software.modm::ui::color::*
but also depends on what DMA2D can do. See uPainter