NuMaker emWin HMI

Committer:
csyang2
Date:
Mon Mar 04 15:47:41 2024 +0800
Revision:
10:c8165817d92a
Parent:
9:1286ec7f3230
Support NuMaker-IoT-M467

Who changed what in which revision?

UserRevisionLine numberNew contents of line
csyang2 1:c0f972361605 1 /*
csyang2 1:c0f972361605 2 * fbutils.c
csyang2 1:c0f972361605 3 *
csyang2 1:c0f972361605 4 * Utility routines for framebuffer interaction
csyang2 1:c0f972361605 5 *
csyang2 1:c0f972361605 6 * Copyright 2002 Russell King and Doug Lowder
csyang2 1:c0f972361605 7 *
csyang2 1:c0f972361605 8 * This file is placed under the GPL. Please see the
csyang2 1:c0f972361605 9 * file COPYING for details.
csyang2 1:c0f972361605 10 *
csyang2 1:c0f972361605 11 */
csyang2 9:1286ec7f3230 12 #if 0
csyang2 1:c0f972361605 13 //#include "config.h"
csyang2 1:c0f972361605 14
csyang2 1:c0f972361605 15 #include <stdio.h>
csyang2 1:c0f972361605 16 #include <stdlib.h>
csyang2 1:c0f972361605 17 #include <string.h>
csyang2 1:c0f972361605 18 //#include <unistd.h>
csyang2 1:c0f972361605 19 //#include <sys/fcntl.h>
csyang2 1:c0f972361605 20 //#include <sys/ioctl.h>
csyang2 1:c0f972361605 21 //#include <sys/mman.h>
csyang2 1:c0f972361605 22 //#include <sys/time.h>
csyang2 1:c0f972361605 23 #include "fbutils.h"
csyang2 1:c0f972361605 24 //#include "wbtypes.h"
csyang2 1:c0f972361605 25 //#include "LCDconf.h"
csyang2 6:d15151941247 26 #include "TouchPanel.h"
csyang2 1:c0f972361605 27 #include "GUI.h"
csyang2 1:c0f972361605 28 #if 0
csyang2 1:c0f972361605 29 union multiptr
csyang2 1:c0f972361605 30 {
csyang2 1:c0f972361605 31 unsigned char *p8;
csyang2 1:c0f972361605 32 unsigned short *p16;
csyang2 1:c0f972361605 33 unsigned long *p32;
csyang2 1:c0f972361605 34 };
csyang2 1:c0f972361605 35 #endif
csyang2 1:c0f972361605 36 //static int con_fd, fb_fd, last_vt = -1;
csyang2 1:c0f972361605 37 //static unsigned char *line_addr;
csyang2 1:c0f972361605 38 //static int fb_fd=0;
csyang2 1:c0f972361605 39 static int bytes_per_pixel=2;
csyang2 1:c0f972361605 40 static unsigned colormap [13];
csyang2 1:c0f972361605 41 static unsigned colormap2[13];
csyang2 1:c0f972361605 42 unsigned int xres=__DEMO_TS_WIDTH__, yres=__DEMO_TS_HEIGHT__;
csyang2 1:c0f972361605 43
csyang2 1:c0f972361605 44 int red_length = 5;
csyang2 1:c0f972361605 45 int green_length = 6;
csyang2 1:c0f972361605 46 int blue_length = 5;
csyang2 1:c0f972361605 47
csyang2 1:c0f972361605 48 int red_offset = 11;
csyang2 1:c0f972361605 49 int green_offset = 5;
csyang2 1:c0f972361605 50 int blue_offset = 0;
csyang2 1:c0f972361605 51
csyang2 1:c0f972361605 52 //extern void * g_VAFrameBuf;
csyang2 1:c0f972361605 53
csyang2 1:c0f972361605 54 void line(int x1, int y1, int x2, int y2, unsigned colidx);
csyang2 1:c0f972361605 55
csyang2 1:c0f972361605 56 void put_cross(int x, int y, unsigned colidx)
csyang2 1:c0f972361605 57 {
csyang2 1:c0f972361605 58 line (x - 10, y, x - 2, y, colidx);
csyang2 1:c0f972361605 59 line (x + 2, y, x + 10, y, colidx);
csyang2 1:c0f972361605 60 line (x, y - 10, x, y - 2, colidx);
csyang2 1:c0f972361605 61 line (x, y + 2, x, y + 10, colidx);
csyang2 1:c0f972361605 62
csyang2 1:c0f972361605 63 #if 1
csyang2 1:c0f972361605 64 line (x - 6, y - 9, x - 9, y - 9, colidx + 1);
csyang2 1:c0f972361605 65 line (x - 9, y - 8, x - 9, y - 6, colidx + 1);
csyang2 1:c0f972361605 66 line (x - 9, y + 6, x - 9, y + 9, colidx + 1);
csyang2 1:c0f972361605 67 line (x - 8, y + 9, x - 6, y + 9, colidx + 1);
csyang2 1:c0f972361605 68 line (x + 6, y + 9, x + 9, y + 9, colidx + 1);
csyang2 1:c0f972361605 69 line (x + 9, y + 8, x + 9, y + 6, colidx + 1);
csyang2 1:c0f972361605 70 line (x + 9, y - 6, x + 9, y - 9, colidx + 1);
csyang2 1:c0f972361605 71 line (x + 8, y - 9, x + 6, y - 9, colidx + 1);
csyang2 1:c0f972361605 72 #else
csyang2 1:c0f972361605 73 line (x - 7, y - 7, x - 4, y - 4, colidx + 1);
csyang2 1:c0f972361605 74 line (x - 7, y + 7, x - 4, y + 4, colidx + 1);
csyang2 1:c0f972361605 75 line (x + 4, y - 4, x + 7, y - 7, colidx + 1);
csyang2 1:c0f972361605 76 line (x + 4, y + 4, x + 7, y + 7, colidx + 1);
csyang2 1:c0f972361605 77 #endif
csyang2 1:c0f972361605 78 }
csyang2 1:c0f972361605 79 #if 0
csyang2 1:c0f972361605 80 void put_char(int x, int y, int c, int colidx)
csyang2 1:c0f972361605 81 {
csyang2 1:c0f972361605 82 int i,j,bits;
csyang2 1:c0f972361605 83
csyang2 1:c0f972361605 84 for (i = 0; i < font_vga_8x8.height; i++)
csyang2 1:c0f972361605 85 {
csyang2 1:c0f972361605 86 bits = font_vga_8x8.data [font_vga_8x8.height * c + i];
csyang2 1:c0f972361605 87 for (j = 0; j < font_vga_8x8.width; j++, bits <<= 1)
csyang2 1:c0f972361605 88 if (bits & 0x80)
csyang2 1:c0f972361605 89 pixel (x + j, y + i, colidx);
csyang2 1:c0f972361605 90 }
csyang2 1:c0f972361605 91 }
csyang2 1:c0f972361605 92
csyang2 1:c0f972361605 93 void put_string(int x, int y, char *s, unsigned colidx)
csyang2 1:c0f972361605 94 {
csyang2 1:c0f972361605 95 int i;
csyang2 1:c0f972361605 96 for (i = 0; *s; i++, x += font_vga_8x8.width, s++)
csyang2 1:c0f972361605 97 put_char (x, y, *s, colidx);
csyang2 1:c0f972361605 98 }
csyang2 1:c0f972361605 99
csyang2 1:c0f972361605 100 void put_string_center(int x, int y, char *s, unsigned colidx)
csyang2 1:c0f972361605 101 {
csyang2 1:c0f972361605 102 size_t sl = strlen (s);
csyang2 1:c0f972361605 103 put_string (x - (sl / 2) * font_vga_8x8.width,
csyang2 1:c0f972361605 104 y - font_vga_8x8.height / 2, s, colidx);
csyang2 1:c0f972361605 105 }
csyang2 1:c0f972361605 106 #endif
csyang2 1:c0f972361605 107 void setcolor(unsigned colidx, unsigned value)
csyang2 1:c0f972361605 108 {
csyang2 1:c0f972361605 109 unsigned res;
csyang2 1:c0f972361605 110 //unsigned short red, green, blue;
csyang2 1:c0f972361605 111 // struct fb_cmap cmap;
csyang2 1:c0f972361605 112
csyang2 1:c0f972361605 113 #ifdef DEBUG
csyang2 1:c0f972361605 114 if (colidx > 255)
csyang2 1:c0f972361605 115 {
csyang2 1:c0f972361605 116 fprintf (stderr, "WARNING: color index = %u, must be <256\n",
csyang2 1:c0f972361605 117 colidx);
csyang2 1:c0f972361605 118 return;
csyang2 1:c0f972361605 119 }
csyang2 1:c0f972361605 120 #endif
csyang2 1:c0f972361605 121
csyang2 1:c0f972361605 122 switch (bytes_per_pixel)
csyang2 1:c0f972361605 123 {
csyang2 1:c0f972361605 124 default:
csyang2 1:c0f972361605 125 case 1:
csyang2 1:c0f972361605 126 #if 0
csyang2 1:c0f972361605 127 res = colidx;
csyang2 1:c0f972361605 128 red = (value >> 8) & 0xff00;
csyang2 1:c0f972361605 129 green = value & 0xff00;
csyang2 1:c0f972361605 130 blue = (value << 8) & 0xff00;
csyang2 1:c0f972361605 131 cmap.start = colidx;
csyang2 1:c0f972361605 132 cmap.len = 1;
csyang2 1:c0f972361605 133 cmap.red = &red;
csyang2 1:c0f972361605 134 cmap.green = &green;
csyang2 1:c0f972361605 135 cmap.blue = &blue;
csyang2 1:c0f972361605 136 cmap.transp = NULL;
csyang2 1:c0f972361605 137 #endif
csyang2 1:c0f972361605 138 break;
csyang2 1:c0f972361605 139 case 2:
csyang2 1:c0f972361605 140 #if 0
csyang2 1:c0f972361605 141 red = (value >> 16) & 0xff;
csyang2 1:c0f972361605 142 green = (value >> 8) & 0xff;
csyang2 1:c0f972361605 143 blue = value & 0xff;
csyang2 1:c0f972361605 144 res = ((red >> (8 - red_length)) << red_offset) |
csyang2 1:c0f972361605 145 ((green >> (8 - green_length)) << green_offset) |
csyang2 1:c0f972361605 146 ((blue >> (8 - blue_length)) << blue_offset);
csyang2 1:c0f972361605 147 #endif
csyang2 1:c0f972361605 148 case 4:
csyang2 1:c0f972361605 149 res = value;
csyang2 1:c0f972361605 150 }
csyang2 1:c0f972361605 151 colormap [colidx] = value;
csyang2 1:c0f972361605 152 GUI_SetColor(value);
csyang2 1:c0f972361605 153 GUI_DrawPixel(0, 0);
csyang2 1:c0f972361605 154 res = GUI_GetPixelIndex(0, 0);
csyang2 1:c0f972361605 155 colormap2[colidx] = res;
csyang2 1:c0f972361605 156 GUI_SetColor(0x00);
csyang2 1:c0f972361605 157 GUI_DrawPixel(0, 0);
csyang2 1:c0f972361605 158 }
csyang2 1:c0f972361605 159 #if 0
csyang2 1:c0f972361605 160 static void __setpixel (union multiptr loc, unsigned xormode, unsigned color)
csyang2 1:c0f972361605 161 {
csyang2 1:c0f972361605 162 switch(bytes_per_pixel)
csyang2 1:c0f972361605 163 {
csyang2 1:c0f972361605 164 case 1:
csyang2 1:c0f972361605 165 default:
csyang2 1:c0f972361605 166 if (xormode)
csyang2 1:c0f972361605 167 *loc.p8 ^= color;
csyang2 1:c0f972361605 168 else
csyang2 1:c0f972361605 169 *loc.p8 = color;
csyang2 1:c0f972361605 170 break;
csyang2 1:c0f972361605 171 case 2:
csyang2 1:c0f972361605 172 if (xormode)
csyang2 1:c0f972361605 173 *loc.p16 ^= color;
csyang2 1:c0f972361605 174 else
csyang2 1:c0f972361605 175 *loc.p16 = color;
csyang2 1:c0f972361605 176 break;
csyang2 1:c0f972361605 177 case 4:
csyang2 1:c0f972361605 178 if (xormode)
csyang2 1:c0f972361605 179 *loc.p32 ^= color;
csyang2 1:c0f972361605 180 else
csyang2 1:c0f972361605 181 *loc.p32 = color;
csyang2 1:c0f972361605 182 break;
csyang2 1:c0f972361605 183 }
csyang2 1:c0f972361605 184 }
csyang2 1:c0f972361605 185 #endif
csyang2 1:c0f972361605 186 void pixel (int x, int y, unsigned colidx)
csyang2 1:c0f972361605 187 {
csyang2 1:c0f972361605 188 unsigned xormode;
csyang2 1:c0f972361605 189 unsigned color, color2;
csyang2 1:c0f972361605 190 //union multiptr loc;
csyang2 1:c0f972361605 191
csyang2 1:c0f972361605 192 if ((x < 0) || (x >= __DEMO_TS_WIDTH__) ||
csyang2 1:c0f972361605 193 (y < 0) || (y >= __DEMO_TS_HEIGHT__))
csyang2 1:c0f972361605 194 return;
csyang2 1:c0f972361605 195
csyang2 1:c0f972361605 196 xormode = colidx & XORMODE;
csyang2 1:c0f972361605 197 colidx &= ~XORMODE;
csyang2 1:c0f972361605 198
csyang2 1:c0f972361605 199 #ifdef DEBUG
csyang2 1:c0f972361605 200 if (colidx > 255)
csyang2 1:c0f972361605 201 {
csyang2 1:c0f972361605 202 fprintf (stderr, "WARNING: color value = %u, must be <256\n",
csyang2 1:c0f972361605 203 colidx);
csyang2 1:c0f972361605 204 return;
csyang2 1:c0f972361605 205 }
csyang2 1:c0f972361605 206 #endif
csyang2 1:c0f972361605 207
csyang2 1:c0f972361605 208 // loc.p8 = line_addr [y] + x * bytes_per_pixel;
csyang2 1:c0f972361605 209 // line_addr = (unsigned char *)g_VAFrameBuf+ y*(LCD_XSIZE*bytes_per_pixel);
csyang2 1:c0f972361605 210 color = GUI_GetPixelIndex(x, y);
csyang2 1:c0f972361605 211 if ( color == colormap2[0] )
csyang2 1:c0f972361605 212 color = colormap[0];
csyang2 1:c0f972361605 213 else if ( color == colormap2[1] )
csyang2 1:c0f972361605 214 color = colormap[1];
csyang2 1:c0f972361605 215 else if ( color == colormap2[2] )
csyang2 1:c0f972361605 216 color = colormap[2];
csyang2 1:c0f972361605 217 else if ( color == colormap2[3] )
csyang2 1:c0f972361605 218 color = colormap[3];
csyang2 1:c0f972361605 219 else if ( color == colormap2[4] )
csyang2 1:c0f972361605 220 color = colormap[4];
csyang2 1:c0f972361605 221 else if ( color == colormap2[5] )
csyang2 1:c0f972361605 222 color = colormap[5];
csyang2 1:c0f972361605 223 else if ( color == colormap2[6] )
csyang2 1:c0f972361605 224 color = colormap[6];
csyang2 1:c0f972361605 225 else if ( color == colormap2[7] )
csyang2 1:c0f972361605 226 color = colormap[7];
csyang2 1:c0f972361605 227 else if ( color == colormap2[8] )
csyang2 1:c0f972361605 228 color = colormap[8];
csyang2 1:c0f972361605 229 else if ( color == colormap2[9] )
csyang2 1:c0f972361605 230 color = colormap[9];
csyang2 1:c0f972361605 231 else if ( color == colormap2[10] )
csyang2 1:c0f972361605 232 color = colormap[10];
csyang2 1:c0f972361605 233 else if ( color == colormap2[11] )
csyang2 1:c0f972361605 234 color = colormap[11];
csyang2 1:c0f972361605 235 else if ( color == colormap2[12] )
csyang2 1:c0f972361605 236 color = colormap[12];
csyang2 1:c0f972361605 237 color2 = colormap [colidx];
csyang2 1:c0f972361605 238 if (xormode)
csyang2 1:c0f972361605 239 color ^= color2;
csyang2 1:c0f972361605 240 else
csyang2 1:c0f972361605 241 color = color2;
csyang2 1:c0f972361605 242 GUI_SetColor(color);
csyang2 1:c0f972361605 243 GUI_DrawPixel(x, y);
csyang2 1:c0f972361605 244
csyang2 1:c0f972361605 245
csyang2 1:c0f972361605 246 //loc.p8 = line_addr + x*bytes_per_pixel;
csyang2 1:c0f972361605 247 //__setpixel(loc, xormode, colormap [colidx]);
csyang2 1:c0f972361605 248 }
csyang2 1:c0f972361605 249
csyang2 1:c0f972361605 250 void line(int x1, int y1, int x2, int y2, unsigned colidx)
csyang2 1:c0f972361605 251 {
csyang2 1:c0f972361605 252 int tmp;
csyang2 1:c0f972361605 253 int dx = x2 - x1;
csyang2 1:c0f972361605 254 int dy = y2 - y1;
csyang2 1:c0f972361605 255
csyang2 1:c0f972361605 256 if (abs (dx) < abs (dy))
csyang2 1:c0f972361605 257 {
csyang2 1:c0f972361605 258 if (y1 > y2)
csyang2 1:c0f972361605 259 {
csyang2 1:c0f972361605 260 tmp = x1;
csyang2 1:c0f972361605 261 x1 = x2;
csyang2 1:c0f972361605 262 x2 = tmp;
csyang2 1:c0f972361605 263 tmp = y1;
csyang2 1:c0f972361605 264 y1 = y2;
csyang2 1:c0f972361605 265 y2 = tmp;
csyang2 1:c0f972361605 266 dx = -dx;
csyang2 1:c0f972361605 267 dy = -dy;
csyang2 1:c0f972361605 268 }
csyang2 1:c0f972361605 269 x1 <<= 16;
csyang2 1:c0f972361605 270 /* dy is apriori >0 */
csyang2 1:c0f972361605 271 dx = (dx << 16) / dy;
csyang2 1:c0f972361605 272 while (y1 <= y2)
csyang2 1:c0f972361605 273 {
csyang2 1:c0f972361605 274 pixel (x1 >> 16, y1, colidx);
csyang2 1:c0f972361605 275 x1 += dx;
csyang2 1:c0f972361605 276 y1++;
csyang2 1:c0f972361605 277 }
csyang2 1:c0f972361605 278 }
csyang2 1:c0f972361605 279 else
csyang2 1:c0f972361605 280 {
csyang2 1:c0f972361605 281 if (x1 > x2)
csyang2 1:c0f972361605 282 {
csyang2 1:c0f972361605 283 tmp = x1;
csyang2 1:c0f972361605 284 x1 = x2;
csyang2 1:c0f972361605 285 x2 = tmp;
csyang2 1:c0f972361605 286 tmp = y1;
csyang2 1:c0f972361605 287 y1 = y2;
csyang2 1:c0f972361605 288 y2 = tmp;
csyang2 1:c0f972361605 289 dx = -dx;
csyang2 1:c0f972361605 290 dy = -dy;
csyang2 1:c0f972361605 291 }
csyang2 1:c0f972361605 292 y1 <<= 16;
csyang2 1:c0f972361605 293 dy = dx ? (dy << 16) / dx : 0;
csyang2 1:c0f972361605 294 while (x1 <= x2)
csyang2 1:c0f972361605 295 {
csyang2 1:c0f972361605 296 pixel (x1, y1 >> 16, colidx);
csyang2 1:c0f972361605 297 y1 += dy;
csyang2 1:c0f972361605 298 x1++;
csyang2 1:c0f972361605 299 }
csyang2 1:c0f972361605 300 }
csyang2 1:c0f972361605 301 }
csyang2 1:c0f972361605 302 #if 1
csyang2 1:c0f972361605 303 void rect (int x1, int y1, int x2, int y2, unsigned colidx)
csyang2 1:c0f972361605 304 {
csyang2 1:c0f972361605 305 line (x1, y1, x2, y1, colidx);
csyang2 1:c0f972361605 306 line (x2, y1, x2, y2, colidx);
csyang2 1:c0f972361605 307 line (x2, y2, x1, y2, colidx);
csyang2 1:c0f972361605 308 line (x1, y2, x1, y1, colidx);
csyang2 1:c0f972361605 309 }
csyang2 1:c0f972361605 310
csyang2 1:c0f972361605 311 void fillrect (int x1, int y1, int x2, int y2, unsigned colidx)
csyang2 1:c0f972361605 312 {
csyang2 1:c0f972361605 313 int tmp;
csyang2 1:c0f972361605 314 unsigned xormode;
csyang2 1:c0f972361605 315 unsigned color, color2;
csyang2 1:c0f972361605 316 //union multiptr loc;
csyang2 1:c0f972361605 317
csyang2 1:c0f972361605 318 /* Clipping and sanity checking */
csyang2 1:c0f972361605 319 if (x1 > x2)
csyang2 1:c0f972361605 320 {
csyang2 1:c0f972361605 321 tmp = x1;
csyang2 1:c0f972361605 322 x1 = x2;
csyang2 1:c0f972361605 323 x2 = tmp;
csyang2 1:c0f972361605 324 }
csyang2 1:c0f972361605 325 if (y1 > y2)
csyang2 1:c0f972361605 326 {
csyang2 1:c0f972361605 327 tmp = y1;
csyang2 1:c0f972361605 328 y1 = y2;
csyang2 1:c0f972361605 329 y2 = tmp;
csyang2 1:c0f972361605 330 }
csyang2 1:c0f972361605 331 if (x1 < 0) x1 = 0;
csyang2 1:c0f972361605 332 if (x1 >= xres) x1 = xres - 1;
csyang2 1:c0f972361605 333 if (x2 < 0) x2 = 0;
csyang2 1:c0f972361605 334 if (x2 >= xres) x2 = xres - 1;
csyang2 1:c0f972361605 335 if (y1 < 0) y1 = 0;
csyang2 1:c0f972361605 336 if (y1 >= yres) y1 = yres - 1;
csyang2 1:c0f972361605 337 if (y2 < 0) y2 = 0;
csyang2 1:c0f972361605 338 if (y2 >= yres) y2 = yres - 1;
csyang2 1:c0f972361605 339
csyang2 1:c0f972361605 340 if ((x1 > x2) || (y1 > y2))
csyang2 1:c0f972361605 341 return;
csyang2 1:c0f972361605 342
csyang2 1:c0f972361605 343 xormode = colidx & XORMODE;
csyang2 1:c0f972361605 344 colidx &= ~XORMODE;
csyang2 1:c0f972361605 345
csyang2 1:c0f972361605 346 #ifdef DEBUG
csyang2 1:c0f972361605 347 if (colidx > 255)
csyang2 1:c0f972361605 348 {
csyang2 1:c0f972361605 349 fprintf (stderr, "WARNING: color value = %u, must be <256\n",
csyang2 1:c0f972361605 350 colidx);
csyang2 1:c0f972361605 351 return;
csyang2 1:c0f972361605 352 }
csyang2 1:c0f972361605 353 #endif
csyang2 1:c0f972361605 354
csyang2 1:c0f972361605 355 color2 = colormap [colidx];
csyang2 1:c0f972361605 356
csyang2 1:c0f972361605 357 for (; y1 <= y2; y1++)
csyang2 1:c0f972361605 358 {
csyang2 1:c0f972361605 359 // loc.p8 = line_addr [y1] + x1 * bytes_per_pixel;
csyang2 1:c0f972361605 360 //line_addr = (unsigned char *)g_VAFrameBuf+ y1*(LCD_XSIZE*bytes_per_pixel);
csyang2 1:c0f972361605 361 //loc.p8 = line_addr + x1* bytes_per_pixel;
csyang2 1:c0f972361605 362 for (tmp = x1; tmp <= x2; tmp++)
csyang2 1:c0f972361605 363 {
csyang2 1:c0f972361605 364 //__setpixel (loc, xormode, colidx);
csyang2 1:c0f972361605 365 //loc.p8 += bytes_per_pixel;
csyang2 1:c0f972361605 366 color = GUI_GetPixelIndex(tmp, y1);
csyang2 1:c0f972361605 367 if ( color == colormap2[0] )
csyang2 1:c0f972361605 368 color = colormap[0];
csyang2 1:c0f972361605 369 else if ( color == colormap2[1] )
csyang2 1:c0f972361605 370 color = colormap[1];
csyang2 1:c0f972361605 371 else if ( color == colormap2[2] )
csyang2 1:c0f972361605 372 color = colormap[2];
csyang2 1:c0f972361605 373 else if ( color == colormap2[3] )
csyang2 1:c0f972361605 374 color = colormap[3];
csyang2 1:c0f972361605 375 else if ( color == colormap2[4] )
csyang2 1:c0f972361605 376 color = colormap[4];
csyang2 1:c0f972361605 377 else if ( color == colormap2[5] )
csyang2 1:c0f972361605 378 color = colormap[5];
csyang2 1:c0f972361605 379 else if ( color == colormap2[6] )
csyang2 1:c0f972361605 380 color = colormap[6];
csyang2 1:c0f972361605 381 else if ( color == colormap2[7] )
csyang2 1:c0f972361605 382 color = colormap[7];
csyang2 1:c0f972361605 383 else if ( color == colormap2[8] )
csyang2 1:c0f972361605 384 color = colormap[8];
csyang2 1:c0f972361605 385 else if ( color == colormap2[9] )
csyang2 1:c0f972361605 386 color = colormap[9];
csyang2 1:c0f972361605 387 else if ( color == colormap2[10] )
csyang2 1:c0f972361605 388 color = colormap[10];
csyang2 1:c0f972361605 389 else if ( color == colormap2[11] )
csyang2 1:c0f972361605 390 color = colormap[11];
csyang2 1:c0f972361605 391 else if ( color == colormap2[12] )
csyang2 1:c0f972361605 392 color = colormap[12];
csyang2 1:c0f972361605 393 color2 = colormap [colidx];
csyang2 1:c0f972361605 394 if (xormode)
csyang2 1:c0f972361605 395 color ^= color2;
csyang2 1:c0f972361605 396 else
csyang2 1:c0f972361605 397 color = color2;
csyang2 1:c0f972361605 398 GUI_SetColor(color);
csyang2 1:c0f972361605 399 GUI_DrawPixel(tmp, y1);
csyang2 1:c0f972361605 400 }
csyang2 1:c0f972361605 401 }
csyang2 1:c0f972361605 402 }
csyang2 1:c0f972361605 403 #endif
csyang2 9:1286ec7f3230 404 #endif