mirror of
https://github.com/Keychron/qmk_firmware.git
synced 2024-11-29 04:06:59 +06:00
Fix int8_t overflow in RGB heatmap effect (#18410)
This commit is contained in:
parent
89df40d4f3
commit
652d1d8a6d
|
@ -29,7 +29,7 @@ void process_rgb_matrix_typing_heatmap(uint8_t row, uint8_t col) {
|
||||||
if (i_row == row && i_col == col) {
|
if (i_row == row && i_col == col) {
|
||||||
g_rgb_frame_buffer[row][col] = qadd8(g_rgb_frame_buffer[row][col], 32);
|
g_rgb_frame_buffer[row][col] = qadd8(g_rgb_frame_buffer[row][col], 32);
|
||||||
} else {
|
} else {
|
||||||
# define LED_DISTANCE(led_a, led_b) sqrt16(((int8_t)(led_a.x - led_b.x) * (int8_t)(led_a.x - led_b.x)) + ((int8_t)(led_a.y - led_b.y) * (int8_t)(led_a.y - led_b.y)))
|
# define LED_DISTANCE(led_a, led_b) sqrt16(((int16_t)(led_a.x - led_b.x) * (int16_t)(led_a.x - led_b.x)) + ((int16_t)(led_a.y - led_b.y) * (int16_t)(led_a.y - led_b.y)))
|
||||||
uint8_t distance = LED_DISTANCE(g_led_config.point[g_led_config.matrix_co[row][col]], g_led_config.point[g_led_config.matrix_co[i_row][i_col]]);
|
uint8_t distance = LED_DISTANCE(g_led_config.point[g_led_config.matrix_co[row][col]], g_led_config.point[g_led_config.matrix_co[i_row][i_col]]);
|
||||||
# undef LED_DISTANCE
|
# undef LED_DISTANCE
|
||||||
if (distance <= RGB_MATRIX_TYPING_HEATMAP_SPREAD) {
|
if (distance <= RGB_MATRIX_TYPING_HEATMAP_SPREAD) {
|
||||||
|
|
Loading…
Reference in New Issue
Block a user