has anyone written gfxdriver for graphic controller mb86296??
刘小双
liuxs226 at gmail.com
Fri Apr 4 12:55:41 EST 2008
hi,all
has anyone written gfxdriver for graphic controller mb86296?? I have a
problem when I'm writing the gfxdriver that refered to gfxdriver for
sm501. I want to enable the gfxdriver drawing line and filling rectangle and
so on .After finishing the gfxdriver, I run a test program to see if the
gfxdriver could draw a line in the center of the screen and fill a black
rectangle as background, I find there is nothing in display screen where
there should be a line in the center of the screen. here is some part of my
gfxdriver code about line and rectangle:
//draw line with with given coordinate point and color
void de_line(int x1,int y1,int x2,int y2,int c)
{
MB86290WriteFifo(4, (GDC_TYPE_SETCOLORREGISTER << 24) |
(GDC_CMD_BODY_FORE_COLOR << 16), c,
(GDC_TYPE_SETMODEREGISTER << 24) | (GDC_CMD_MDR1 <<
16), (2 << 7));
long cmd2 = (GDC_TYPE_DRAWLINE2I << 24) | 1;
MB86290WriteFifo(6, GDC_TYPE_DRAWLINE2I << 24, x1 << 16, y1 << 16,
cmd2, x2 << 16, y2 << 16);
}
// fill rectangle with given coordinate point and color
void de_fillrect(int x1,int y1,int x2,int y2,int c)
{
int DeltaX;
int DeltaY;
// Determine delta X
if (x2 < x1) {
DeltaX = x1 - x2 + 1;
x1 = x2;
}
else {
DeltaX = x2 - x1 + 1;
}
// Determine delta Y
if (y2 <y1) {
DeltaY = y1 - y2 + 1;
y1 = y2;
}
else {
DeltaY = y2 - y1 + 1;
}
MB86290WriteFifo(2,(GDC_TYPE_SETCOLORREGISTER << 24) |
(GDC_CMD_BODY_FORE_COLOR << 16),c);
MB86290WriteFifo(3,(GDC_TYPE_DRAWRECTP << 24) | (GDC_CMD_BLT_FILL <<
16),(y1 << 16)|x1,(DeltaY<<16)|DeltaX);
}
Thanks,
Xiaoshuang Liu
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://ozlabs.org/pipermail/linuxppc-embedded/attachments/20080404/9bcbab85/attachment.htm>
More information about the Linuxppc-embedded
mailing list