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

♻️ (video): Forward declare CGColor and CGPixel struct #1271

Merged

Conversation

YannLocatelli
Copy link
Member

@YannLocatelli YannLocatelli commented Jan 25, 2023

Validation

  • lk_lcd
  • LekaOS (clearScreen)

@github-actions
Copy link

github-actions bot commented Jan 25, 2023

Version comparison

- Version Same as filename Same as os_version
os 1.3.0+1675122714 ✔️ ✔️
firmware
(os + bootloader)
1.3.0+1675122714 ✔️ ✔️

@github-actions
Copy link

github-actions bot commented Jan 25, 2023

File comparision analysis report

🔖 Info

Target Flash Used (base/head) Fash Used Δ Flash Available (base/head) Static RAM (base/head) Static RAM Δ
bootloader 170784 (65%) ø 91360 (34%)
91360 (34%)
30968 (5%) ø
os 434912 (27%) ø 1129760 (72%)
1129760 (72%)
83112 (15%) ø
Click to show memory sections
| -          |      Hex |     Bytes |  KiB |
|------------|---------:|----------:|-----:|
| Flash      | 0x200000 | 2 097 152 | 2048 |
| SRAM       |  0x80000 |   524 288 |  512 |
| Bootloader |  0x40000 |   262 144 |  256 |
| Header     |   0x1000 |     4 096 |    4 |
| OS         | 0x17E000 | 1 564 672 | 1528 |
| Tail       |   0x1000 |     4 096 |    4 |
| Scratch    |  0x40000 |   262 144 |  256 |

📝 Summary

Click to show summary
  • ✔️ - existing target
  • ✨ - new target
  • ⚰️ - deleted target
  • ✅ - files are the same
  • ❌ - files are different
Target Status .bin .map Total Flash (base/head) Total Flash Δ Static RAM (base/head) Static RAM Δ
LekaOS ✔️ 434912 (20%) ø 83112 (15%) ø
bootloader ✔️ 170784 (8%) ø 30968 (5%) ø
functional_ut_boost_ut ✔️ 394140 (18%) ø 20456 (3%) ø
functional_ut_core_imu ✔️ 377348 (17%) ø 20432 (3%) ø
functional_ut_deep_sleep_core_buffered_serial ✔️ 360600 (17%) ø 20440 (3%) ø
functional_ut_deep_sleep_core_motor ✔️ 364540 (17%) ø 20480 (3%) ø
functional_ut_deep_sleep_core_pwm ✔️ 366676 (17%) ø 20480 (3%) ø
functional_ut_deep_sleep_log_kit ✔️ 352568 (16%) ø 20408 (3%) ø
functional_ut_deep_sleep_mbed_hal ✔️ 354344 (16%) ø 20408 (3%) ø
functional_ut_file_manager ✔️ 374928 (17%) ø 20696 (3%) ø
functional_ut_firmware_kit ✔️ 366972 (17%) ø 20688 (3%) ø
functional_ut_imu_kit ✔️ 382840 (18%) ø 20424 (3%) ø
functional_ut_io_expander ✔️ 359576 (17%) ø 20424 (3%) ø
functional_ut_qdac ✔️ 360744 (17%) ø 20424 (3%) ø
spike_lk_accel_gyro ✔️ 71408 (3%) ø 11800 (2%) ø
spike_lk_audio ✔️ 126988 (6%) ø 14600 (2%) ø
spike_lk_behavior_kit ✔️ 189656 (9%) ø 48080 (9%) ø
spike_lk_ble ✔️ 229600 (10%) ø 28472 (5%) ø
spike_lk_bluetooth ✔️ 82948 (3%) ø 11544 (2%) ø
spike_lk_cg_animations ✔️ 145976 (6%) ø 46528 (8%) ø
spike_lk_color_kit ✔️ 65840 (3%) ø 13744 (2%) ø
spike_lk_command_kit ✔️ 209528 (9%) ø 52024 (9%) ø
spike_lk_config_kit ✔️ 127284 (6%) ø 14368 (2%) ø
spike_lk_coreled ✔️ 76292 (3%) ø 13688 (2%) ø
spike_lk_core_touch_sensor ✔️ 80508 (3%) ø 12248 (2%) ø
spike_lk_event_queue ✔️ 74800 (3%) ø 12072 (2%) ø
spike_lk_file_manager_kit ✔️ 139400 (6%) ø 14440 (2%) ø
spike_lk_file_reception ✔️ 336000 (16%) ø 27792 (5%) ø
spike_lk_flash_memory ✔️ 63880 (3%) ø 11448 (2%) ø
spike_lk_fs ✔️ 175208 (8%) ø 47904 (9%) ø
spike_lk_imu_kit ✔️ 87980 (4%) ø 12168 (2%) ø
spike_lk_lcd ✔️ 162796 (7%) ø 46664 (8%) ø
spike_lk_led_kit ✔️ 103424 (4%) ø 14528 (2%) ø
spike_lk_log_kit ✔️ 63288 (3%) ø 12256 (2%) ø
spike_lk_motion_kit ✔️ 102172 (4%) ø 14288 (2%) ø
spike_lk_motors ✔️ 62864 (2%) ø 11488 (2%) ø
spike_lk_qdac ✔️ 78852 (3%) ø 11808 (2%) ø
spike_lk_reinforcer ✔️ 206760 (9%) ø 49208 (9%) ø
spike_lk_rfid ✔️ 79084 (3%) ø 11504 (2%) ø
spike_lk_sensors_battery ✔️ 78388 (3%) ø 12600 (2%) ø
spike_lk_sensors_light ✔️ 60056 (2%) ø 11440 (2%) ø
spike_lk_sensors_microphone ✔️ 72496 (3%) ø 11504 (2%) ø
spike_lk_sensors_temperature_humidity ✔️ 67272 (3%) ø 11424 (2%) ø
spike_lk_serial_number ✔️ 133084 (6%) ø 14304 (2%) ø
spike_lk_ticker_timeout ✔️ 69052 (3%) ø 11632 (2%) ø
spike_lk_touch_sensor_kit ✔️ 87896 (4%) ø 12824 (2%) ø
spike_lk_update_process_app_base ✔️ 145452 (6%) ø 15584 (2%) ø
spike_lk_update_process_app_update ✔️ 77632 (3%) ø 12352 (2%) ø
spike_lk_watchdog_isr ✔️ 80196 (3%) ø 13288 (2%) ø
spike_lk_wifi ✔️ 116544 (5%) ø 14808 (2%) ø
spike_mbed_blinky ✔️ 58032 (2%) ø 11400 (2%) ø
spike_mbed_watchdog_ticker_vs_thread ✔️ 63208 (3%) ø 12448 (2%) ø
spike_stl_cxxsupport ✔️ 58456 (2%) ø 11400 (2%) ø

