I'm trying to modify the main.c for mini6410 bootloader.
The listed code spouse create a nice blue gradient but the colors does not
work as I expected.
This line convert the 3 hex color in option.h
#define PROGRESS_BAR_COLOR ( ( (PROGRESS_BAR_R >> 3) << 11) |
((PROGRESS_BAR_G >> 2) << 5) | (PROGRESS_BAR_B >> 3) )
My hex values is from adobe, might be inverted on the whole approach is
wrong ?
static void ProgressBarStep(void)
{
Retail += PROGRESS_BAR_WIDTH;
while (Retail > Total) {
int y;
unsigned short *p = (unsigned short *)CurrAddrInLCD;
// draw a vertial line, with 1 width
Retail -= Total;
*p = 0x4961a9;
p += LCD_WIDTH;
*p = 0x1f3e96;
p += LCD_WIDTH;
*p = 0x29479e;
p += LCD_WIDTH;
*p = 0x3553a9;
p += LCD_WIDTH;
*p = 0x4361b5;
p += LCD_WIDTH;
*p = 0x5572c3;
p += LCD_WIDTH;
*p = 0x6683d1;
p += LCD_WIDTH;
*p = 0x708dd8;
p += LCD_WIDTH;
*p = 0x4a6cab;
p += LCD_WIDTH;
*p = 0x4064a0;
p += LCD_WIDTH;
*p = 0x375b96;
p += LCD_WIDTH;
*p = 0x2d538c;
p += LCD_WIDTH;
*p = 0x254b83;
p += LCD_WIDTH;
*p = 0x1f467c;
p += LCD_WIDTH;
//for (y = 0; y < PROGRESS_BAR_HEIGHT; y++) {
// *p = PROGRESS_BAR_COLOR;
// p += LCD_WIDTH;
//}
CurrAddrInLCD += 2;
}
}
Gradient Progress Bar
Got it working by making 14 #define statement in option.h for each collor. Code available if anyone interested. Check out the result. http://youtu.be/nHH0RqdKry0
Windows file http://www.filedropper.com/gradien2pixelcolor Instruction http://youtu.be/MciPR5RsDD4
Just wonder, what would you do if you need to draw vertical gradient of height 1000? Go ahead, write 2000 lines of code)
No, I would go with your "non existing" solution ! I don't thing anyone would want to 100 pixel high progress bar at boot, but if you want to use my IDEA than you are welcome.

