Está en la página 1de 1

Consideración

- En Xinu el framebuffer lee los colores por píxel con el formato 0x00RRGGBB

1) El conversor de 16bits a 32bits está ahora como rgb565_to_rgb888(u16 color) en


lib/vga.c
a) Ingresa un color con el formato 0xrrrr rggg gggb bbbb
b) Se obtienen por separado los colores r, g, b en su formato inicial,
shifteando a izquierda y haciendo & lógico con los bits que corresponden
c) Cambiamos el formato de cada color (2 bytes, 0-255) haciendo regla de tres
(color * 255)/colorMaximo
d) Armamos el color en el formato que lee Xinu shifteando según la posición

2) Las imágenes se convirtieron con la siguiente página:


https://www.digole.com/tools/PicturetoC_Hex_converter.php
- El formato es 2 bytes/pixel:rrrr rggg gggb bbbb, "EDIM2"
- El resultado está separado por bytes

3) drawImage3(...) en shell/galaga/mylib.c modificado


a) Como cada pixel ocupa 2 bytes del arreglo accedemos de a dos posiciones
b) El color a convertir se arma con esos 2 bytes poniendo el primero por
delante
c) La posición que se envía estaba mal, el primer for es altura, y el de
adentro es el ancho (los .c de las imágenes previos estaban mal convertidos)

También podría gustarte