Fork us on GitHub Follow us on Facebook Follow us on Twitter

Changeset 19490ce in mainline


Ignore:
Timestamp:
2009-08-03T21:06:35Z (12 years ago)
Author:
Jakub Jermar <jakub@…>
Branches:
lfn, master
Children:
9035c5a
Parents:
dd2cfa7
Message:

Fix 16bpp modes.

Files:
6 edited

Legend:

Unmodified
Added
Removed
  • kernel/arch/ia32/src/drivers/vesa.c

    rdd2cfa7 r19490ce  
    8686                    && (vesa_green_mask == 5) && (vesa_green_pos == 5)
    8787                    && (vesa_blue_mask == 5) && (vesa_blue_pos == 0))
    88                         visual = VISUAL_BGR_5_5_5;
     88                        visual = VISUAL_RGB_5_5_5_LE;
    8989                else
    90                         visual = VISUAL_BGR_5_6_5;
     90                        visual = VISUAL_RGB_5_6_5_LE;
    9191                break;
    9292        case 24:
  • kernel/arch/ppc32/src/ppc32.c

    rdd2cfa7 r19490ce  
    9393                                break;
    9494                        case 16:
    95                                 visual = VISUAL_BGR_5_5_5;
     95                                visual = VISUAL_RGB_5_5_5_BE;
    9696                                break;
    9797                        case 24:
  • kernel/arch/sparc64/src/drivers/scr.c

    rdd2cfa7 r19490ce  
    134134                case 16:
    135135                        fb_scanline = fb_linebytes * (fb_depth >> 3);
    136                         visual = VISUAL_BGR_5_6_5;
     136                        visual = VISUAL_RGB_5_6_5_BE;
    137137                        break;
    138138                case 24:
     
    178178                case 16:
    179179                        fb_scanline = fb_linebytes * (fb_depth >> 3);
    180                         visual = VISUAL_BGR_5_6_5;
     180                        visual = VISUAL_RGB_5_6_5_BE;
    181181                        break;
    182182                case 24:
  • kernel/genarch/include/fb/visuals.h

    rdd2cfa7 r19490ce  
    3838typedef enum {
    3939        VISUAL_INDIRECT_8,
    40         VISUAL_BGR_5_5_5,
    41         VISUAL_BGR_5_6_5,
     40        VISUAL_RGB_5_5_5_LE,
     41        VISUAL_RGB_5_5_5_BE,
     42        VISUAL_RGB_5_6_5_LE,
     43        VISUAL_RGB_5_6_5_BE,
    4244        VISUAL_BGR_8_8_8,
    4345        VISUAL_BGR_0_8_8_8,
  • kernel/genarch/src/fb/fb.c

    rdd2cfa7 r19490ce  
    146146}
    147147
    148 static void bgr_555(void *dst, uint32_t rgb)
    149 {
    150         uint8_t hi = (BLUE(rgb, 5) | (GREEN(rgb, 5) << 5)) & 0xff;
    151         uint8_t lo = (GREEN(rgb, 5) >> 3) | (RED(rgb, 5) << 2);
    152         *((uint16_t *) dst) = host2uint16_t_be((hi << 8) | lo);
    153 }
    154 
    155 static void bgr_565(void *dst, uint32_t rgb)
    156 {
    157         uint8_t hi = (BLUE(rgb, 5) | (GREEN(rgb, 6) << 5)) & 0xff;
    158         uint8_t lo = (GREEN(rgb, 6) >> 3) | (RED(rgb, 5) << 3);
    159         *((uint16_t *) dst) = host2uint16_t_be((hi << 8) | lo);
     148static void rgb_555_be(void *dst, uint32_t rgb)
     149{
     150        *((uint16_t *) dst) = host2uint16_t_be(RED(rgb, 5) << 10 |
     151            GREEN(rgb, 5) << 5 | BLUE(rgb, 5));
     152}
     153
     154static void rgb_555_le(void *dst, uint32_t rgb)
     155{
     156        *((uint16_t *) dst) = host2uint16_t_le(RED(rgb, 5) << 10 |
     157            GREEN(rgb, 5) << 5 | BLUE(rgb, 5));
     158}
     159
     160static void rgb_565_be(void *dst, uint32_t rgb)
     161{
     162        *((uint16_t *) dst) = host2uint16_t_be(RED(rgb, 5) << 11 |
     163            GREEN(rgb, 6) << 5 | BLUE(rgb, 5));
     164}
     165
     166static void rgb_565_le(void *dst, uint32_t rgb)
     167{
     168        *((uint16_t *) dst) = host2uint16_t_le(RED(rgb, 5) << 11 |
     169            GREEN(rgb, 6) << 5 | BLUE(rgb, 5));
    160170}
    161171
     
    455465                pixelbytes = 1;
    456466                break;
    457         case VISUAL_BGR_5_5_5:
    458                 rgb_conv = bgr_555;
     467        case VISUAL_RGB_5_5_5_LE:
     468                rgb_conv = rgb_555_le;
    459469                pixelbytes = 2;
    460470                break;
    461         case VISUAL_BGR_5_6_5:
    462                 rgb_conv = bgr_565;
     471        case VISUAL_RGB_5_5_5_BE:
     472                rgb_conv = rgb_555_be;
     473                pixelbytes = 2;
     474                break;
     475        case VISUAL_RGB_5_6_5_LE:
     476                rgb_conv = rgb_565_le;
     477                pixelbytes = 2;
     478                break;
     479        case VISUAL_RGB_5_6_5_BE:
     480                rgb_conv = rgb_565_be;
    463481                pixelbytes = 2;
    464482                break;
  • uspace/srv/fb/fb.c

    rdd2cfa7 r19490ce  
    290290}
    291291
    292 static void bgr_555(void *dst, uint32_t rgb)
    293 {
    294         uint8_t hi = (BLUE(rgb, 5) | (GREEN(rgb, 5) << 5)) & 0xff;
    295         uint8_t lo = (GREEN(rgb, 5) >> 3) | (RED(rgb, 5) << 2);
    296         *((uint16_t *) dst) = host2uint16_t_be((hi << 8) | lo);
     292static void rgb_555_be(void *dst, uint32_t rgb)
     293{
     294        *((uint16_t *) dst) = host2uint16_t_be(RED(rgb, 5) << 10 |
     295            GREEN(rgb, 5) << 5 | BLUE(rgb, 5));
     296}
     297
     298static void rgb_555_le(void *dst, uint32_t rgb)
     299{
     300        *((uint16_t *) dst) = host2uint16_t_le(RED(rgb, 5) << 10 |
     301            GREEN(rgb, 5) << 5 | BLUE(rgb, 5));
     302}
     303
     304static void rgb_565_be(void *dst, uint32_t rgb)
     305{
     306        *((uint16_t *) dst) = host2uint16_t_be(RED(rgb, 5) << 11 |
     307            GREEN(rgb, 6) << 5 | BLUE(rgb, 5));
     308}
     309
     310static void rgb_565_le(void *dst, uint32_t rgb)
     311{
     312        *((uint16_t *) dst) = host2uint16_t_le(RED(rgb, 5) << 11 |
     313            GREEN(rgb, 6) << 5 | BLUE(rgb, 5));
    297314}
    298315
    299316static void mask_555(void *dst, bool mask)
    300317{
    301         bgr_555(dst, mask ? 0xffffff : 0);
    302 }
    303 
    304 static void bgr_565(void *dst, uint32_t rgb)
    305 {
    306         uint8_t hi = (BLUE(rgb, 5) | (GREEN(rgb, 6) << 5)) & 0xff;
    307         uint8_t lo = (GREEN(rgb, 6) >> 3) | (RED(rgb, 5) << 3);
    308         *((uint16_t *) dst) = host2uint16_t_be((hi << 8) | lo);
     318        rgb_555_be(dst, mask ? 0xffffff : 0);
    309319}
    310320
    311321static void mask_565(void *dst, bool mask)
    312322{
    313         bgr_565(dst, mask ? 0xffffff : 0);
     323        rgb_565_be(dst, mask ? 0xffffff : 0);
    314324}
    315325
     
    622632                screen.pixelbytes = 1;
    623633                break;
    624         case VISUAL_BGR_5_5_5:
    625                 screen.rgb_conv = bgr_555;
     634        case VISUAL_RGB_5_5_5_LE:
     635                screen.rgb_conv = rgb_555_le;
    626636                screen.mask_conv = mask_555;
    627637                screen.pixelbytes = 2;
    628638                break;
    629         case VISUAL_BGR_5_6_5:
    630                 screen.rgb_conv = bgr_565;
     639        case VISUAL_RGB_5_5_5_BE:
     640                screen.rgb_conv = rgb_555_be;
     641                screen.mask_conv = mask_555;
     642                screen.pixelbytes = 2;
     643                break;
     644        case VISUAL_RGB_5_6_5_LE:
     645                screen.rgb_conv = rgb_565_le;
     646                screen.mask_conv = mask_565;
     647                screen.pixelbytes = 2;
     648                break;
     649        case VISUAL_RGB_5_6_5_BE:
     650                screen.rgb_conv = rgb_565_be;
    631651                screen.mask_conv = mask_565;
    632652                screen.pixelbytes = 2;
Note: See TracChangeset for help on using the changeset viewer.