±â¼ú ÀÚ·á: 262127 - ¸¶Áö¸· °ËÅä: 2007³â 2¿ù 12ÀÏ ¿ù¿äÀÏ - ¼öÁ¤: 2.4

Á¤º¸: Windows CE ºñµð¿À µå¶óÀ̹ö ¼º´É °³¼±: ¼± ±×¸² ÀÛ¾÷

½Ã½ºÅÛ ÆÁº» ¹®¼­ÀÇ ³»¿ëÀº ±ÍÇϰ¡ »ç¿ëÇÏ´Â ¿î¿µ üÁ¦¿Í ´Ù¸¥ ¿î¿µ üÁ¦¿¡ ÇØ´çÇÕ´Ï´Ù. ¹®¼­ ³»¿ë Áß ±ÍÇÏ¿Í °ü·Ã ¾ø´Â ºÎºÐÀº Ç¥½ÃµÇÁö ¾Ê½À´Ï´Ù.

ÀÌ ÆäÀÌÁö¿¡¼­

¸ðµÎ È®´ë | ¸ðµÎ Ãà¼Ò

¿ä¾à

´ëºÎºÐÀÇ Windows CE µð½ºÇ÷¹ÀÌ µå¶óÀ̹ö´Â ÇØ´ç ±×·¡ÇÈ ±âº» ¿£Áø (GPE) µð½ºÇ÷¹ÀÌ µå¶óÀ̹ö´Â ±âº» Çü½ÄÀ» ó¸®ÇÏ´Â ±âº» Á¦°øÇÒ ¼ö ÀÖ½À´Ï´Ù. GPE::Line ¸Þ¼­µå´Â ÁÙ GPELineParms ¹× EGPEPhase µ¥ÀÌÅÍ ±¸Á¶¸¦ Á¦°øÇÏ´Â ¸Å°³ º¯¼ö¸¦ »ç¿ëÇÏ¿© ´ë»ó Ç¥¸é¿¡ ±×¸³´Ï´Ù. ÀÌ ¹®¼­¿¡¼­´Â GPELineParms ¹× EGPEPhase µ¥ÀÌÅÍ ±¸Á¶¸¦ Á¤ÀÇÇÏ°í ¼³¸íÇÕ´Ï´Ù ¾î¶»°Ô GPE ¼±À» ±×¸³´Ï´Ù.

GPE¿¡ ÀÇÇØ Á¦°øµÈ ±âº» µå·ÎÀ×Àº µð½ºÇ÷¹ÀÌ µå¶óÀ̹ö ¼ÒÇÁÆ®¿þ¾î°¡ ¿¡¹Ä·¹ÀÌÆ®µÈ °¡¼ÓÀ» »ç¿ëÇϰųª ±âº» Çϵå¿þ¾î °¡¼ÓÀ» µð½ºÇ÷¹ÀÌ µå¶óÀ̹ö¿¡ ´ëÇÑ Windows CE 2.12 ÀåÄ¡ µå¶óÀ̹ö Kit Àå¿¡¼­ ¼³¸íÇÑ ´ë·Î ¹Ù²ð ¼ö ÀÖ½À´Ï´Ù.

Ãß°¡ Á¤º¸

GPELineParms ±¸Á¶

