Complete this task as part of your GSoC 2020 application if you are applying for any AXIOM Remote related task.
This challenge is mandatory if you apply for T1126
Please choose at least one of the following tasks and make sure to adhere to the C++ coding style (TBD: add link to coding guidelines).
**Task 1: Add DrawIcon() in Painter**
Description: DrawImage() copies given image array to the framebuffer, but the full-blown size of image data with 3 channels and 8 bit depth is rather large, compared to the space on the microcontroller. Most of the time we don't require full colour for icons so the data can be kept as black and white (0 for black and 1 for white pixels).
- Check out the source code of AXIOM Remote
- Look through it and learn the structure
- Build the visualizer and play a bit with a firmware to understand it more
- Ask questions either here or on our IRC channel //(please use a dedicated client instead of web interface, to prevent often disconnects)
Description: Recreate apertus° logo from the starting page of the firmware with 2 images and minimal data size
- Dissect the given apertus° logo (see //Media//, size 320 x 240 like the AXIOM Remote screen, background transparent) file into 2, one should contain //apertus// and the other //°//, try to keep them as small as possible
- Convert the images to 2 bit depth C image arrays, you can use online converters (see //Useful Links//)
- Add the data to the firmware in the proper follder
- Add draw method for icons to the painter
- Recreate the logo on the starting page with the new method, place //°// properly
**Task 3: Bonus**
- Add unit tests for DrawIcon() method to verify that predefined input also deliver correct output, see examples in FirmwareTest folder, it already contains a few painter tests
- Add parameter to the DrawIcon() method to define front color
- Add parameter to the DrawIcon() method to define background color, transparent is 0
- Adjust the logo on the starting page to correspond to the apertus° colors, see https://www.apertus.org/logo for corresponding colour for "Letter Grey Dark" and "Accent Orange", hint: don't forget to convert them to RGB565 value
** Media **
- apertus° logo description: https://www.apertus.org/logo
- Image converter: https://littlevgl.com/image-to-c-array
To get in touch with any mentor check the [[ https://www.apertus.org/GSoC-2019-Mentor-Contact-List | Mentor Contact List]].