🗺️ Map files diff output

Click to show diff list

No differenes where found in map files.

@github-actions
Copy link

github-actions bot commented Jan 25, 2023

File comparision analysis report

🔖 Info

Target Flash Used (base/head) Fash Used Δ Flash Available (base/head) Static RAM (base/head) Static RAM Δ
bootloader 183068 (69%) ø 79076 (30%)
79076 (30%)
41664 (7%) ø
os 495884 (31%) ø 1068788 (68%)
1068788 (68%)
94328 (17%) ø
Click to show memory sections
| -          |      Hex |     Bytes |  KiB |
|------------|---------:|----------:|-----:|
| Flash      | 0x200000 | 2 097 152 | 2048 |
| SRAM       |  0x80000 |   524 288 |  512 |
| Bootloader |  0x40000 |   262 144 |  256 |
| Header     |   0x1000 |     4 096 |    4 |
| OS         | 0x17E000 | 1 564 672 | 1528 |
| Tail       |   0x1000 |     4 096 |    4 |
| Scratch    |  0x40000 |   262 144 |  256 |

📝 Summary

Click to show summary
  • ✔️ - existing target
  • ✨ - new target
  • ⚰️ - deleted target
  • ✅ - files are the same
  • ❌ - files are different
Target Status .bin .map Total Flash (base/head) Total Flash Δ Static RAM (base/head) Static RAM Δ
LekaOS ✔️ 495884 (23%) ø 94328 (17%) ø
bootloader ✔️ 183068 (8%) ø 41664 (7%) ø
functional_ut_boost_ut ✔️ 409276 (19%) ø 30608 (5%) ø
functional_ut_core_imu ✔️ 389476 (18%) ø 30584 (5%) ø
functional_ut_deep_sleep_core_buffered_serial ✔️ 368332 (17%) ø 30560 (5%) ø
functional_ut_deep_sleep_core_motor ✔️ 376140 (17%) ø 30632 (5%) ø
functional_ut_deep_sleep_core_pwm ✔️ 378356 (18%) ø 30632 (5%) ø
functional_ut_deep_sleep_log_kit ✔️ 365268 (17%) ø 30976 (5%) ø
functional_ut_deep_sleep_mbed_hal ✔️ 366712 (17%) ø 30560 (5%) ø
functional_ut_file_manager ✔️ 386812 (18%) ø 30856 (5%) ø
functional_ut_firmware_kit ✔️ 378420 (18%) ø 30840 (5%) ø
functional_ut_imu_kit ✔️ 391668 (18%) ø 30576 (5%) ø
functional_ut_io_expander ✔️ 371176 (17%) ø 30576 (5%) ø
functional_ut_qdac ✔️ 372344 (17%) ø 30576 (5%) ø
spike_lk_accel_gyro ✔️ 94264 (4%) ø 22560 (4%) ø
spike_lk_audio ✔️ 137172 (6%) ø 25176 (4%) ø
spike_lk_behavior_kit ✔️ 198204 (9%) ø 58656 (11%) ø
spike_lk_ble ✔️ 237980 (11%) ø 39416 (7%) ø
spike_lk_bluetooth ✔️ 92364 (4%) ø 22224 (4%) ø
spike_lk_cg_animations ✔️ 153672 (7%) ø 57224 (10%) ø
spike_lk_color_kit ✔️ 88544 (4%) ø 24376 (4%) ø
spike_lk_command_kit ✔️ 219788 (10%) ø 63112 (12%) ø
spike_lk_config_kit ✔️ 139228 (6%) ø 25192 (4%) ø
spike_lk_coreled ✔️ 88108 (4%) ø 24264 (4%) ø
spike_lk_core_touch_sensor ✔️ 93164 (4%) ø 22824 (4%) ø
spike_lk_event_queue ✔️ 84152 (4%) ø 22904 (4%) ø
spike_lk_file_manager_kit ✔️ 154432 (7%) ø 25520 (4%) ø
spike_lk_file_reception ✔️ 339964 (16%) ø 38448 (7%) ø
spike_lk_flash_memory ✔️ 86776 (4%) ø 22216 (4%) ø
spike_lk_fs ✔️ 174568 (8%) ø 47992 (9%) ø
spike_lk_imu_kit ✔️ 98144 (4%) ø 22888 (4%) ø
spike_lk_lcd ✔️ 172716 (8%) ø 57496 (10%) ø
spike_lk_led_kit ✔️ 115204 (5%) ø 25104 (4%) ø
spike_lk_log_kit ✔️ 84776 (4%) ø 23408 (4%) ø
spike_lk_motion_kit ✔️ 107144 (5%) ø 24840 (4%) ø
spike_lk_motors ✔️ 86336 (4%) ø 22248 (4%) ø
spike_lk_qdac ✔️ 91796 (4%) ø 22768 (4%) ø
spike_lk_reinforcer ✔️ 215324 (10%) ø 59784 (11%) ø
spike_lk_rfid ✔️ 84216 (4%) ø 22184 (4%) ø
spike_lk_sensors_battery ✔️ 87376 (4%) ø 23312 (4%) ø
spike_lk_sensors_light ✔️ 84072 (4%) ø 22216 (4%) ø
spike_lk_sensors_microphone ✔️ 84824 (4%) ø 22216 (4%) ø
spike_lk_sensors_temperature_humidity ✔️ 90616 (4%) ø 22192 (4%) ø
spike_lk_serial_number ✔️ 145028 (6%) ø 25256 (4%) ø
spike_lk_ticker_timeout ✔️ 82712 (3%) ø 22232 (4%) ø
spike_lk_touch_sensor_kit ✔️ 96668 (4%) ø 23392 (4%) ø
spike_lk_update_process_app_base ✔️ 157244 (7%) ø 26288 (5%) ø
spike_lk_update_process_app_update ✔️ 100456 (4%) ø 23240 (4%) ø
spike_lk_watchdog_isr ✔️ 87520 (4%) ø 24136 (4%) ø
spike_lk_wifi ✔️ 130984 (6%) ø 25528 (4%) ø
spike_mbed_blinky ✔️ 57616 (2%) ø 11496 (2%) ø
spike_mbed_watchdog_ticker_vs_thread ✔️ 84176 (4%) ø 23080 (4%) ø
spike_stl_cxxsupport ✔️ 83488 (3%) ø 22304 (4%) ø