GPELineParms°¡ ±¸Á¶ÀÔ´Ï´Ù. GPELineParms Ç÷§Æû ÀÛ¼º±â°¡ ÀÌ µð·ºÅ͸®¿¡ ÀÖ´Â Á¤Àǵ˴ϴÙ.
Public\Common\Oak\Inc
GPELineParms GPE ¹× µð½ºÇ÷¹ÀÌ µå¶óÀ̹ö°¡ ¼± ±×¸®±â Á¦¾îÇÏ´Â µ¥ »ç¿ëµË´Ï´Ù. ±¸Á¶Ã¼ÀÇ ¸Å°³ º¯¼ö Áß ÀϺδ ÀÀ¿ë ÇÁ·Î±×·¥ ¶Ç´Â ÇöÀç ÀåÄ¡ ÄÁÅØ½ºÆ®¿¡ Á÷Á¢ Á¦°øµË´Ï´Ù. ³ª¸ÓÁö GPE¿¡ ÀÇÇØ °è»êµË´Ï´Ù.
struct GPELineParms
{
	SCODE 			(GPE::*pLine)(GPELineParms *);
	long				xStart;  //Starting point of line, in X direction
	long				yStart;  //Starting point of line, in Y direction
	int				cPels;  //Length of line in major direction, in pixels
	unsigned long	dM;  //larger of |xStart-Xend| and |yStart-yEnd|, calculated in 1/16ths of a pixel
	unsigned long	dN;  //smaller of |xStart-Xend| and |yStart-yEnd|, calculated in 1/16ths of a pixel
	long				llGamma;  //typically used as the initial starting value for the slope iterator
	int				iDir;  //Octant number for line
	unsigned long	style;  //IN parameter - line attributes (solid or dashed)
	int				styleState;  //state of line style in current path, in pixels
	GPESurf 			*pDst;  //IN parameter - destination surface
	COLOR			solidColor;  //IN parameter brush color
	RECTL			*prclClip;  //clipping rectangle
	unsigned short	mix;  //IN parameter ROP2 values for mark and space
};
GPELineParms ½ºÅ¸ÀÏÀº ¼± ½ºÅ¸ÀÏÀÌ ÀÖ½À´Ï´Ù. ¿µ (0) ÀÇ °ªÀº 0xAAAAAAAA ½ºÅ¸ÀÏÀÇ ÇÑ Çȼ¿ Á¡ (»çÀÌ¿¡ µÎ °³ÀÇ ROP2s ±³´ë·Î ¹Ýº¹µÇ´Â) ¹Ý¸é À̸¦ ½Ç¼± (Áï, ´ÜÀÏ ROP2) ¾Ê¾ÒÀ½À» ÀǹÌÇÕ´Ï´Ù. DrvStrokePath ÇÔ¼ö·Î Àü´ÞµÈ °Íó·³ fl-> plineattrs LA_ALTERNATE Ç÷¡±× 0xAAAAAAAA ½ºÅ¸ÀÏÀ» ÀǹÌÇÕ´Ï´Ù. ¶Ç´Â »ç¿ëÇÒ ¼ö Àִº¹ÀâÇØÁú pstyle ¹× cstyle ¸Å°³ º¯¼ö¸¦ ÆÄ¼± ¶Ç´Â Á¡¼± ½ºÅ¸ÀÏ. ¿¹¸¦ µé¾î, ±ä ´ë½Ã¸¦ ½ºÅ¸ÀÏ-> pParms 0xF0F0F0F0ÀÌ ÀǹÌÇÕ´Ï´Ù.

GPELineParms ÇÔ²² ROP2 °ªÀÔ´Ï´Ù. µÎ ¹ÙÀÌÆ® Ç¥½Ã°¡ ROP2 ¹× ROP2 °ø°£ÀÌ ±¸¼ºµË´Ï´Ù. È¥ÇÕ °ª-> pParms µÎ ¹ÙÀÌÆ® »çÀÌ¿¡ ½ºÅ¸ÀÏ¿¡¼­ °¢ ºñÆ® °ªÀ» ¼±ÅÃÇÕ´Ï´Ù. GPELineParms iDir ÁÙ Bresenham ¾Ë°í¸®Áò ´ç 8 °ª Áß Çϳª¸¦ octant ¹øÈ£ÀÔ´Ï´Ù. octant Ãà Dir X Y-Dir 0 X-ÁÖ + 1 + 1 1 Y ÁÖ + 1 + 1 2 Y ÁÖ-1 + 1 3 X ÁÖ-1 + 1 4 X ÁÖ-1 -1 5 Y ÁÖ-1 -1 6 Y ÁÖ + 1 -1 7 X ÁÖ + 1 -1

EGPEPHASE Çü½Ä ¿­°Å

EGPEPHASE ¿­°ÅÇü Çü½ÄÀÔ´Ï´Ù. EGPEPHASE´Â Ç÷§Æû ÀÛ¼º±â ´ÙÀ½ µð·ºÅ͸®¿¡¼­°¡ Á¤Àǵ˴ϴÙ.
Public\Common\Oak\Inc
enum EGPEPhase
{
	gpeSingle,
	gpePrepare,  //device-specific initialization
	gpeContinue,
	gpeComplete  //device-specific clean up
};

