URL
https://opencores.org/ocsvn/openfire2/openfire2/trunk
[/] [openfire2/] [trunk/] [sw/] [vga/] [vga_drawpixel.c] - Diff between revs 3 and 6
Only display areas with differences |
Details |
Blame |
View Log
Rev 3 |
Rev 6 |
#include "vga.h"
|
#include "vga.h"
|
|
|
void vga_drawpixel(unsigned short x, unsigned short y, unsigned short color)
|
void vga_drawpixel(unsigned short x, unsigned short y, unsigned short color)
|
{
|
{
|
unsigned ptr = (unsigned) &_VIDEO_RAM_ADDR;
|
unsigned ptr = (unsigned) &_VIDEO_RAM_ADDR;
|
|
|
unsigned short pixel, mascara = 0x7;
|
unsigned short pixel, mascara = 0x7;
|
unsigned short w = x / 5; /* word donde esta el pixel */
|
unsigned short w = x / 5; /* word donde esta el pixel */
|
unsigned short p = 12 - (x % 5) * 3; /* obtenemos el # de pixel dentro del grupo */
|
unsigned short p = 12 - (x % 5) * 3; /* obtenemos el # de pixel dentro del grupo */
|
|
|
ptr += y * 256 + w * 2;
|
ptr += y * 256 + w * 2;
|
|
|
pixel = *(unsigned short *) ptr; /* obtenemos el valor del grupo de 5 pixels */
|
pixel = *(unsigned short *) ptr; /* obtenemos el valor del grupo de 5 pixels */
|
mascara = ~(0x7 << p); /* mascara para el pixel */
|
mascara = ~(0x7 << p); /* mascara para el pixel */
|
color <<= p; /* ponemos el pixel en su sitio */
|
color <<= p; /* ponemos el pixel en su sitio */
|
|
|
pixel &= mascara; /* aplicamos la mascara en el pixel actual */
|
pixel &= mascara; /* aplicamos la mascara en el pixel actual */
|
pixel |= color; /* dibujamos el pixel en el hueco de la mascara */
|
pixel |= color; /* dibujamos el pixel en el hueco de la mascara */
|
|
|
*(unsigned short *) ptr = pixel;
|
*(unsigned short *) ptr = pixel;
|
}
|
}
|
|
|
© copyright 1999-2024
OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.