🗺️ Map files diff output

Click to show diff list

No differenes where found in map files.

@codecov
Copy link

codecov bot commented Jan 25, 2023

Codecov Report

Merging #1271 (aec856f) into develop (b397f86) will not change coverage.
The diff coverage is 100.00%.

@@           Coverage Diff            @@
##           develop    #1271   +/-   ##
========================================
  Coverage    98.20%   98.20%           
========================================
  Files          150      150           
  Lines         3727     3727           
========================================
  Hits          3660     3660           
  Misses          67       67           
Impacted Files Coverage Δ
drivers/CoreVideo/source/CoreGraphics.cpp 100.00% <100.00%> (ø)
drivers/CoreVideo/source/CoreVideo.cpp 100.00% <100.00%> (ø)

📣 We’re building smart automated test selection to slash your CI/CD build times. Learn more

@YannLocatelli YannLocatelli force-pushed the yann/refactor/video/forward-declare-CGColor-CGPixel-struct branch from a78c489 to aec856f Compare January 30, 2023 23:44
@sonarcloud
Copy link

sonarcloud bot commented Jan 31, 2023

Kudos, SonarCloud Quality Gate passed!    Quality Gate passed

Bug A 0 Bugs
Vulnerability A 0 Vulnerabilities
Security Hotspot A 0 Security Hotspots
Code Smell A 0 Code Smells