¼± ±×¸² ó¸®

Áغñ ´Ü°è

ÀÀ¿ë ÇÁ·Î±×·¥ Æú¸®¶óÀÎ ¸Þ¼­µå¸¦ È£ÃâÇÒ ¶§ ÁÙ µå·ÎÀ×À» ½ÃÀÛÇÕ´Ï´Ù. GDI´Â Æú¸®¶óÀÎ ¸Þ¼­µå¿¡ È£ÃâÀ» ó¸®ÇÕ´Ï´Ù. GDI Àû¾îµµ µÎ °³ÀÇ ²ÀÁöÁ¡ÀÌ ÀÖ´Â ¹× ¼± ½ºÅ¸ÀÏÀ» nullÀÌ ¾Æ´ÑÁö È®ÀÎÇÕ´Ï´Ù. GDI ´ÙÀ½ GPE DrvStrokePath ÇÔ¼ö¸¦ È£ÃâÇÏ´Â ¶Ç´Â ³ÐÀº ÆæÀ» DrvFillPath ÇÔ¼ö. GDI GPE ¸â¹ö ÇÔ¼ö¸¦ È£ÃâÇÒ ¶§ ÀåÄ¡ ÄÁÅØ½ºÆ®¿¡¼­ µû¶ó Á¤º¸¸¦ Àü´ÞÇÕ´Ï´Ù.
  • Ç¥¸é °³Ã¼
  • °æ·Î °³Ã¼
  • Ŭ¸³ »ç°¢Çü
  • ºê·¯½Ã
  • ROP2 °ª
  • ¼± Ư¼ºÀ» (½Ç¼± ¶Ç´Â ÆÄ¼±)ÀÔ´Ï´Ù.
ÀÌ·¯ÇÑ ¸Å°³ º¯¼ö¸¦ ¼³Á¤Çϰųª ÀÀ¿ë ÇÁ·Î±×·¥ÀÌ ÀÖ´ø ¶Ç´Â ÀÎ½ÄµÈ Æ¯¼º. GPE ÀϺΠÀÔ·ÂµÈ ¸Å°³ º¯¼ö¸¦ »ç¿ëÇÏ¿© GPELineParms ±¸Á¶¸¦ ä¿ó´Ï´Ù.

´ÙÀ½ GPE¿¡ GPELineParms Àü´Þ ¹× gpePrepare EGPEPHASE ¼³Á¤¿¡¼­ Àü´ÞÇÏ´Â µð½ºÇ÷¹ÀÌ µå¶óÀ̹ö°¡ ¼± ÇÔ¼ö¸¦ È£ÃâÇÕ´Ï´Ù. µå¶óÀ̹ö°¡ ±×·Á¾ß ÇÏ´Â ¼±ÀÇ ¼Ó¼ºÀ» °Ë»çÇÕ´Ï´Ù. µå¶óÀ̹ö¿¡¼­ ´ÙÀ½ À̸¦ GPE EmulatedLine ÇÔ¼ö¸¦ »ç¿ëÇϰųª °íÀ¯ÇÑ °¡¼ÓµÈ ÇÔ¼ö »ç¿ëÇÏ¿© Á٠ó¸®ÇÒ ¿øÇÕ´Ï´Ù ¿©ºÎ¸¦ ¼±ÅÃÇÕ´Ï´Ù. °¡¼ÓµÈ ±â´ÉÀ» ¼±ÅÃÇϱâ Àü¿¡ µå¶óÀ̹ö°¡ Çϵå¿þ¾î ¼± ½ºÅ¸Àϰú ROP ó¸®ÇÒ ¼ö ÀÖ´ÂÁö ¿©ºÎ¸¦ È®ÀÎÇØ¾ß ÇÕ´Ï´Ù. S3Trio64 µð½ºÇ÷¹ÀÌ µå¶óÀ̹ö°¡ Ç÷§Æû ÀÛ¼º±â µð·ºÅ͸® Platform\Cepc\Drivers\Display\S3trio64) ¿¡ µå¶óÀ̹ö¸¦ ±âº»ÀûÀ¸·Î EmulatedLine, ÇÔ¼ö Æ÷ÀÎÅ͸¦ ¼³Á¤ÇÏÁö¸¸ Çϵå¿þ¾î °¡¼Ó ºñµð¿À ¸Þ¸ð¸®¿¡ ¸ðµÎ ¹× ROP 0x0D0D »ç¿ëÇÏ´Â ¼±ÀÇ ¼±ÅÃÇÕ´Ï´Ù. ´ÙÀ½ »ùÇà Äڵ忡¼­´Â À̸¦ º¸¿© ÁÝ´Ï´Ù.

