Kernel splashscreen

Derived from the original notes from the Linux Progress Patch notes

Picture Format
First design the boot screen with your favourite painting program.

Remember that you are limited to an 8-bit colour depth, 320* 240 picture.

Note: Make sure you save it as a PNG with 223 indexed colours in the palette so it can be converted correctly.

Write down the coordinates and size of the progress bar. Decide where to put the text. Decide where to put the error/warning icons. You can modify the length of the text, too.

Extra pixels
There are some pixels with extra functionality.

These are located in the progress bar:

The progress bar...

- -  -   - |1234555666 |AB  555666 |AB 555666 - -  -   -

1: progress bar foreground colour

A: together with 1, the stripe of colour used as the progress bar foreground (see STRIPE_BAR below)

2: progress bar background colour

B: together with 2, the stripe of colour used as the progress bar background (see STRIPE_BAR below)

3: text foreground color

4: text background color

5: pixels for "warning" logo, dimensions PROGRESS_BAR_HEIGHT X PROGRESS_BAR_HEIGHT

6: pixels for "failure" logo, dimensions PROGRESS_BAR_HEIGHT X PROGRESS_BAR_HEIGHT

|---|   or, if the progress bar is vertical... |1AA| |2BB|   warning and failure logos (5 & 6) remain square |3 | |4  | |555| |555| |555| |666| |666| |666|

Definitions
Create a file called "definitions" and customise it to suit your logo as described below.

The coordinate system (X,Y) used is:

The pixel in the upper left corner is (0,0) X increases to the right Y increases as you go down

Example Definition:

/* Dimensions of the logo (Must me 320*240) */ /* These describe the position and size of the progress bar. */ /* Coordinates of the bar's top left corner pixel. */ /* Coordinates of the bar's bottom right corner pixel. */ /* _Instead_ of bottom right corner; you could give width and height. * #define PROGRESS_BAR_WIDTH 320 * #define PROGRESS_BAR_HEIGHT 11 */ /* 0 means the progress bar foreground and background colours are solid, * defined by only the pixels marked 1 and 2 in the diagram. * 1 means the progress bar is a repeated stripe of colour; the stripe * for the foreground defined by the pixels marked 1 and A in the diagram, * and the stripe for the background defined by the pixels marked * 2 and B in the diagram. * (Optional, defaults to 0.) */ /* The progress bar is vertical when 1, horizontal when 0. * (Optional, defaults to false.) */ /* 0 means progress of the bar is from left to right (top to * bottom when vertical), 1 means from right to left (bottom to top * when vertical). * (Optional, defaults to false.) */ /* The position of the upper left pixel of the text area. */ /* These should be the same in future, length of text in characters */ /* Enables a scrolling text field of 4 lines. * (Optional, defaults to 1.) */ /* Position of the upper left pixel of the warning/error icon. */
 * 1) define LOGO_W             320
 * 2) define LOGO_H             240
 * 1) define PROGRESS_BAR_X     0
 * 2) define PROGRESS_BAR_Y     200
 * 1) define PROGRESS_CORNER_X  320
 * 2) define PROGRESS_CORNER_Y  240
 * 1) define STRIPE_BAR 1
 * 1) define PROGRESS_VERTICALLY 0
 * 1) define REVERSE_DIRECTION  0
 * 1) define TEXT_X             0
 * 2) define TEXT_Y             150
 * 1) define MAX_TEXT_LEN       60
 * 2) define MESSAGE_LENGTH     60
 * 1) define LPP_TEXT_BLOCK_HEIGHT 4
 * 1) define ICON_X             0
 * 2) define ICON_Y             223

Visual Example
TODO: Add image.

The above image shows a sample splashscreen with an area for the progress bar and warning/failure icons defined. Remember, this has to be a PNG with 223 indexed colours in the palette

TODO: Add example config.

The above config sets up the above image to work correctly the progress bar overlaid on the correct area of the image and the warning/failure icons defined to match there place on the image.

Next steps
For now, just zip up your work and pass it to one of the Open2x developers (DJWillis is best) who can convert it into a kernel for you (if you ask nicely). We will work on some theme tools at some point.