⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 m8b_lin.c

📁 nucleus 文件系统,内核和彩色图形系统,在小系统上非常好用
💻 C
📖 第 1 页 / 共 3 页
字号:
	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 + -