#ifdef ENABLE_ACCELERATION
	if( phase == gpeSingle || phase == gpePrepare )
	{
		pLineParms->pLine = EmulatedLine;
//		pLineParms->pLine = (SCODE (GPE::*)(struct GPELineParms *))EmulatedLine;
		if( pLineParms->pDst->InVideoMemory() && pLineParms->mix == 0x0d0d )
		{
			SelectSolidColor( pLineParms->solidColor );
			pLineParms->pLine = (SCODE (GPE::*)(struct GPELineParms *))AcceleratedSolidLine;
		}
//		if( pLineParms->mix == 0x0B07 )	   .. dotted line

	}
#else
		pLineParms->pLine = EmulatedLine;
#endif
¶ÇÇÑ Áغñ ´Ü°è¿¡¼­ µå¶óÀ̹ö¸¦ ¼±ÅÃÀûÀ¸·Î ¼±ÅÃÇÑ »öÀ¸·Î Çϵå¿þ¾î ·¹Áö½ºÅ͸¦ ÃʱâÈ­ÇÏ´Â °°Àº Ãß°¡ 󸮸¦ ¼öÇàÇÒ ¼ö ÀÖ½À´Ï´Ù. Áغñ ´Ü°è ÈÄ ÄÁÆ®·ÑÀ» GPE DrvStrokePath ÇÔ¼ö¸¦ ¹ÝȯÇÕ´Ï´Ù.

DrvStrokePath °¢ ¼¼±×¸ÕÆ® ±×¸®±â °ü¸®ÇÕ´Ï´Ù.

µå¶óÀ̹öÀÇ ¼± ±×¸®±â ÇÔ¼ö´Â °áÁ¤ÇÑ ÈÄ ´ÙÀ½ ·çÇÁ üũ DrvStrokePath ÇÔ¼ö¿¡ Àü´ÞÇÕ´Ï´Ù. ÀÌ·¯ÇÑ ·çÇÁ¸¦ Áß ¼ø¼­°¡ Çϵå¿þ¾î Ŭ¸®ÇÎ ÃÖ´ëÈ­Çϱâ À§ÇÑ °ÍÀÔ´Ï´Ù. ÀϹÝÀûÀ¸·Î °æ·Î¸¦ ¹æ±Ý Áß Çϳª¿¡ Ŭ¸®ÇÎ »ç°¢Çü¿¡ ÇØ´çÇÕ´Ï´Ù.
	for( each clip rectangle in clip list )
	{
		for( each line segment in stroke path )
		{
			calculate line segment clipped to current cliprect

			pParms->pLine(pParms);
		}
	}
DrvStrokePath ÇÔ¼ö¸¦ Ŭ¸®ÇÎ »ç°¢ÇüÀ¸·Î ¼± ¼¼±×¸ÕÆ®¸¦ Ŭ¸³À». °³Ã¼ÀÇ ¼± ÇÔ¼ö¸¦ ¼öÇàÇÏ·Á¸é µå¶óÀ̹ö¿¡ ´ëÇÑ ÇÊ¿äÇÏÁö ¾Ê½À´Ï´Ù. »ç½Ç, µå¶óÀ̹ö°¡ ½ÇÁ¦·Î Áغñ ´Ü°è¿¡¼­ À¯È¿ÇÑ Å¬¸®ÇÎ Á¤º¸°¡ ¾øÀ¸¹Ç·Î Ŭ¸®ÇÎ ¸øÇÕ´Ï´Ù. Ŭ¸®ÇÎ »ç°¢Çü ¶Ç´Â Àüü ½ÃÄö½º¸¦ ´ÜÀÏ Áغñ È£Ãâ¿¡ ´ëÇÑ Å¬¸®ÇÎ »ç°¢Çü ÀÖÀ» ¼ö ÀÖ½À´Ï´Ù.
  • ±âº» ¼± ±×¸² ÇÔ¼ö EmulatedLine.

    EmulatedLine ÇÔ¼ö´Â GPE ¼± ±×¸®±â ÇÔ¼öÀÔ´Ï´Ù. EmulatedLine ´ÙÀ½ ¾Ë°í¸®ÁòÀ» ±¸ÇöÇÏ´Â:
    	long accum = (long)(pParms->dN) + pParms->llGamma;
    	long axstp = (long)(pParms->dN);
    	long dgstp = (long)(pParms->dN) - (long)(pParms->dM);
    
    for( remainingPels = pParms->cPels; remainingPels; remainingPels-- )
    	{
    		if( axstp )		//  ( axstp == 0 implies horizontal or vertical line being drawn )
    		{
    			if( accum < 0 )
    			{
    				accum += axstp;
    			}
    			else
    			{
    				increment_in_minor_direction;
    				accum += dgstp;
    			}
    		}
    		increment_in_major_direction;
    	}
    EmulatedLine »ç¿ë ±ÇÀå

    EmulatedLine ÇÔ¼ö¸¦ ´ë°¢¼±À» ó¸®ÇÒ ¼ö ÀÖ½À´Ï´Ù. ´ë°¢¼± ºñ±³Àû µå¹´´Ï´Ù ¹× ÀϹÝÀûÀ¸·Î °¡¼Ó ¼ö Çʿ䰡 ¾ø½À´Ï´Ù. ¸¶Âù°¡Áö·Î, ¼± ½ºÅ¸ÀÏ µ¥ »ó´çÈ÷ °ÅÀÇ ¾ø½À´Ï´Ù. ¹°·Ð ÀÌ °æ¿ì °°ÀÌ ±âº» ÇÁ·Î¼¼¼­ EmulatedLine ÇÔ¼ö¸¦ »ç¿ëÇØ¾ß ÇÕ´Ï´Ù.

  • µå¶óÀ̹ö ±âº» ±â´É ¹Ù²Ù±â ¼ö ÀÖ½À´Ï´Ù.

    ¼± ±×¸®±â Çϵå¿þ¾î °¡¼ÓÀ» Áö¿øÇÏ´Â ÀåÄ¡ µå¶óÀ̹ö¸¦ ±âº» EmulatedLine ÇÔ¼ö¸¦ ¹Ù²Ù·Á¸é °¡¼ÓµÈ ÁÙ ÇÔ¼ö¸¦ ±¸ÇöÇÒ ¼ö ÀÖ½À´Ï´Ù. ¶Ç´Â µå¶óÀ̹ö°¡ ±âÁ¸ ÇÔ¼ö¸¦ È£ÃâÇÒ ¶Ç´Â ¼± ±×¸®±â ó¸®ÇÒ »õ ¼ÒÇÁÆ®¿þ¾î ¿¡¹Ä·¹À̼ÇÀ» ÇÔ¼ö¸¦ ¸¸µé ¼ö ÀÖ½À´Ï´Ù. ´Ü»ö ä¿ì±â ºí·Ï Àü¼Û (BLT) °¡¼Ó ÀÖ´Â Çϵå¿þ¾îÀÇ ±¸ÇöµÈ °æ¿ì ºÎÀûÀýÇÑ ¼± ±×¸®±â °¡¼ÓÀ» »ç¿ëÇÒ ¼ö ÀÖ´Â °æ¿ì¿¡µµ ´ÙÀ½ ÀÌ °¡·Î ¹× ¼¼·Î ÁÙÀ» °¡¼ÓÈ­Çϱâ À§ÇÑ »ç¿ëÇØ¾ß ÇÕ´Ï´Ù.

    Çϵå¿þ¾î °¡¼ÓÀÇ °¡·Î ¹× ¼¼·Î ¶óÀÎ Àü¿ë

    ¼± ±×¸®±â Çϵå¿þ¾î ¶Ç´Â ä¿ì±â blt Çϵå¿þ¾î¸¦ »ç¿ëÇÏ¿© Windows CE ±×¸®´Â ¼±ÀÇ ´ëºÎºÐÀÇ ±¸¼ºÇÏ´Â °¡·Î ¹× ¼¼·Î ÁÙÀ» °¡¼ÓÈ­ÇÒ ¸ðµç ´ë°¢¼± ¹× ½ºÅ¸ÀÏÀÌ Àû¿ëµÈ ÁÙ ¿¡¹Ä·¹ÀÌÆ®Çϱâ À§ÇØ ´ëºÎºÐÀÇ »óȲ¿¡¼­ ±ÇÀåµÇ´Â ¹æ¹ýÀÔ´Ï´Ù. °¡·Î ¹× ¼¼·Î ¼±, ¿µ (0) DN ¸Å°³ º¯¼ö°¡ µÇ¸ç °èÁ¤ÀÌ ¾ø´Â °ÔÀÓ ¸Å°³ º¯¼ö ¹× ¿À·ù ¿ë¾î´Â llgamma sub-pixel Á¤º¸ÀÇ ¼öÇàÇØ¾ß ÇÕ´Ï´Ù.
    if( pLineParms->dN == 0 )
    {
    	// Line is vertical or horizontal
    	// Use fill-blt or h/w line to draw a line starting at
    	// pLineParms->xStart, pLineParms->yStart
    	// in the direction specified by pLineParms->iDir
    	// for a total of pLineParms->cPels pixels
    }
    else
    {
    	return EmulatedLine( pLineParms );	// use S/W for diagonal line
    }
Çϵå¿þ¾î °¡¼Ó ´ë°¢¼± ÁÙ

sub-pixel Á¤º¸¸¦ GPELineParms ¿À·ù ¿ë¾î´Â llgamma Çʵ忡 µé¾î ´ë°¢¼±À» DN ¸Å°³ º¯¼ö, °ÔÀÓ ¸Å°³ º¯¼ö °ª¿¡ ´ëÇÑ Âü°í Áß¿äÇÕ´Ï´Ù. Çϵå¿þ¾î ¼± ±×¸®±â ÃʱâÈ­ÇÏ´Â µî·ÏÇÒ ¶§ ÀÌ Á¤º¸¸¦ »ç¿ëÇØ¾ß ÇÕ´Ï´Ù. ±×·¸Áö ¾ÊÀº °æ¿ì¿¡´Â Ŭ¸®Çε˴ϴ٠´ë°¢¼±Àº À߸ø ±×·ÁÁý´Ï´Ù. ´ë°¢¼± ÁÙÀÌ ÀÖ´Â ´Ù¸¥ â À§¿¡ Àִ âÀ» À̵¿ÇÒ ¶§ ÀÌ È¿°ú´Â »ó´çÈ÷ ÇöÀúÇÏ°Ô µÉ ¼ö ÀÖ½À´Ï´Ù.