100.0% 100.0% Coverage
0.0% 0.0% Duplication

Copy link
Member

@ladislas ladislas left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM 👍

A few questions/suggestions but not needed for this PR. If it makes sense we can do this in a future PR.

Comment on lines +13 to +17
struct FilledRectangle {
CGPoint origin {0, 0}; // * Top left corner by convention
uint16_t width {};
uint16_t height {};
};
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

why not just Rectangle? :)

Also I'm wondering if it would not be simpler to store the color directly in the struct.
If we look at how SVG is designed, we can see that the fill color is stored directly into the object and used when it's drawn.

This would allow us to move the rectangle on the screen without the need to store the color somewhere else.

In the future, we might have stroke and stroke_width which are also object related.

Suggested change
struct FilledRectangle {
CGPoint origin {0, 0}; // * Top left corner by convention
uint16_t width {};
uint16_t height {};
};
struct Rectangle {
CGPoint origin {0, 0}; // * Top left corner by convention
uint16_t width {};
uint16_t height {};
CGColor color {};
};

Comment on lines +11 to +12
struct CGColor;
struct Character;
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice! 👍

In the future, I still have the wish to put all those "user types" in the main include directory and have our code depend on it directly.

This is something discussed by Tony in the Cpp.chat episode https://www.youtube.com/watch?v=WRMhO9Gn5GM

Very interesting talk btw.

CGColor background = CGColor::white) = 0;
virtual void display(const char *text, uint32_t size, uint32_t starting_line, CGColor foreground = CGColor::black,
CGColor background = CGColor::white) = 0;
virtual void drawChar(Character character, CGColor foreground, CGColor background) = 0;
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

the same question about background/foreground can be asked here: could they be stored directly inside the struct?

Comment on lines +147 to 150
Character character {};
character.ascii = '.';
CGColor foreground_color = CGColor::pure_red;
CGColor background_color = CGColor::black;
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

building on the previous comment, storing the colors inside the struct would allow us to do:

Suggested change
Character character {};
character.ascii = '.';
CGColor foreground_color = CGColor::pure_red;
CGColor background_color = CGColor::black;
Character character {.ascii = '.',
.foreground = CGColor::pure_red,
.background= CGColor::black,
};

@ladislas ladislas merged commit 278c37b into develop Jan 31, 2023
@ladislas ladislas deleted the yann/refactor/video/forward-declare-CGColor-CGPixel-struct branch January 31, 2023 12:07
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
01 - type: task Something to do
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Remove CGColor and CGPixel in interface::Font Remove CGColor and CGPixel in interface::Graphics
2 participants