/*
* QEMU Cirrus CLGD 54xx VGA Emulator.
- *
+ *
* Copyright (c) 2004 Fabrice Bellard
- *
+ *
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
int x,y;
dstpitch -= bltwidth;
srcpitch -= bltwidth;
+
+ if (dstpitch < 0 || srcpitch < 0) {
+ /* is 0 valid? srcpitch == 0 could be useful */
+ return;
+ }
+
for (y = 0; y < bltheight; y++) {
for (x = 0; x < bltwidth; x++) {
ROP_OP(*dst, *src);
for (x = 0; x < bltwidth; x++) {
p = *dst;
ROP_OP(p, *src);
- if (p != s->gr[0x34]) *dst = p;
+ if (p != s->vga.gr[0x34]) *dst = p;
dst++;
src++;
}
for (x = 0; x < bltwidth; x++) {
p = *dst;
ROP_OP(p, *src);
- if (p != s->gr[0x34]) *dst = p;
+ if (p != s->vga.gr[0x34]) *dst = p;
dst--;
src--;
}
p2 = *(dst+1);
ROP_OP(p1, *src);
ROP_OP(p2, *(src+1));
- if ((p1 != s->gr[0x34]) || (p2 != s->gr[0x35])) {
+ if ((p1 != s->vga.gr[0x34]) || (p2 != s->vga.gr[0x35])) {
*dst = p1;
*(dst+1) = p2;
}
p2 = *dst;
ROP_OP(p1, *(src-1));
ROP_OP(p2, *src);
- if ((p1 != s->gr[0x34]) || (p2 != s->gr[0x35])) {
+ if ((p1 != s->vga.gr[0x34]) || (p2 != s->vga.gr[0x35])) {
*(dst-1) = p1;
*dst = p2;
}