Áغñ ´Ü°è¿¡¼­ µå¶óÀ̹öÀÇ À̸¦ °¡¼ÓÈ­ÇÒ ¼ö °æ¿ì È®ÀÎÇÏ·Á¸é ÁÙ ¸Å°³ º¯¼öÀÇ ÀϹÝÀûÀÎ °Ë»ç¸¦ ¼öÇàÇÕ´Ï´Ù. °¡¼Ó ÇÔ¼ö¸¦ È£ÃâÇÒ ¶§ µå¶óÀ̹ö°¡ Ãß°¡ À¯È¿¼º °Ë»ç¸¦ ¼öÇàÇØ¾ß ÇÒ ¼öµµ ÀÖ½À´Ï´Ù. µå¶óÀ̹öÀÇ °¡¼ÓµÈ ÇÔ¼ö¸¦ È£ÃâÇÒ ¶§ À̸¦ ƯÁ¤ Ŭ¸®ÇÎ ¿µ¿ªÀ» Ŭ¸®ÇÎÇÒ Æ¯Á¤ °æ·Î ¼¼±×¸ÕÆ®ÀÇ ¶§¹®ÀÔ´Ï´Ù. µå¶óÀ̹ö°¡ ¿¹¸¦ µé¾î, ¼± ¼¼±×¸ÕÆ® ±æÀÌ ÇØ´ç Çϵå¿þ¾î ·¹Áö½ºÅ͸¦ ¿À¹öÇ÷Π¹«È¿È­µÇÁö ¾Êµµ·Ï, ÇØ¾ß ÇÕ´Ï´Ù. ¿¹¸¦ µé¾î, S3Trio64 µå¶óÀ̹ö°¡ ÀÌ Â÷´Ü ¼öÁØÀ» µû¸£´Â Äڵ忡¼­ ÀÌ·ç¾îÁý´Ï´Ù. °ÔÀÓ ¹× DN °ªÀº 1/16ths ÀÖ´Â Çȼ¿ ¿ø·¡ Ç¥ÇöµË´Ï´Ù ¶§¹®¿¡ ÀåÄ¡ÀÇ Çϵå¿þ¾î ±â¿ï±â ¹Ýº¹±â¸¦ ¿øÇÏ´Â ¼± ¼¼±×¸ÕÆ®¸¦ ±×¸±¿¡ ´ëÇÑ ÀÌ·¯ÇÑ ±æÀ̰¡ À¯ÁöÇÒ ¼ö ÀÖ¾î¾ß ÇÕ´Ï´Ù. Çϵå¿þ¾î ¸¹Àº Àüü È­¸éÀ» °¡·ÎÁú·¯ ´ë°¢¼±À» ±×¸± ¼ö ÀÖµµ·Ï ¼³°èµÇ¾úÁö¸¸ °ÔÀÓ ¹× DN °ª (¶Ç´Â »óÀÀÇÏ´Â) Çȼ¿ ´ÜÀ§·Î Ç¥ÇöÇÒ ¼ö ¿¹»óÇÕ´Ï´Ù. ÀÌ·¯ÇÑ Ä«¿îÅÍ´Â GPE sub-pixel Á¤¹Ðµµ »ç¿ëÇϹǷÎ, 4 (4) ÀÌ»óÀÇ ºñÆ®°¡ ÇÕ´Ï´Ù. ªÀº ÁÙ¿¡ ´ëÇÑ ¹®Á¦°¡ °ÍÀº ¾Æ´ÏÁö¸¸ ±ä ÁÙÀ» ÁÙ ¹Ù·Î ÀϺΠ°¡ÀåÀÚ¸®¸¦ È­¸é ¶Ç´Â ½ÉÁö¾î ¸î ¹ø ¾à ÁÙ ¹Ù²Þ ÇØÁ¦ zinging ÀÎÇÑ ·¹Áö½ºÅÍ ÀÌ·¯ÇÑ °ªÀÌ ¿À¹öÇÃ·ÎµÉ ¼ö ÀÖ½À´Ï´Ù.

EmulatedLine ÇÔ¼ö¸¦ »ç¿ëÇÏ¿© ±ä ´ë°¢¼±À» ·»´õ¸µÇÏ´Â µ¥ °É¸®´Â ½Ã°£À» Áß¿äÇÏÁö ¾ÊÀ¸¹Ç·Î ´ë°¢¼±À» ÈçÇÏ°Ô µ¿¾È ¿À·¡ ´ë°¢¼±À» ¸Å¿ì µå¹´´Ï´Ù.
int errTerm = (int)pLineParms->dN + (int)pLineParms->llGamma - ( ( command & PLUS_X ) ? 0 : 1 );

	if(
		( pLineParms->dN > 4090 ) ||
		( pLineParms->dM-pLineParms->dN > 4090 ) ||		// remember dM >= dN
		( errTerm > 4090 ) ||
		( errTerm < -4090 ) )
	{
		RetVal = EmulatedLine( pLineParms );	// The hardware DDA would overflow so use the emulation
	}
	else
	{
		WaitForFIFO(7); // seven parameters required
		reg_ALT_CURXY = ((pLineParms->xStart + ((S3Trio64Surf *)(pLineParms->pDst))->Left()) << 16 ) |
						(pLineParms->yStart + ((S3Trio64Surf *)(pLineParms->pDst))->Top());
		reg_MAJ_AXIS_PCNT = (pLineParms->cPels-1);
		reg_ALT_STEP = (((pLineParms->dN-pLineParms->dM)/*&0x3FFF*/)<<16) | (pLineParms->dN /*&0x3FFF*/);
		reg_ERR_TERM = errTerm /*&0x3FFF*/;
		reg_CMD = command;
		RetVal = S_OK;
	}

