📄 m8b_lin.c
字号:
case 2:
M8BMAYMLR();
break;
case 3:
M8BMADLR();
break;
case 4:
M8BMAXMLR();
break;
case 5:
M8BMAH();
break;
case 6:
M8BMADRL();
break;
case 7:
M8BMAXMRL();
break;
}
return;
}
void M8BMO_NDTable(void)
{
void M8BMOYMRL_ND(void);
void M8BMOV_ND(void);
void M8BMOYMLR_ND(void);
void M8BMODLR_ND(void);
void M8BMOXMLR_ND(void);
void M8BMOH_ND(void);
void M8BMODRL_ND(void);
void M8BMOXMRL_ND(void);
switch (lineDir) /* appropriate for the line direction */
{
case 0:
M8BMOYMRL_ND();
break;
case 1:
M8BMOV_ND();
break;
case 2:
M8BMOYMLR_ND();
break;
case 3:
M8BMODLR_ND();
break;
case 4:
M8BMOXMLR_ND();
break;
case 5:
M8BMOH_ND();
break;
case 6:
M8BMODRL_ND();
break;
case 7:
M8BMOXMRL_ND();
break;
}
return;
}
void M8BMA_NDTable(void)
{
void M8BMAYMRL_ND(void);
void M8BMAV_ND(void);
void M8BMAYMLR_ND(void);
void M8BMADLR_ND(void);
void M8BMAXMLR_ND(void);
void M8BMAH_ND(void);
void M8BMADRL_ND(void);
void M8BMAXMRL_ND(void);
switch (lineDir) /* appropriate for the line direction */
{
case 0:
M8BMAYMRL_ND();
break;
case 1:
M8BMAV_ND();
break;
case 2:
M8BMAYMLR_ND();
break;
case 3:
M8BMADLR_ND();
break;
case 4:
M8BMAXMLR_ND();
break;
case 5:
M8BMAH_ND();
break;
case 6:
M8BMADRL_ND();
break;
case 7:
M8BMAXMRL_ND();
break;
}
return;
}
/* Low-level line drawing optimizations. */
/* Unmasked low-level optimizations. */
/* Horizontal left->right replace. */
void M8BURH(void)
{
int i;
/* BobB 5/7/98 - removed the following line since it is unused
dstBgnByte = ((dRect.Xmin & 0xfffe) << 1) + (dRect.Xmin & 1); */
dstPtr = (byte *) *rowTablePtr[0] + dRect.Xmin;
for (i = 0; i <= majorAxisLengthM1; i++)
{
*dstPtr = lclPenColor;
dstPtr++;
}
return;
}
/* Vertical top->bottom replace. */
void M8BURV()
{
int i;
for (i = 0; i <= majorAxisLengthM1; i++)
{
dstPtr = (byte *) *rowTablePtr[0] + dRect.Xmin;
*dstPtr = lclPenColor;
rowTablePtr[0]++;
}
return;
}
/* Diagonal top->bottom, right->left replace. */
void M8BURDRL(void)
{
int i;
for (i = 0; i <= majorAxisLengthM1; i++)
{
dstPtr = (byte *) *rowTablePtr[0] + dRect.Xmin;
*dstPtr = lclPenColor;
rowTablePtr[0]++;
dRect.Xmin--;
}
return;
}
/* Diagonal top->bottom, left->right replace. */
void M8BURDLR(void)
{
int i;
for (i = 0; i <= majorAxisLengthM1; i++)
{
dstPtr = (byte *) *rowTablePtr[0] + dRect.Xmin;
*dstPtr = lclPenColor;
rowTablePtr[0]++;
dRect.Xmin++;
}
return;
}
/* Y major top->bottom, left->right replace. */
void M8BURYMLR(void)
{
int i;
for (i = 0; i <= majorAxisLengthM1; i++)
{
dstPtr = (byte *) *rowTablePtr[0] + dRect.Xmin;
*dstPtr = lclPenColor;
rowTablePtr[0]++;
errTermL += errTermAdjUpL;
if (errTermL >= 0)
{ /* minor axis advance */
errTermL -= errTermAdjDownL;
dRect.Xmin++;
}
}
return;
}
/* Y major top->bottom, right->left replace. */
void M8BURYMRL(void)
{
int i;
for (i = 0; i <= majorAxisLengthM1; i++)
{
dstPtr = (byte *) *rowTablePtr[0] + dRect.Xmin;
*dstPtr = lclPenColor;
rowTablePtr[0]++;
errTermL += errTermAdjUpL;
if (errTermL >= 0)
{ /* minor axis advance */
errTermL -= errTermAdjDownL;
dRect.Xmin--;
}
}
return;
}
/* X major top->bottom, left->right replace. */
void M8BURXMLR(void)
{
int i;
for (i = 0; i <= majorAxisLengthM1; i++)
{
dstPtr = (byte *) *rowTablePtr[0] + dRect.Xmin;
*dstPtr = lclPenColor;
dRect.Xmin++;
errTermL += errTermAdjUpL;
if (errTermL >= 0)
{ /* minor axis advance */
errTermL -= errTermAdjDownL;
rowTablePtr[0]++;
}
}
return;
}
/* X major top->bottom, right->left replace. */
void M8BURXMRL(void)
{
int i;
for (i = 0; i <= majorAxisLengthM1; i++)
{
dstPtr = (byte *) *rowTablePtr[0] + dRect.Xmin;
*dstPtr = lclPenColor;
dRect.Xmin--;
errTermL += errTermAdjUpL;
if (errTermL >= 0)
{ /* minor axis advance */
errTermL -= errTermAdjDownL;
rowTablePtr[0]++;
}
}
return;
}
/* Horizontal left->right XOR. */
void M8BUXH(void)
{
int i;
dstPtr = (byte *) *rowTablePtr[0] + dRect.Xmin;
for (i = 0; i <= majorAxisLengthM1; i++)
{
*dstPtr = *dstPtr ^ lclPenColor;
dstPtr++;
}
return;
}
/* Vertical top->bottom XOR. */
void M8BUXV()
{
int i;
for (i = 0; i <= majorAxisLengthM1; i++)
{
dstPtr = (byte *) *rowTablePtr[0] + dRect.Xmin;
*dstPtr = *dstPtr ^ lclPenColor;
rowTablePtr[0]++;
}
return;
}
/* Diagonal top->bottom, right->left XOR. */
void M8BUXDRL(void)
{
int i;
for (i = 0; i <= majorAxisLengthM1; i++)
{
dstPtr = (byte *) *rowTablePtr[0] + dRect.Xmin;
*dstPtr = *dstPtr ^ lclPenColor;
rowTablePtr[0]++;
dRect.Xmin--;
}
return;
}
/* Diagonal top->bottom, left->right XOR. */
void M8BUXDLR(void)
{
int i;
for (i = 0; i <= majorAxisLengthM1; i++)
{
dstPtr = (byte *) *rowTablePtr[0] + dRect.Xmin;
*dstPtr = *dstPtr ^ lclPenColor;
rowTablePtr[0]++;
dRect.Xmin++;
}
return;
}
/* Y major top->bottom, left->right XOR. */
void M8BUXYMLR(void)
{
int i;
for (i = 0; i <= majorAxisLengthM1; i++)
{
dstPtr = (byte *) *rowTablePtr[0] + dRect.Xmin;
*dstPtr = *dstPtr ^ lclPenColor;
rowTablePtr[0]++;
errTermL += errTermAdjUpL;
if (errTermL >= 0)
{ /* minor axis advance */
errTermL -= errTermAdjDownL;
dRect.Xmin++;
}
}
return;
}
/* Y major top->bottom, right->left XOR. */
void M8BUXYMRL(void)
{
int i;
for (i = 0; i <= majorAxisLengthM1; i++)
{
dstPtr = (byte *) *rowTablePtr[0] + dRect.Xmin;
*dstPtr = *dstPtr ^ lclPenColor;
rowTablePtr[0]++;
errTermL += errTermAdjUpL;
if (errTermL >= 0)
{ /* minor axis advance */
errTermL -= errTermAdjDownL;
dRect.Xmin--;
}
}
return;
}
/* X major top->bottom, left->right XOR. */
void M8BUXXMLR(void)
{
int i;
for (i = 0; i <= majorAxisLengthM1; i++)
{
dstPtr = (byte *) *rowTablePtr[0] + dRect.Xmin;
*dstPtr = *dstPtr ^ lclPenColor;
dRect.Xmin++;
errTermL += errTermAdjUpL;
if (errTermL >= 0)
{ /* minor axis advance */
errTermL -= errTermAdjDownL;
rowTablePtr[0]++;
}
}
return;
}
/* X major top->bottom, right->left XOR. */
void M8BUXXMRL(void)
{
int i;
for (i = 0; i <= majorAxisLengthM1; i++)
{
dstPtr = (byte *) *rowTablePtr[0] + dRect.Xmin;
*dstPtr = *dstPtr ^ lclPenColor;
dRect.Xmin--;
errTermL += errTermAdjUpL;
if (errTermL >= 0)
{ /* minor axis advance */
errTermL -= errTermAdjDownL;
rowTablePtr[0]++;
}
}
return;
}
/* Masked low-level optimizations. */
/* Y major top->bottom, left->right masked, replace. */
/* #define M8BMRYMLR M8BMRV */
/* Y major top->bottom, vertical masked, replace. */
void M8BMRV(void)
{
int i;
lclPortMask = ~lclPortMask; /* set 1 bits to select the dest
rather than the source */
for (i = 0; i <= majorAxisLengthM1; i++)
{
dstPtr = (byte *) *rowTablePtr[0] + dRect.Xmin;
*dstPtr = (((*dstPtr ^ lclPenColor) & lclPortMask) ^
lclPenColor);
rowTablePtr[0]++;
errTermL += errTermAdjUpL;
if (errTermL >= 0)
{ /* minor axis advance */
errTermL -= errTermAdjDownL;
dRect.Xmin++;
}
}
lclPortMask = ~lclPortMask; /* restore the original setting */
return;
}
/* Y major top->bottom, right->left masked, replace. */
void M8BMRYMRL(void)
{
int i;
lclPortMask = ~lclPortMask; /* set 1 bits to select the dest
rather than the source */
for (i = 0; i <= majorAxisLengthM1; i++)
{
dstPtr = (byte *) *rowTablePtr[0] + dRect.Xmin;
*dstPtr = (((*dstPtr ^ lclPenColor) & lclPortMask) ^
lclPenColor);
rowTablePtr[0]++;
errTermL += errTermAdjUpL;
if (errTermL >= 0)
{ /* minor axis advance */
errTermL -= errTermAdjDownL;
dRect.Xmin--;
}
}
lclPortMask = ~lclPortMask; /* restore the original setting */
return;
}
/* X major top->bottom, left->right masked, replace. */
/* #define M8BMRXMLR M8BMRH */
/* Diagonal top->bottom, left->right masked, replace. */
/* #define M8BMRDLR M8BMRH */
/* Horizontal left->right masked, replace. */
void M8BMRH(void)
{
int i;
lclPortMask = ~lclPortMask; /* set 1 bits to select the dest
rather than the source */
for (i = 0; i <= majorAxisLengthM1; i++)
{
dstPtr = (byte *) *rowTablePtr[0] + dRect.Xmin;
*dstPtr = (((*dstPtr ^ lclPenColor) & lclPortMask) ^
lclPenColor);
dRect.Xmin++;
errTermL += errTermAdjUpL;
if (errTermL >= 0)
{ /* minor axis advance */
errTermL -= errTermAdjDownL;
rowTablePtr[0]++;
}
}
lclPortMask = ~lclPortMask; /* restore the original setting */
return;
}
/* X major top->bottom, right->left masked, replace. */
/* #define M8BMRXMRL M8BMRDRL */
/* Diagonal top->bottom, right->left masked, replace. */
void M8BMRDRL(void)
{
int i;
lclPortMask = ~lclPortMask; /* set 1 bits to select the dest
rather than the source */
for (i = 0; i <= majorAxisLengthM1; i++)
{
dstPtr = (byte *) *rowTablePtr[0] + dRect.Xmin;
*dstPtr = (((*dstPtr ^ lclPenColor) & lclPortMask) ^
lclPenColor);
dRect.Xmin--;
errTermL += errTermAdjUpL;
if (errTermL >= 0)
{ /* minor axis advance */
errTermL -= errTermAdjDownL;
rowTablePtr[0]++;
}
}
lclPortMask = ~lclPortMask; /* restore the original setting */
return;
}
/* Y major top->bottom, left->right masked, XOR. */
/* #define M8BMXYMLR M8BMXV */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -