📄 m2b4_lin.c
字号:
dstPtr = (byte *) *rowTablePtr[0] + dstBgnByte;
*dstPtr = *dstPtr | pxColor;
pxColor = pxColor >> shfCnt;
pxBit = (pxBit >> shfCnt);
if(pxBit == 0)
{
dstBgnByte++;
pxBit = shiftMask;
pxColor = lclPenColor;
}
errTermL += errTermAdjUpL;
if (errTermL >= 0)
{ /* minor axis advance */
errTermL -= errTermAdjDownL;
rowTablePtr[0]++;
}
}
return;
}
/* X major top->bottom, right->left masked, OR. */
/* #define M2_4BMOXMRL M2_4BMODRL */
/* Diagonal top->bottom, right->left masked, OR. */
void M2_4BMODRL(void)
{
int i;
int pxShift;
byte pxBit;
byte pxColor;
pxShift = (dRect.Xmin & firstOffset) * shfCnt;
pxColor = (byte) (lclPenColor >> pxShift);
pxBit = (byte) (shiftMask >> pxShift);
dstBgnByte = dRect.Xmin >> flipMask;
for (i = 0; i <= majorAxisLengthM1; i++)
{
dstPtr = (byte *) *rowTablePtr[0] + dstBgnByte;
*dstPtr = *dstPtr | pxColor;
pxColor = pxColor << shfCnt;
pxBit = (pxBit << shfCnt);
if(pxBit == 0)
{
dstBgnByte--;
if (shfCnt == 2)
{
pxBit = 0x03;
pxColor = lclPenColor >> 6;
}
else
{
pxBit = 0x0f;
pxColor = lclPenColor >> 4;
}
}
errTermL += errTermAdjUpL;
if (errTermL >= 0)
{ /* minor axis advance */
errTermL -= errTermAdjDownL;
rowTablePtr[0]++;
}
}
return;
}
/* Y major top->bottom, left->right masked, OR NOT dest. */
/* #define M2_4BMOYMLR_ND M2_4BMOV_ND */
/* Y major top->bottom, vertical masked, OR NOT dest. */
void M2_4BMOV_ND(void)
{
int i;
int pxShift;
byte pxBit;
byte pxColor;
pxShift = (dRect.Xmin & firstOffset) * shfCnt;
pxColor = (byte) (lclPenColor >> pxShift);
pxBit = (byte) (shiftMask >> pxShift);
dstBgnByte = dRect.Xmin >> flipMask;
for (i = 0; i <= majorAxisLengthM1; i++)
{
dstPtr = (byte *) *rowTablePtr[0] + dstBgnByte;
*dstPtr = (*dstPtr ^ pxBit) | pxColor;
rowTablePtr[0]++;
errTermL += errTermAdjUpL;
if (errTermL >= 0)
{ /* minor axis advance */
errTermL -= errTermAdjDownL;
pxColor = pxColor >> shfCnt;
pxBit = (pxBit >> shfCnt);
if(pxBit == 0)
{
dstBgnByte++;
pxBit = shiftMask;
pxColor = lclPenColor;
}
}
}
return;
}
/* Y major top->bottom, right->left masked, OR NOT dest. */
void M2_4BMOYMRL_ND(void)
{
int i;
int pxShift;
byte pxBit;
byte pxColor;
pxShift = (dRect.Xmin & firstOffset) * shfCnt;
pxColor = (byte) (lclPenColor >> pxShift);
pxBit = (byte) (shiftMask >> pxShift);
dstBgnByte = dRect.Xmin >> flipMask;
for (i = 0; i <= majorAxisLengthM1; i++)
{
dstPtr = (byte *) *rowTablePtr[0] + dstBgnByte;
*dstPtr = (*dstPtr ^ pxBit) | pxColor;
rowTablePtr[0]++;
errTermL += errTermAdjUpL;
if (errTermL >= 0)
{ /* minor axis advance */
errTermL -= errTermAdjDownL;
pxColor = pxColor << shfCnt;
pxBit = (pxBit << shfCnt);
if(pxBit == 0)
{
dstBgnByte--;
if (shfCnt == 2)
{
pxBit = 0x03;
pxColor = lclPenColor >> 6;
}
else
{
pxBit = 0x0f;
pxColor = lclPenColor >> 4;
}
}
}
}
return;
}
/* X major top->bottom, left->right masked, OR NOT dest. */
/* #define M2_4BMOXMLR_ND M2_4BMOH_ND */
/* Diagonal top->bottom, left->right masked, OR NOT dest. */
/* #define M2_4BMODLR_ND M2_4BMOH_ND */
/* Horizontal left->right masked, OR NOT dest. */
void M2_4BMOH_ND(void)
{
int i;
int pxShift;
byte pxBit;
byte pxColor;
pxShift = (dRect.Xmin & firstOffset) * shfCnt;
pxColor = (byte) (lclPenColor >> pxShift);
pxBit = (byte) (shiftMask >> pxShift);
dstBgnByte = dRect.Xmin >> flipMask;
for (i = 0; i <= majorAxisLengthM1; i++)
{
dstPtr = (byte *) *rowTablePtr[0] + dstBgnByte;
*dstPtr = (*dstPtr ^ pxBit) | pxColor;
pxColor = pxColor >> shfCnt;
pxBit = (pxBit >> shfCnt);
if(pxBit == 0)
{
dstBgnByte++;
pxBit = shiftMask;
pxColor = lclPenColor;
}
errTermL += errTermAdjUpL;
if (errTermL >= 0)
{ /* minor axis advance */
errTermL -= errTermAdjDownL;
rowTablePtr[0]++;
}
}
return;
}
/* X major top->bottom, right->left masked, OR NOT dest. */
/* #define M2_4BMOXMRL_ND M2_4BMODRL_ND */
/* Diagonal top->bottom, right->left masked, OR NOT dest. */
void M2_4BMODRL_ND(void)
{
int i;
int pxShift;
byte pxBit;
byte pxColor;
pxShift = (dRect.Xmin & firstOffset) * shfCnt;
pxColor = (byte) (lclPenColor >> pxShift);
pxBit = (byte) (shiftMask >> pxShift);
dstBgnByte = dRect.Xmin >> flipMask;
for (i = 0; i <= majorAxisLengthM1; i++)
{
dstPtr = (byte *) *rowTablePtr[0] + dstBgnByte;
*dstPtr = (*dstPtr ^ pxBit) | pxColor;
pxColor = pxColor << shfCnt;
pxBit = (pxBit << shfCnt);
if(pxBit == 0)
{
dstBgnByte--;
if (shfCnt == 2)
{
pxBit = 0x03;
pxColor = lclPenColor >> 6;
}
else
{
pxBit = 0x0f;
pxColor = lclPenColor >> 4;
}
}
errTermL += errTermAdjUpL;
if (errTermL >= 0)
{ /* minor axis advance */
errTermL -= errTermAdjDownL;
rowTablePtr[0]++;
}
}
return;
}
/* Y major top->bottom, left->right masked, AND. */
/* #define M2_4BMAYMLR M2_4BMAV */
/* Y major top->bottom, vertical masked, AND. */
void M2_4BMAV(void)
{
int i;
int pxShift;
byte pxBit;
byte pxColor;
pxShift = (dRect.Xmin & firstOffset) * shfCnt;
pxColor = (byte) (lclPenColor >> pxShift);
pxBit = (byte) (shiftMask >> pxShift);
dstBgnByte = dRect.Xmin >> flipMask;
for (i = 0; i <= majorAxisLengthM1; i++)
{
dstPtr = (byte *) *rowTablePtr[0] + dstBgnByte;
*dstPtr = *dstPtr & (~pxBit | pxColor);
rowTablePtr[0]++;
errTermL += errTermAdjUpL;
if (errTermL >= 0)
{ /* minor axis advance */
errTermL -= errTermAdjDownL;
pxColor = pxColor >> shfCnt;
pxBit = (pxBit >> shfCnt);
if(pxBit == 0)
{
dstBgnByte++;
pxBit = shiftMask;
pxColor = lclPenColor;
}
}
}
return;
}
/* Y major top->bottom, right->left masked, AND. */
void M2_4BMAYMRL(void)
{
int i;
int pxShift;
byte pxBit;
byte pxColor;
pxShift = (dRect.Xmin & firstOffset) * shfCnt;
pxColor = (byte) (lclPenColor >> pxShift);
pxBit = (byte) (shiftMask >> pxShift);
dstBgnByte = dRect.Xmin >> flipMask;
for (i = 0; i <= majorAxisLengthM1; i++)
{
dstPtr = (byte *) *rowTablePtr[0] + dstBgnByte;
*dstPtr = *dstPtr & (~pxBit | pxColor);
rowTablePtr[0]++;
errTermL += errTermAdjUpL;
if (errTermL >= 0)
{ /* minor axis advance */
errTermL -= errTermAdjDownL;
pxColor = pxColor << shfCnt;
pxBit = (pxBit << shfCnt);
if(pxBit == 0)
{
dstBgnByte--;
if (shfCnt == 2)
{
pxBit = 0x03;
pxColor = lclPenColor >> 6;
}
else
{
pxBit = 0x0f;
pxColor = lclPenColor >> 4;
}
}
}
}
return;
}
/* X major top->bottom, left->right masked, AND. */
/* #define M2_4BMAXMLR M2_4BMAH */
/* Diagonal top->bottom, left->right masked, AND. */
/* #define M2_4BMADLR M2_4BMAH */
/* Horizontal left->right masked, AND. */
void M2_4BMAH(void)
{
int i;
int pxShift;
byte pxBit;
byte pxColor;
pxShift = (dRect.Xmin & firstOffset) * shfCnt;
pxColor = (byte) (lclPenColor >> pxShift);
pxBit = (byte) (shiftMask >> pxShift);
dstBgnByte = dRect.Xmin >> flipMask;
for (i = 0; i <= majorAxisLengthM1; i++)
{
dstPtr = (byte *) *rowTablePtr[0] + dstBgnByte;
*dstPtr = *dstPtr & (~pxBit | pxColor);
pxColor = pxColor >> shfCnt;
pxBit = (pxBit >> shfCnt);
if(pxBit == 0)
{
dstBgnByte++;
pxBit = shiftMask;
pxColor = lclPenColor;
}
errTermL += errTermAdjUpL;
if (errTermL >= 0)
{ /* minor axis advance */
errTermL -= errTermAdjDownL;
rowTablePtr[0]++;
}
}
return;
}
/* X major top->bottom, right->left masked, AND. */
/* #define M2_4BMAXMRL M2_4BMADRL */
/* Diagonal top->bottom, right->left masked, AND. */
void M2_4BMADRL(void)
{
int i;
int pxShift;
byte pxBit;
byte pxColor;
pxShift = (dRect.Xmin & firstOffset) * shfCnt;
pxColor = (byte) (lclPenColor >> pxShift);
pxBit = (byte) (shiftMask >> pxShift);
dstBgnByte = dRect.Xmin >> flipMask;
for (i = 0; i <= majorAxisLengthM1; i++)
{
dstPtr = (byte *) *rowTablePtr[0] + dstBgnByte;
*dstPtr = *dstPtr & (~pxBit | pxColor);
pxColor = pxColor << shfCnt;
pxBit = (pxBit << shfCnt);
if(pxBit == 0)
{
dstBgnByte--;
if (shfCnt == 2)
{
pxBit = 0x03;
pxColor = lclPenColor >> 6;
}
else
{
pxBit = 0x0f;
pxColor = lclPenColor >> 4;
}
}
errTermL += errTermAdjUpL;
if (errTermL >= 0)
{ /* minor axis advance */
errTermL -= errTermAdjDownL;
rowTablePtr[0]++;
}
}
return;
}
/* Y major top->bottom, left->right masked, AND NOT dest. */
/* #define M2_4BMAYMLR_ND M2_4BMAV_ND */
/* Y major top->bottom, vertical masked, AND NOT dest. */
void M2_4BMAV_ND(void)
{
int i;
int pxShift;
byte pxBit;
byte pxColor;
pxShift = (dRect.Xmin & firstOffset) * shfCnt;
pxColor = (byte) (lclPenColor >> pxShift);
pxBit = (byte) (shiftMask >> pxShift);
dstBgnByte = dRect.Xmin >> flipMask;
for (i = 0; i <= majorAxisLengthM1; i++)
{
dstPtr = (byte *) *rowTablePtr[0] + dstBgnByte;
*dstPtr = (*dstPtr ^ pxBit) & (~pxBit | pxColor);
rowTablePtr[0]++;
errTermL += errTermAdjUpL;
if (errTermL >= 0)
{ /* minor axis advance */
errTermL -= errTermAdjDownL;
pxColor = pxColor >> shfCnt;
pxBit = (pxBit >> shfCnt);
if(pxBit == 0)
{
dstBgnByte++;
pxBit = shiftMask;
pxColor = lclPenColor;
}
}
}
return;
}
/* Y major top->bottom, right->left masked, AND NOT dest. */
void M2_4BMAYMRL_ND(void)
{
int i;
int pxShift;
byte pxBit;
byte pxColor;
pxShift = (dRect.Xmin & firstOffset) * shfCnt;
pxColor = (byte) (lclPenColor >> pxShift);
pxBit = (byte) (shiftMask >> pxShift);
dstBgnByte = dRect.Xmin >> flipMask;
for (i = 0; i <= majorAxisLengthM1; i++)
{
dstPtr = (byte *) *rowTablePtr[0] + dstBgnByte;
*dstPtr = (*dstPtr ^ pxBit) & (~pxBit | pxColor);
rowTablePtr[0]++;
errTermL += errTermAdjUpL;
if (errTermL >= 0)
{ /* minor axis advance */
errTermL -= errTermAdjDownL;
pxColor = pxColor << shfCnt;
pxBit = (pxBit << shfCnt);
if(pxBit == 0)
{
dstBgnByte--;
if (shfCnt == 2)
{
pxBit = 0x03;
pxColor = lclPenColor >> 6;
}
else
{
pxBit = 0x0f;
pxColor = lclPenColor >> 4;
}
}
}
}
return;
}
/* X major top->bottom, left->right masked, AND NOT dest. */
/* #define M2_4BMAXMLR_ND M2_4BMAH_ND */
/* Diagonal top->bottom, left->right masked, AND NOT dest. */
/* #define M2_4BMADLR_ND M2_4BMAH_ND */
/* Horizontal left->right masked, AND NOT dest. */
void M2_4BMAH_ND(void)
{
int i;
int pxShift;
byte pxBit;
byte pxColor;
pxShift = (dRect.Xmin & firstOffset) * shfCnt;
pxColor = (byte) (lclPenColor >> pxShift);
pxBit = (byte) (shiftMask >> pxShift);
dstBgnByte = dRect.Xmin >> flipMask;
for (i = 0; i <= majorAxisLengthM1; i++)
{
dstPtr = (byte *) *rowTablePtr[0] + dstBgnByte;
*dstPtr = (*dstPtr ^ pxBit) & (~pxBit | pxColor);
pxColor = pxColor >> shfCnt;
pxBit = (pxBit >> shfCnt);
if(pxBit == 0)
{
dstBgnByte++;
pxBit = shiftMask;
pxColor = lclPenColor;
}
errTermL += errTermAdjUpL;
if (errTermL >= 0)
{ /* minor axis advance */
errTermL -= errTermAdjDownL;
rowTablePtr[0]++;
}
}
return;
}
/* X major top->bottom, right->left masked, AND NOT dest. */
/* #define M2_4BMAXMRL_ND M2_4BMADRL_ND */
/* Diagonal top->bottom, right->left masked, AND NOT dest. */
void M2_4BMADRL_ND(void)
{
int i;
int pxShift;
byte pxBit;
byte pxColor;
pxShift = (dRect.Xmin & firstOffset) * shfCnt;
pxColor = (byte) (lclPenColor >> pxShift);
pxBit = (byte) (shiftMask >> pxShift);
dstBgnByte = dRect.Xmin >> flipMask;
for (i = 0; i <= majorAxisLengthM1; i++)
{
dstPtr = (byte *) *rowTablePtr[0] + dstBgnByte;
*dstPtr = (*dstPtr ^ pxBit) & (~pxBit | pxColor);
pxColor = pxColor << shfCnt;
pxBit = (pxBit << shfCnt);
if(pxBit == 0)
{
dstBgnByte--;
if (shfCnt == 2)
{
pxBit = 0x03;
pxColor = lclPenColor >> 6;
}
else
{
pxBit = 0x0f;
pxColor = lclPenColor >> 4;
}
}
errTermL += errTermAdjUpL;
if (errTermL >= 0)
{ /* minor axis advance */
errTermL -= errTermAdjDownL;
rowTablePtr[0]++;
}
}
return;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -