* Removed some legacy files that were
compiled, but not used anywhere.
* Cleaned-up ImageManager and
FontManager implementations, trying
to use RAII wherever possible.
* Fixed minor bugs in Font.cpp
implementation.
* Removed unused includes.
* Other minor cleanups and refactors.
Replacing double with float in rendering a circular progressbar results
in a significant reduction in the demand for computing power, which in
turn translates into reduced power consumption in all applications using
a circular progressbar.
* Adding document describing how to use logger
* Adjusting logs to follow a new guide
* Change order in log header:
line number is now before function name
Fix of the issue that glyph displayed as
a substitute for unsupported character
was different than the design suggested.
Additionally minor code cleanup.
Fix AM/PM font on one of the home screens, change it to normal size/
Fix type of FontInfo members representing spacings, chane them to signed
integers.
1. Implement partial refresh.
2. Implement refresh canceling mechanism.
3. Refactor some parts of the gui and display code.
ad 1.
- Detect parts of the screen changed since last update and merge them
into bigger regions. These regions defines parts of the context sent
to the display.
- Refresh the region covering all of the parts since this is the most
time consuming part and the size of the refreshed region doesn't
change the time much.
- Refresh the whole screen if deep refresh is requested and previously
fast refresh was used. This is needed to prevent unwanted artifacts
in some cases.
ad 2.
- Separate display update and refresh logic.
- Divide image display message handling into two handlers, one updating
and other one refreshing the screen.
- Add cancel refresh message and use it to cancel refresh during update.
- Store sum of refresh regions gathered during updates to refresh them
all at once at the end.
Detect parts of the screen changed since last update and merge them into
bigger regions. These regions defines parts of the context sent to the
display.
Refresh the region covering all of the parts since this is the most time
consuming part and the size of the refreshed region doesn't change the
time much.
Refresh the whole screen if deep refresh is requested and previously
fast refresh was used. This is needed to prevent unwanted artifacts in
some cases.
Refactor some parts of the gui and display code.
Because Harmony uses Pure components,
a lot of debug infromation is generated
with missing assets. Therefore, we need mechanism
to stop those messages for release before refactor
of shared window components is done.
Split module-utils into smaller components for better dependency
management. Fix many dependencies throughout the project.
Signed-off-by: Marcin Smoczyński <smoczynski.marcin@gmail.com>
Add new window to allow convenient display and globally
change used color intensities for design and testing purposes.
Changes were introduced to Renderer as well as GUI service
to allow global change of used color scheme.
When using list, screen is deep refreshed each
time the color is changed.
Known issues:
Item focus borders (top,bottom) with changed black intensity
may not render properly, however it doesn't obscure the
target functionality.
Changes draw command implementation to properly follow
command design pattern. All drawing commands have been
moved to separate inheriting draw commands from renderer.
Other changes:
- New draw methods overloads have been added to pixel renderer.
Now pixel rendering methods are in one class.
- Simplified draw commands naming.
- Changed variable naming in draw commands to be more verbose.
- Changed {x,y} pairs to Points where possible.
Added new OnPageElement listView rebuild type. Created new
options refresh. Refactored DisplayLight Setting. BarGraph rector.
Added step render limit for small radius arcs.
Due to vfs deprecation there is need to remove all vfs calls from code. This PR covers module gui. There are some modifications in other modules included which are necessary because of build system issues.
Reduce firmware size by refactoring global data defined in public
headers.
Each global variable which require runtime initialization adds
initialization code to every translation unit which includes the header
where the variable is defined and declared.
* EGD-3585 SerwiceGUI and ServiceEink initial cleanup
* moved code to one function per message handling
* removed dead code from comments
* added Service.cpp demangling to debug messages for clear output
* added Response value to return messages to `connect()`
* Timers now are Application thread safe
* Timers now have consistent API independend of Application (no more c style timers)
* Timers can have either: callback or override onTimer() method - this
way we can create more complicated timers or just use existing ones
* gui::Timer added via adapter class GuiTimer to decouple sys::Timer
with gui::Timer
* Fixed race in wrapper
* Updated docs
* fixed using std and cpp_freertos and DataReceivedHandler hidden in Application.hpp