Skip to content

Commit 2d4ac60

Browse files
committed
vfx: update STAR_SKY mode
1 parent 2dc24b7 commit 2d4ac60

File tree

1 file changed

+16
-16
lines changed

1 file changed

+16
-16
lines changed

main/src/user/vfx.c

+16-16
Original file line numberDiff line numberDiff line change
@@ -921,7 +921,7 @@ static void vfx_task(void *pvParameter)
921921
uint16_t led_num = 32;
922922
uint16_t led_idx[512] = {0};
923923
uint16_t color_h[512] = {0};
924-
uint16_t color_l = vfx.lightness;
924+
float color_l = vfx.lightness / 256.0;
925925

926926
gdispGFillArea(vfx_gdisp, 0, 0, vfx_disp_width, vfx_disp_height, 0x000000);
927927

@@ -948,26 +948,26 @@ static void vfx_task(void *pvParameter)
948948

949949
int16_t idx_base = -led_num;
950950
while (1) {
951-
for (uint16_t i=0; i<=color_l; i++) {
951+
for (uint16_t i=0; i<=256; i++) {
952952
xLastWakeTime = xTaskGetTickCount();
953953

954954
if (xEventGroupGetBits(user_event_group) & VFX_RELOAD_BIT) {
955955
xEventGroupClearBits(user_event_group, VFX_RELOAD_BIT);
956-
goto loop_break;
956+
goto star_sky_exit;
957957
}
958958

959959
if (idx_base >= 0) {
960960
x = (led_idx[idx_base] % 64) % 8;
961961
y = (led_idx[idx_base] % 64) / 8;
962962
z = led_idx[idx_base] / 64;
963-
vfx_draw_pixel(x, y, z, color_h[idx_base], color_l - i);
963+
vfx_draw_pixel(x, y, z, color_h[idx_base], (256 - i) * color_l);
964964
}
965965

966966
if ((idx_base + led_num) < 512) {
967967
x = (led_idx[idx_base + led_num] % 64) % 8;
968968
y = (led_idx[idx_base + led_num] % 64) / 8;
969969
z = led_idx[idx_base + led_num] / 64;
970-
vfx_draw_pixel(x, y, z, color_h[idx_base + led_num], i);
970+
vfx_draw_pixel(x, y, z, color_h[idx_base + led_num], i * color_l);
971971
}
972972

973973
vTaskDelayUntil(&xLastWakeTime, 8 / portTICK_RATE_MS);
@@ -986,7 +986,7 @@ static void vfx_task(void *pvParameter)
986986
uint16_t led_num = 32;
987987
uint16_t led_idx[512] = {0};
988988
uint16_t color_h[512] = {0};
989-
uint16_t color_l = vfx.lightness;
989+
float color_l = vfx.lightness / 256.0;
990990

991991
gdispGFillArea(vfx_gdisp, 0, 0, vfx_disp_width, vfx_disp_height, 0x000000);
992992

@@ -1013,26 +1013,26 @@ static void vfx_task(void *pvParameter)
10131013

10141014
int16_t idx_base = -led_num;
10151015
while (1) {
1016-
for (uint16_t i=0; i<=color_l; i++) {
1016+
for (uint16_t i=0; i<=256; i++) {
10171017
xLastWakeTime = xTaskGetTickCount();
10181018

10191019
if (xEventGroupGetBits(user_event_group) & VFX_RELOAD_BIT) {
10201020
xEventGroupClearBits(user_event_group, VFX_RELOAD_BIT);
1021-
goto loop_break;
1021+
goto star_sky_exit;
10221022
}
10231023

10241024
if (idx_base >= 0) {
10251025
x = (led_idx[idx_base] % 64) % 8;
10261026
y = (led_idx[idx_base] % 64) / 8;
10271027
z = led_idx[idx_base] / 64;
1028-
vfx_draw_pixel(x, y, z, color_h[idx_base], color_l - i);
1028+
vfx_draw_pixel(x, y, z, color_h[idx_base], (256 - i) * color_l);
10291029
}
10301030

10311031
if ((idx_base + led_num) < 512) {
10321032
x = (led_idx[idx_base + led_num] % 64) % 8;
10331033
y = (led_idx[idx_base + led_num] % 64) / 8;
10341034
z = led_idx[idx_base + led_num] / 64;
1035-
vfx_draw_pixel(x, y, z, color_h[idx_base + led_num], i);
1035+
vfx_draw_pixel(x, y, z, color_h[idx_base + led_num], i * color_l);
10361036
}
10371037

10381038
vTaskDelayUntil(&xLastWakeTime, 8 / portTICK_RATE_MS);
@@ -1051,7 +1051,7 @@ static void vfx_task(void *pvParameter)
10511051
uint16_t led_num = 32;
10521052
uint16_t led_idx[512] = {0};
10531053
uint16_t color_h[512] = {0};
1054-
uint16_t color_l = vfx.lightness;
1054+
float color_l = vfx.lightness / 256.0;
10551055

10561056
gdispGFillArea(vfx_gdisp, 0, 0, vfx_disp_width, vfx_disp_height, 0x000000);
10571057

@@ -1078,26 +1078,26 @@ static void vfx_task(void *pvParameter)
10781078

10791079
int16_t idx_base = -led_num;
10801080
while (1) {
1081-
for (uint16_t i=0; i<=color_l; i++) {
1081+
for (uint16_t i=0; i<=256; i++) {
10821082
xLastWakeTime = xTaskGetTickCount();
10831083

10841084
if (xEventGroupGetBits(user_event_group) & VFX_RELOAD_BIT) {
10851085
xEventGroupClearBits(user_event_group, VFX_RELOAD_BIT);
1086-
goto loop_break;
1086+
goto star_sky_exit;
10871087
}
10881088

10891089
if (idx_base >= 0) {
10901090
x = (led_idx[idx_base] % 64) % 8;
10911091
y = (led_idx[idx_base] % 64) / 8;
10921092
z = led_idx[idx_base] / 64;
1093-
vfx_draw_pixel(x, y, z, color_h[idx_base], color_l - i);
1093+
vfx_draw_pixel(x, y, z, color_h[idx_base], (256 - i) * color_l);
10941094
}
10951095

10961096
if ((idx_base + led_num) < 512) {
10971097
x = (led_idx[idx_base + led_num] % 64) % 8;
10981098
y = (led_idx[idx_base + led_num] % 64) / 8;
10991099
z = led_idx[idx_base + led_num] / 64;
1100-
vfx_draw_pixel(x, y, z, color_h[idx_base + led_num], i);
1100+
vfx_draw_pixel(x, y, z, color_h[idx_base + led_num], i * color_l);
11011101
}
11021102

11031103
vTaskDelayUntil(&xLastWakeTime, 8 / portTICK_RATE_MS);
@@ -1107,7 +1107,7 @@ static void vfx_task(void *pvParameter)
11071107
idx_base = -led_num;
11081108
}
11091109
}
1110-
loop_break:
1110+
star_sky_exit:
11111111
break;
11121112
}
11131113
case VFX_MODE_IDX_NUMBERS_S: { // 數字-固定

0 commit comments

Comments
 (0)