More preparations and conversions for colour LCD support.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@7195 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
parent
82ea7c3bac
commit
b0e056b5ae
6 changed files with 39 additions and 10 deletions
|
@ -412,11 +412,11 @@ int plugin_load(const char* plugin, void* parameter)
|
|||
button_clear_queue();
|
||||
#ifdef HAVE_LCD_BITMAP
|
||||
#if LCD_DEPTH > 1
|
||||
lcd_set_drawinfo(DRMODE_SOLID, 0, LCD_MAX_LEVEL);
|
||||
#else
|
||||
lcd_set_drawinfo(DRMODE_SOLID, LCD_BLACK, LCD_WHITE);
|
||||
#else /* LCD_DEPTH == 1 */
|
||||
lcd_set_drawmode(DRMODE_SOLID);
|
||||
#endif
|
||||
#endif
|
||||
#endif /* LCD_DEPTH */
|
||||
#endif /* HAVE_LCD_BITMAP */
|
||||
|
||||
plugin_loaded = false;
|
||||
|
||||
|
|
|
@ -403,10 +403,17 @@ struct plugin_api {
|
|||
int *rundb_initialized;
|
||||
int (*strncmp)(const char *, const char *, size_t);
|
||||
#if LCD_DEPTH > 1
|
||||
#ifdef HAVE_LCD_COLOR
|
||||
void (*lcd_set_foreground)(struct rgb color);
|
||||
struct rgb (*lcd_get_foreground)(void);
|
||||
void (*lcd_set_background)(struct rgb color);
|
||||
struct rgb (*lcd_get_background)(void);
|
||||
#else
|
||||
void (*lcd_set_foreground)(int brightness);
|
||||
int (*lcd_get_foreground)(void);
|
||||
void (*lcd_set_background)(int brightness);
|
||||
int (*lcd_get_background)(void);
|
||||
#endif
|
||||
void (*lcd_bitmap_part)(const unsigned char *src, int src_x, int src_y,
|
||||
int stride, int x, int y, int width, int height);
|
||||
void (*lcd_bitmap)(const unsigned char *src, int x, int y, int width,
|
||||
|
|
|
@ -282,11 +282,18 @@ static void addclock(void)
|
|||
#define DRAW_WIDTH (LCD_WIDTH + LETTER_WIDTH*2)
|
||||
|
||||
#if LCD_DEPTH > 1
|
||||
static const int face_colors[] =
|
||||
#ifdef HAVE_LCD_COLOR
|
||||
static const struct rgb face_colors[] =
|
||||
{
|
||||
LCD_BLACK, {0, 0, LCD_MAX_BLUE}, {LCD_MAX_RED, 0, 0}
|
||||
};
|
||||
#else
|
||||
static const int face_colors[] =
|
||||
{
|
||||
0, 2*LCD_MAX_LEVEL/3, LCD_MAX_LEVEL/3
|
||||
};
|
||||
#endif
|
||||
#endif
|
||||
|
||||
static int scrollit(void)
|
||||
{
|
||||
|
@ -474,7 +481,7 @@ enum plugin_status plugin_start(struct plugin_api* api, void* parameter)
|
|||
if (h > 0)
|
||||
h = scrollit();
|
||||
#if LCD_DEPTH > 1
|
||||
rb->lcd_set_foreground(0);
|
||||
rb->lcd_set_foreground(LCD_BLACK);
|
||||
#endif
|
||||
} while(h > 0);
|
||||
|
||||
|
|
|
@ -152,11 +152,19 @@ static const struct face faces[6] =
|
|||
};
|
||||
|
||||
#if LCD_DEPTH > 1
|
||||
static const int face_colors[6] =
|
||||
#ifdef HAVE_LCD_COLOR
|
||||
static const struct rgb face_colors[6] =
|
||||
{
|
||||
{LCD_MAX_RED, 0, 0}, {LCD_MAX_RED, 0, 0}, {0, LCD_MAX_GREEN, 0},
|
||||
{0, LCD_MAX_GREEN, 0}, {0, 0, LCD_MAX_BLUE}, {0, 0, LCD_MAX_BLUE}
|
||||
};
|
||||
#else
|
||||
static const int face_colors[6] =
|
||||
{
|
||||
2*LCD_MAX_LEVEL/3, 2*LCD_MAX_LEVEL/3, LCD_MAX_LEVEL/3, LCD_MAX_LEVEL/3, 0, 0
|
||||
};
|
||||
#endif
|
||||
#endif
|
||||
|
||||
enum {
|
||||
#if LCD_DEPTH > 1
|
||||
|
@ -352,7 +360,7 @@ static void cube_draw(void)
|
|||
point2D[faces[i].corner[3]].y);
|
||||
|
||||
}
|
||||
rb->lcd_set_foreground(0);
|
||||
rb->lcd_set_foreground(LCD_BLACK);
|
||||
break;
|
||||
#endif /* LCD_DEPTH > 1 */
|
||||
|
||||
|
|
|
@ -855,7 +855,11 @@ void splash(int ticks, /* how long the splash is displayed */
|
|||
int xx = (LCD_WIDTH-maxw)/2 - 2;
|
||||
/* The new graphics routines handle clipping, so no need to check */
|
||||
#if LCD_DEPTH > 1
|
||||
#ifdef HAVE_LCD_COLOR
|
||||
lcd_set_background((struct rgb){LCD_MAX_RED-1, LCD_MAX_GREEN-1, LCD_MAX_BLUE-1});
|
||||
#else
|
||||
lcd_set_background(LCD_MAX_LEVEL-1);
|
||||
#endif
|
||||
#endif
|
||||
lcd_set_drawmode(DRMODE_SOLID|DRMODE_INVERSEVID);
|
||||
lcd_fillrect(xx, y-2, maxw+4, LCD_HEIGHT-y*2+4);
|
||||
|
@ -903,7 +907,7 @@ void splash(int ticks, /* how long the splash is displayed */
|
|||
next = strtok_r(NULL, " ", &store);
|
||||
}
|
||||
#if defined(HAVE_LCD_BITMAP) && (LCD_DEPTH > 1)
|
||||
lcd_set_background(LCD_MAX_LEVEL);
|
||||
lcd_set_background(LCD_WHITE);
|
||||
#endif
|
||||
lcd_update();
|
||||
|
||||
|
|
|
@ -135,9 +135,12 @@ struct rgb {
|
|||
unsigned char green;
|
||||
unsigned char blue;
|
||||
};
|
||||
#define LCD_BLACK ((struct rgb){0, 0, 0})
|
||||
#define LCD_WHITE ((struct rgb){LCD_MAX_RED, LCD_MAX_GREEN, LCD_MAX_BLUE})
|
||||
#else /* monochrome */
|
||||
#define LCD_MAX_LEVEL ((1 << LCD_DEPTH) - 1)
|
||||
|
||||
#define LCD_BLACK 0
|
||||
#define LCD_WHITE LCD_MAX_LEVEL
|
||||
#endif
|
||||
|
||||
/* Memory copy of display bitmap */
|
||||
|
|
Loading…
Reference in a new issue