¿Ï·á ´Ü°è

¼± ±×¸®±â DrvStrokePath ÇÔ¼ö°¡ ¿Ï·áµÈ ÈÄ DrvStrokePath ¼ö gpeComplete EGPEphase ÁýÇÕÀ» Àü´ÞÇÏ¿© ÀÌ ½Ã°£À» ´Ù½Ã µå¶óÀ̹öÀÇ ¼± ÇÔ¼ö¸¦ È£ÃâÇÕ´Ï´Ù. µå¶óÀ̹ö°¡ Çϵå¿þ¾î¿¡ ÀÇÇØ ÀÌ ½ÃÁ¡¿¡¼­ ÇÊ¿äÇÑ ¸ðµç ¼± ±×¸®±â »óÅ Á¤¸®ÇØ¾ß ÇÕ´Ï´Ù.

º» ¹®¼­ÀÇ Á¤º¸´Â ´ÙÀ½ÀÇ Á¦Ç°¿¡ Àû¿ëµË´Ï´Ù.
  • Microsoft Windows CE Platform Builder 2.11
  • Microsoft Windows CE Platform Builder 2.12
  • Microsoft Encarta Reference Suite 2001
Ű¿öµå:?
kbmt kbinfo KB262127 KbMtko
±â°è ¹ø¿ªµÈ ¹®¼­±â°è ¹ø¿ªµÈ ¹®¼­
Áß¿ä: º» ¹®¼­´Â Àü¹® ¹ø¿ª°¡°¡ ¹ø¿ªÇÑ °ÍÀÌ ¾Æ´Ï¶ó Microsoft ±â°è ¹ø¿ª ¼ÒÇÁÆ®¿þ¾î·Î ¹ø¿ªÇÑ °ÍÀÔ´Ï´Ù. Microsoft´Â ¹ø¿ª°¡°¡ ¹ø¿ªÇÑ ¹®¼­ ¹× ±â°è ¹ø¿ªµÈ ¹®¼­¸¦ ¸ðµÎ Á¦°øÇϹǷΠMicrosoft ±â¼ú ÀÚ·á¿¡ ÀÖ´Â ¸ðµç ¹®¼­¸¦ Çѱ۷ΠÁ¢ÇÒ ¼ö ÀÖ½À´Ï´Ù. ±×·¯³ª ±â°è ¹ø¿ª ¹®¼­°¡ Ç×»ó ¿Ïº®ÇÑ °ÍÀº ¾Æ´Õ´Ï´Ù. µû¶ó¼­ ±â°è ¹ø¿ª ¹®¼­¿¡´Â ¸¶Ä¡ ¿Ü±¹ÀÎÀÌ Çѱ¹¾î·Î ¸»ÇÒ ¶§ ½Ç¼ö¸¦ ÇÏ´Â °Íó·³ ¾îÈÖ, ±¸¹® ¶Ç´Â ¹®¹ý¿¡ ¿À·ù°¡ ÀÖÀ» ¼ö ÀÖ½À´Ï´Ù. Microsoft´Â ³»¿ë»óÀÇ ¿À¿ª ¶Ç´Â Microsoft °í°´ÀÌ ÀÌ·¯ÇÑ ¿À¿ªÀ» »ç¿ëÇÔÀ¸·Î½á ¹ß»ýÇÏ´Â ºÎ Á¤È®¼º, ¿À·ù ¶Ç´Â ¼ÕÇØ¿¡ ´ëÇØ Ã¥ÀÓÀ» ÁöÁö ¾Ê½À´Ï´Ù. Microsoft´Â ÀÌ·¯ÇÑ ¹®Á¦¸¦ ÇØ°áÇϱâ À§ÇØ ±â°è ¹ø¿ª ¼ÒÇÁÆ®¿þ¾î¸¦ ÀÚÁÖ ¾÷µ¥ÀÌÆ®Çϰí ÀÖ½À´Ï´Ù.