¾È³çÇϼ¼¿ä~ ÀÌÁØ°ï(LeeChen) ÀÔ´Ï´Ù. ¿äÁò¿¡ °ÔÀÓÀ» Á¦ÀÛÇϴµ¥ ÀÖ¾î µµ½º¿ë°ú À©µµ¿ìÁî¿ëÀ̶ó´Â ºÐ¾ß·Î ³ª´©¾îÁ® ÀÖ´õ±º¿ä. ¿äÁò ±¹»ê °ÔÀÓÀº ¿ö³« ¶Ù¾î³­ °ÍµéÀÌ ¸¹¾Æ¼­ °ÔÀÓ ½ÃÀå¿¡ ³ª°¡¼­ ¾î¶² °ÔÀÓÀ» »ç¾ß ÇÒÁö ¸ð¸£°Ú´õ±º¿ä~ °ÔÀÓÀº ¸¸µå´Â Àç¹Ìµµ ÀÖÁö¸¸ ½ÇÁ¦·Î Á¦À۵Ǿî ÀÖ´Â °ÔÀÓÀ» Áñ±æÁÙ ¾Æ´Â °ÔÀÓ ¸ÞÀÌÄ¿µéÀÌ µÇ¾úÀ¸¸é ÇÕ´Ï´Ù. »ç½Ç 94³âµµ¿¡ ½è´ø ½ºÅ©¸³ÅÍ¿¡ °üÇÑ ±ÛÀ» °è¼Ó À̾°¡¾ß Çϴµ¥ Á¦°¡ ½Ã°£ÀÌ ¾ø´Ùº¸´Ï(ÇΰèÀΰ¡?) ´ë½Å ´ÙÀÌ·ºÆ®¿¡ °üÇÑ ±Û·Î ´ë½Å ÇÏ·Á°í ÇÕ´Ï´Ù. ¾ó¸¶Àü¿¡ DirectX 5.0ÀÌ ³ª¿ÔÁÒ? 3D±â´ÉÀÌ ¾öû³ª°Ô ÁÁ¾Æ Á³´õ±º¿ä ±â´ÉÇâ»óÀÌ ÀÌÁ¨ 3Â÷¿ø °ÔÀÓÀ» °ÔÀÓ ¸ÞÀÌÄ¿¶ó¸é ´©±¸³ª ÇÒ¼ö ÀÖ´Â ¼öÁØÀ̴ϱî¿ä~ ÀÏ´Ü ´ÙÀÌ·ºÆ® ¿¢½º¶ó´Â °³¹ßÅøÀ» »ç¿ëÇÏ·Á¸é ºñÁê¾ó 2.0ÀÌ»óÀÌ ÀÖ¾î¾ß ÇÕ´Ï´Ù. (´ç¿¬ 32ºñÆ® °³¹ßÅøÀ» ¶æÇÏ´Â °ÍÀÌ°ÚÁÒ~) ¶Ç´Â º¼·£µåÀÇ ºô´õ¶ó´Â °ÍÀ» ¾²½Ã¸é µË´Ï´Ù. ÀÏ´Ü ´ÙÀÌ·ºÆ®(ÀÌÇÏ ÆíÀÇ»ó ´ÙÀÌ·ºÆ®¶ó°í¸¸ Ç¥½ÃÇÏ°ÚÀ½)¸¦ ¼³Ä¡ÇÏ °í ³ª¸é »ùÇÃÀ̶ó´Â µð·ºÅ丮·Î °¡¼­ °¬°¡Áö µ¥¸ð¸¦ º¸½Ê½Ã¿ä? ¾Æ´Ï ÀÌ·²¼ö°¡? ¶Ç´Â ÀÌ°Ô¹¹¾ß? ÀÌ°Í ¹Û¿¡ ¾ÈµÇ? ÇÏ´Â µîµîÀÇ ¿© ·¯°¡Áö Ç¥ÇöÀ» ÇϽÇÅÙµ¥... ¿ì¼± Foxbear¶ó´Â ÇÁ·Î±×·¥¿¡´Â 2D¿¡¼­ Ç¥ÇöµÇ´Â ¸ðµç ±â¹ýµéÀÌ µé¾î ÀÖ´Ù°í ÇÒ¼ö ÀÖ´õ±º¿ä~ (¸¹Àº ¿¹Á¦¸¦ Âü°í ÇϽÉÀÌ ÁÁÀ» µí...) ¸ÕÀú Âü°í ¼­ÀûÀ» º¸½Ã·Á¸é... 1. ÀÚü ¿Â¶óÀÎ ¸Þ´º¾ó (´ç¿¬ ¿µ¹®ÀÌÁÒ~ ¹ø¿ª °¡´ÉÇÑÀÚ¸¸...^^;) 2. Windows 95 Game °³¹ßÀÚ °¡À̵å - µµ¼­ÃâÆÇ ¿¡ÇÁ¿ø 3. À©µµ¿ì 95¿ë Game SDK Àü·« °¡À̵å - Á¤º¸¹®È­»ç 4. À©µµ¿ì API ¹ÙÀ̺í I, II - »ý°¢¾È³² 5. À©µµ¿ì ÇÔ¼ö ·¹ÆÛ·±½º »ó,Áß,ÇÏ (2¸¸8õ¿ø Â¥¸® 3±ÇÀΰ¡? - ¿ª½Ã ±â¾ï¾È³²) 6. Inside Visual C++ 7. MFC °ü·Ã Ã¥ÀÚ 8. ±âŸ À©µµ¿ìÁî °ü·Ã Ã¥ÀÚ¹× Âü°í ÇÒ¸¸ÇÑ Ã¥µé ¿ì¿Í~ ¸¹ÁÒ? Àü À§¿¡¼­ ¸ðµç Ã¥À» ÀÐ¾î º¸Áø ¸øÇßÁö¸¸...^^; Âü°í´Â Ç׽à ÇÏ°í ÀÖ½À´Ï´Ù. Ã¥À» ÆÄ´Â »ç¶÷ÀÌ ¾Æ´Ï¹Ç·Î µµ¼­°üÀ̳ª ¼­Á¡¿¡¼­ Àá½Ã º¸½Ã°Å³ª Âü°í Çϱâ À§ÇØ º¹»ç³ª ÂüÁ¶ Çϼ¼¿ä~ ±»ÀÌ »ç½Ç ºÐÀº »ç½Ã±¸¿ä~ (ÇÁ·Î±×·¡¸Ó¶ó¸é Ã¥¿¡ ¾²´Â µ·Àº ¾Æ±î¿ö ÇÏ¸é ¾ÈµÇ°ÚÁÒ~) º»·ÐÀ¸·Î µé¾î°¡ÁÒ~ ±¦È÷ Ã¥¿¡ °üÇÑ À̾߱⸸ ¸¹ÀÌ ´Ã¾î ³õÀºµí..--; 1. ºñÆ®¸ÊÀ» Ãâ·ÂÇÏ´Â ¸ð½Äµµ ¦£¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¤ ¦¢ À©µµ¿ì »ý¼º, ÃʱâÈ­ ÇÑ´Ù. ¦¢ ¦¦¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¨¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¥ ¦£¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦ª¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¤ ¦¢ DirectDrawÀÇ ÀÎÅÍÆäÀ̽º ¦¢ ¦¦¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¨¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¥ ¦£¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦ª¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¤ ¦¢ Off ScreenÀ¸·Î ºñÆ®¸Ê º¹»ç ¦¢ ¦¦¦¡¦¡¦¡¦¡¦¨¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¨¦¡¦¡¦¡¦¥ ¦£¦¡¦¡¦¡¦¡¦ª¦¡¦¡¦¡¦¤ ¦£¦¡¦¡¦¡¦ª¦¡¦¡¦¡¦¤ ¦¢ ½ºÇÁ¶óÀÌÆ® Blt ¦¢ ¦¢ ¹è°æ Blt ¦¢ < - ÈÄ¸é ¹öÆÛ·Î ¦¦¦¡¦¡¦¡¦¡¦¨¦¡¦¡¦¡¦¥ ¦¦¦¡¦¡¦¡¦¨¦¡¦¡¦¡¦¥ º¸³»´Â °úÁ¤ ¦£¦¡¦¡¦¡¦¡¦ª¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦ª¦¡¦¡¦¡¦¤ ¦¢ ½ÇÁ¦ º¸ÀÌ´Â È­¸éÀ¸·Î Fliping ¦¢ ¦¦¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¥ ±×¸² 1 : ´ÙÀÌ·ºÆ® ¾×½º Ãâ·Â °úÁ¤ ¸ð½Äµµ À§¿¡¼­ º¸¸é ÀÎÅÍÆäÀ̽º ÇÏ´Â ºÎºÐ¿Ü¿¡´Â µµ½º¿¡¼­ °ÔÀÓÀ» Á¦ÀÛÇÏ´Â °úÁ¤°ú Èí»çÇÏ´Ù°í º¼¼ö ÀÖÁÒ~ »ç½Ç ÀÎÅÍÆäÀ̽º ºÎºÐÀº ÀÚ½ÅÀÇ ¶óÀ̺귯¸®¸¦ »ç¿ëÇÏ´Â ºÎºÐÀ̶ó°í »ý°¢Çصµ µÉ°Ì´Ï´Ù. 2. DirectDrawÀÇ µ¥ÀÌÅÍ ½ºÆ®·°ÃÄ ´ÙÀÌ·ºÆ®¸¦ »ç¿ëÇϱâ À§Çؼ± Å«Áö¸·ÇÑ ±¸Á¶Ã¼µéÀ» ¾Ë¾Æ¾ß ÇÑ´Ù. À̹ø¿¡´Â ±× ±¸Á¶¸¦ ¾Ë±â À§ÇØ ºÐ¼®À» Çغ¸ÀÚ. ÀÚ¼¼ÇÏ°Ô´Â ÇÏÁö ¾Ê°í ´ë°­ ÀÌ·¸´Ù°í Á¤ÀǸ¸ ÇÏ°Ú´Ù. ¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡ DDCAPS ¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡ ºñµð¿À Ä«µåÀÇ »óŸ¦ È®ÀÎ¹× Ã¼Å©ÇÑ´Ù. ¿¹) ¸Þ¸ð¸®ÀÇ ¾ç, Çϵå¿þ¾îÀÇ ´É·Â(3D) ¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡ DDRVAL ¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡ DirectDraw ÇÔ¼öµéÀÌ ¹ÝȯÇÏ´Â °ªÀ» ¶æÇÑ´Ù. ¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡ DDSCAPS ¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡ DDCAPS¿Í °ÅÀÇ ºñ½ÁÇѵ¥ DDCAPS´Â Çϵå¿þ¾îÀÇ ±â´ÉÀ» üũÇÏ´Â °ÍÀ̶ó¸é ÀÌ°ÍÀº ¼ÒÇÁÆ®¿þ¾îÀÇ ±â´ÉÀ» üũÇÑ´Ù. Áï, DirectDrawSurfaceÀÇ ´É·ÂÀ» üũÇÑ´Ù. ¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡ DDSURFACEDESC ¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡ »ý¼ºÇÑ °¢°¢ÀÇ Ç¥¸é(¶Ç´Â ¹öÆÛ)¿¡ ´ëÇÑ Off ScreenÀ» ¶æÇÑ´Ù. À×? ÀÌ°ÍÀÌ ÀüºÎÀΰ¡? ÀÏ´Ü Draw¿¡ °üÇÑ °ÍÀ» ´Ù·çµµ·ÏÇÏ ±â·Î ÇÏ°í ÀÌ°ÍÀÌ ¿©±â¼­ ¸¶Ä¡°í... 3. DirectDrawÀÇ »ý¼º ±×·³ ½ÇÁ¦·Î DirectDraw¸¦ ¾î¶»°Ô ÀÎÅÍÆäÀ̽º ÇÏ°í ÃʱâÈ­ ÇÏ´ÂÁö ¾Ë¾Æ º¾½Ã´Ù. ¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡ HRESULT DirectDrawCreate(GUID FAR *lpGUID, LPDIRECTDRAW FAR *lplpDD, IUnknown FAR *pUnkOuter) ¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡ À©µµ¿ìÁî °ü·Ã ÇÔ¼ö¸¦ º¸¸é Create°ü·Ã ÇÔ¼ö¸¦ ¸¹À̺¼¼ö ÀÖ½À´Ï´Ù. ´ÙÀÌ·ºÆ®µµ ºñ½ÁÇÑ ¹æ½ÄÀ» ¾²´Âµ¥ µ¥ºÎºÐ ÃʱâÈ­ ¶Ç´Â »ý¼ºµîÀ» ÇÒ¶§ ¾²ÀÌ´Â ÇÔ¼öµéÀÌ Create¶ó´Â ºÎºÐÀÌ ¸í½ÃµÇ¾î ÀÖ½À´Ï´Ù. ±×·³ À§ÀÇ ÇÔ¼öÀÇ ÀÎÀÚµéÀº ¹«¾ùÀ» ¶æÇÒ±î¿ä? lpGUID´Â µð½ºÇ÷¹ÀÌ µð¹ÙÀ̽º¸¦ ¶æÇÕ´Ï´Ù. ÀÌ°ÍÀÌ ¹«½¼ ¶æ À̳ı¸¿ä? È­¸é¿¡ ³ªÅ¸³ª±â À§ÇÑ ÀåÄ¡¸¦ ¶æÇÑ´Ù´Â À̾߱âÁÒ º¸Åë ÀÌ°ªÀÌ NULLÀ̸é GDI¿¡ °øÀ¯µÈ µð½ºÇ÷¹À̸¦ ¶æÇÕ´Ï´Ù lpDD´Â DirectDraw ÀÎÅÍÆäÀ̽º¸¦ À§ÇÑ Æ÷ÀÎÅ͸¦ °¡¸®Å°°í, ¸¶Áö¸· ÀÎÀÚ´Â ÇâÈÄ »ç¿ëµÇ±â À§ÇØ ¿¹¾àÇصР°ÍÀ̶ó°í ÇÕ´Ï ´Ù. º¸Åë NULLÀ̶ó°í ÇÏ¸é µË´Ï´Ù. LPDIRECTDRAW lpDD; HRESULT ddrval; ddrval = DirectDrawCreate(NULL, &lpDD, NULL); if(ddrval != DD_OK) { return FALSE; } ¾ÆÁÖ °£´ÜÇÏÁÒ? OLE COM¿¡¼­ ¹ÝȯµÇ´Â ÇüÀº HRESULT¸¦ »ç¿ë ÇÕ´Ï´Ù. ¿À·ù°¡ ¹ß»ýÇÏ¸é ½Å¼ÓÇÑ Ã³¸®¸¦ À§Çؼ­ HRESULT¸¦ »ç¿ëÇÕ´Ï´Ù. À§ÀÇ ¿¹Á¦´Â »ý¼ºÇÏ°íÀÚ ÇÏ´Â DirectDraw °´Ã¼¸¦ ¼±¾ðÇÏ´Â °£´ÜÇÑ ¿¹Á¦ ÀÔ´Ï´Ù. /////////////////////////////////////////////////////////////// ÀÏ´Ü ¿À´ÃÀº ¿©±â±îÁö ÀÔ´Ï´Ù. °ð (Á¶¸¸°£) µÎ¹ø° ±ÛÀ» ¿Ã¸® µµ·Ï ÇÏ°Ú½À´Ï´Ù. ¸¹Àº ºÐµé²² Âü°í°¡ µÇ¾úÀ¸¸é ÇÏ´Â ¹Ù·¥À¸·Î Àû¾îº¸¾Ò½À´Ï´Ù. ¼º³²¿¡¼­ ¿Ü·Î¿òÀ» ´Þ·¡¸ç.... ÀÌÁØ°ï(LeeChen) µå¸². #1384 ¼­¼ºÄ¥ (ssc7 ) [°­ÁÂ] < LeeChen> À©µµ¿ì °ÔÀÓÁ¦ÀÛ [2] 09/02 22:37 183 line ¾È³çÇϼ¼¿ä~ ÀÌÁØ°ï(LeeChen) ÀÔ´Ï´Ù. Áö³­¹ø¿¡ ¾îµð±îÁö Çß´õ¶ó....^^; ÀÌ°÷¿¡ °¡²û¾¿ µé·Á º¸Áö¸¸ ¿äÁò °ø¸ðÀü¶§¹®¿¡ ±×·±Áö ¹«Ã´À̳ª È°±â ÀÖ¾î º¸ÀÔ´Ï´Ù. ¿À´ÃÀº À©µµ¿ìÁî·Î °ÔÀÓÀ» Á¦ÀÛÇØ º¸´Â µÎ¹ø° ½Ã°£ Áñ°Ì°Ô Á¦ ÀÛÇØ º¾½Ã´Ù. º¸Åë µµ½º¿ë °ÔÀÓÀ» Á¦ÀÛÇÒ¶§´Â Çϵå¿þ¾îÀûÀÎ °ÍÀ» °³¹ßÇØ¾ß ÇÏ °Å³ª (¼Óµµ ¹®Á¦·Î...) »ó¾÷ÀûÀÎ ¶óÀ̺귯¸®¸¦ »ç¼­ Á¦ÀÛÇÏ´Â °æ¿ì°¡ ´Ù¼ö¿´À» °Ì´Ï´Ù. ±×¸®°í, ¸ÖƼ Å×½ºÅ·À» Çϱâ À§ÇÑ ÀÚ±¸Ã¥À» ³»³õ±âµµ ÇÏ¿´ÁÒ~ ´ç¿¬ ÀÌ°ÍÀ» ¾å»ðÇÑ ÇÁ·Î±×·¥¹æ½ÄÀ̶ó°íµé ÀϺο¡¼­´Â Ç¥ÇöÇÏ¸é ¼­ »ç¿ëÀ» ÇßÁÒ~ À©µµ¿ìÁî´Â ¾î¶³±î¿ä? »ç½Ç ¸ÖƼÅ×½ºÅ·, ³×Æ®¿öÅ©»óÀÇ Ç÷¹ÀÌ, »ç¿îµåÀÇ ´Ù¾çÇÑ Á¦¾î, °Å±â´Ù 3Â÷¿ø ¹æ¹ý±îÁö ½±°Ô ½Å°æ¾²Áö ¾Ê°í Ç¥ÇöÇÒ¼ö ÀÖ´Â ½Ã´ëÀÎ°Í °°½À´Ï´Ù. À×? ÀÚ²Ù »ïõÆ÷·Î ºüÁö´Â ±º¿ä~ 1. ÇÁ·Î¼¼¼­¸¦ µ¶Á¡Çϱâ ÀÏ´Ü °ÔÀÓÀ» À§Çؼ­´Â ÇÁ·Î¼¼¼­¸¦ µ¶Á¡ÇÒ Çʿ伺ÀÌ ÀÖ°Ú´Ù °í »ý°¢ÇϽÃÁÒ? ´ç¿¬ ´ÙÀÌ·ºÆ®·Î ÀÌ°ÍÀ» »ç¿ëÀÚ°¡ ¸¸µé±â ¹Ù¶óÁö ¾Ê°í ÀÚü ¿¡¼­ Áö¿øÇÕ´Ï´Ù. ¹Ù·Î SetCooperativeLevel()À̶ó´Â ´ëÇ¥ÀûÀÎ ÇÔ¼ö°¡ ÀÖ½À´Ï´Ù. ¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡ HRESULT SetCooperativeLevel(LPDIRECTDRAW lpDD, HWND hWnd, DWORD dwFlags) ¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡ lpDD´Â ¾Õ¿¡¼­ »ý¼ºµÈ DirectDraw °´Ã¼¿¡ ´ëÇÑ Æ÷ÀÎÅ͸¦ ¶æÇÕ´Ï´Ù. µÎ¹ø°°ÍÀº ´ç¿¬ À©µµ¿ìÁî Çڵ鷯°ÚÁÒ? º¸Åë ÀÌÇîµé·¯´Â ÀÛ¾÷Àüȯ(ALT+TAB)¿¡ °üÇÑ ¸Þ¼¼Áö¸¦ º¸³¾ ¶§ »ç¿ëµÇ¾î Áý´Ï´Ù. ¸¶Áö¸· dwFlags¿¡ °üÇÑ°Ç ´ÙÀ½ÀÇ ³»¿ëÀ» º¸½Ã¸é ¼³¸íº¸´Ù ½±°Ô ÀÌÇØ°¡... -------------------------------------------------------------- DDSCL_ALLOWMODEX ModeX¸¦ Áö¿øÇÑ´Ù. DirectDraw´Â ÀúÇØ»óµµÀÎ 320x200, 3200x400ÀÇ X¸ðµå¸¦ Áö¿øÇÕ´Ï´Ù. DDSCL_ALLOWREBOOT Àüü È­¸éÀ» »ç¿ëÇÒ¶§ Ctrl+Alt+DelÀ» °¡´ÉÇÏ ÇÕ´Ï´Ù. DDSCL_EXCLUSIVE Çػ󵵸¦ ¹Ù²Ù°Å³ª Çø®ÇÎ ÀÛ¾÷À» À§Çؼ­ exclusive level »óÅ·ΠÇÑ´Ù. DDSCL_FULLSCREEN GDI¸¦ »ç¿ëÇÏÁö ¾Ê´Â Àüüȭ¸é ¸ðµå¸¦ »ç¿ë °¡´ÉÇÏ°Ô ÇÑ´Ù. DDSCL_NORMAL ÀϹÝÀûÀÎ À©µµ¿ìÁî â¿¡¼­ ÇÁ·Î±×·¥À» °¡´É ÇÏ°Ô ÇÕ´Ï´Ù. DDSCL_NOWINDOWCHANGES È°¼ºÈ­ »óÅ¿¡ ÀÖ´Â ÇÁ·Î±×·¥À» minimize ÇÒ¼ö ¾ø°Ô ÇÕ´Ï´Ù. -------------------------------------------------------------- ¿Í¿ì ¹«½¼ ¿É¼ÇÀÌ ÀÌ·¸°Ô ¸¹Àº°¡? º¸Åë ÇÁ·Î±×·¥¿¡¼­´Â À§ÀÇ Äڵ带 Á¶ÇÕÇؼ­ »ç¿ëÇÕ´Ï´Ù. ¿©±â¼­ Á¶ÇÕÀ̶õ°ÍÀº OR, AND¸¦ ÇÑ´Ù´Â ¶æÀÔ´Ï´Ù. °£´ÜÇÑ ¿¹¸¦ º¸ÁÒ~ ddrval=lpDD->SetCooperativeLevel(hwnd, DDSCL_EXCLUSIVE | DDSCL_FULLSCREEN); ¾ÆÁÖ °£´ÜÇØ º¸À̽ÃÁÒ? 2. ºñµð¿À ¸ðµå ¼³Á¤ ¾Õ¼­ ¹è¿î °ÍÀº ´ÜÁö ÇÁ·Î¼¼¼­(CPU)ÀÚ¿øÀÇ µ¶Á¡ÇÏ´Â °ÍÀ» ¹è¿ö º¸¾Ò½À´Ï´Ù. À̹ø¿¡´Â ºñµð¿À ¸ðµå¸¦ ¼³Á¤ÇÏ´Â ¹æ¹ýÀ» ¾Ë¾Æ º¾½Ã´Ù. ¹°·Ð °ü·ÃÃ¥ÀÚ¸¦ º¸½Ã¸é ÀÚ¼¼È÷ ¾Ë¼ö ÀÖÁö¸¸, ±×·¡µµ... Ȥ½Ã³ª... Ã¥ÀÌ ¾øÀÌ À̱۷Π¹è¿òÀ» ½ÃÀÛÇÏ´Â ºÐÀ» À§ÇØ ´ÙÀÌ·ºÆ®´Â 320x200, 320x400 640x480ÀÇ Çػ󵵸¦ Áö¿øÇÕ ´Ï´Ù. 256Ä®¶ó¸¦ ±âº»À¸·Î ÇÏÁö¸¸ Åõ·çÄ®¶ó±îÁö Áö¿øÀÌ µË´Ï´Ù. º¸Åë 640x480x256¿¡¼­ °¡Àå È¿À²ÀûÀÎ ±â´ÉÀ» Á¦°øÇÑ´Ù°í ¸Þ´º¾ó¿¡ ³ª¿Í ÀÖ´õ±º¿ä! ¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡ HRESULT SetDisplayMode(LPDIRECTDRAW lpDD, DWORD dwWidth, DWORD dwHeight, DWORD dwBpp) ¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡ ¿ª½Ã ù¹ø° ÀÎÀÚ´Â DirectDraw¸¦ ¶æÇÏ´Â °ÍÀÌ°ÚÁÒ~ dwWidth¿Í dwHeight´Â °¡·Î ¼¼·Î Çػ󵵸¦ ¶æÇÏ´Â °ÍÀ̱¸¿ä ¸¶Áö¸· dwBpp´Â Ä÷¯¼ö¸¦ ¶æÇÕ´Ï´Ù. ±×·³ ¿¹Á¦¸¦ º¸ÁÒ~ ddrval=lpDD->SetDisplayMode(640, 480, 8); À§ÀÇ ¿¹Á¦´Â ¹Ù·Î 640*480*256À» ¶æÇÕ´Ï´Ù. ¾ÆÁÖ ½±ÁÒ~ ^^; ÀÚ~ ¿©±â±îÁö Á¤¸®ÇØ º¸ÁÒ~ ù¹ø° µÎ¹ø° ±ÛÀ» ÀÐ¾î º¸¼Åµµ ¾ÆÁ÷ ÀÌÇØ°¡ µÇÁö ¾ÊÁÒ~ ´ç¿¬È÷ ¾ÆÁ÷Àº ±×¸® Áß¿äÇÏÁö´Â ¾ÊÀº ³»¿ëÀεíÇÕ´Ï´Ù. (´ç¿¬ÇÑ ³»¿ëÀ̹ǷÎ...^^;) //¿ì¼± »ç¿ëµÉ ´ÙÀÌ·ºÆ® º¯¼öµéÀ» ¼±¾ðÇØ¾ß °ÚÁÒ~ LPDIRECTDRAW lpDD; LPDIRECTDRAWSURFACE lpDDSPrimary; LPDIRECTDRAWSURFACE lpDDSBack; DDSCAPS ddscaps; DDSURFACEDESC ddsd; HRESULT hr; //±×´ÙÀ½¿¡ ´ÙÀÌ·ºÆ® µå·Î¿ì¿¡ °üÇÑ »ý¼ºÀÚ¸¦ »ý¼ºÇßÁÒ~ hr = DirectDrawCreate(NULL, &lpDD, NULL); if(hr != DD_OK) { // ¿¡·¯ °ü·Ã 󸮸¦ ÇØ¾ß °ÚÁÒ? // º¸Åë ¿¡·¯¶ó°í Ç¥½Ã¸¦ ÇÏ°í ºüÁ® ³ª°©´Ï´Ù. } // ÀÚ~ ±×·³ À̹ø¿¡´Â ÇÁ·Î¼¼¼­¸¦ µ¶Á¡ÇØ¾ß °ÚÁÒ~ hr = lpDD->SetCooperativeLevel(hWnd, DDSCL_EXCLUSIVE | DDSCL_FULLSCREEN | DDSCL_ALLOWMODEX); if(hr != DD_OK) { // µ¿ÀÏÇÑ ¿¡·¯ 󸮸¦ ÇÏ¸é µÇ°ÚÁÒ~ } // ¿©±â¼­ Çػ󵵸¦ ¼³Á¤ÇØ¾ß °ÚÁÒ! hr = lpDD->SetDisplayMode(640, 480, 8); if( hr != DD_OK) { // ´ç¿¬ ¿¡·¯ 󸮰ÚÁÒ~ } // ¿©±â±îÁö.... /////////////////////////////////////////////////////////////// ÀÏ´Ü ¿À´ÃÀº ¿©±â±îÁö ÀÔ´Ï´Ù. ½±ÁÒ? ¾Æ´Ñ°¡?......(²ôÀû²ôÀû) ¼¼¹ø° ±ÛÀ» ½á¾ß °Ú´Âµ¥.....À×? ...´«¿¡....ÇͱⰡ.... ´ÙÀ½¿¡´Â ¹öÆÛÀÇ »ý¼º°üÇؼ­ ÀåÆíÀÇ ±ÛÀ» ½áº¸µµ·Ï Çغ¸°Ú½À´Ï´Ù. ±×¸®°í ÆäÀÌÁö Çø®Çο¡ °üÇؼ­´Ù·ç¾î º¸±¸¿ä~ ´ÙÀ½°ú °°ÀÌ ¿¬ÀçÇØ ³ª°¡µµ·Ï ÇÏ°Ú½À´Ï´Ù. *1. ´ÙÀÌ·ºÆ® Àü¹Ý¿¡ °üÇؼ­... *2. ´ÙÀÌ·ºÆ® »ý¼º°ú ÇÁ·Î¼¼¼­ µ¶Á¡, ¸ðµå ¼ÂÆà 3. ´ÙÀÌ·ºÆ® ¹öÆÛ »ý¼º Àü¹Ý¿¡ °üÇØ 4. ¸éÀÇ »ý¼º°ú Çø®ÇÎ, ºñÆ®¸Ê º¹»ç 5. ´ÙÀÌ·ºÆ® ÆÈ·¹Æ® °ü¸® 6. Lock°ú Unlock, Blt, BltFast 7. ´ÙÀÌ·ºÆ® »ç¿îµå ó¸® 8. Á¶À̽ºÆ½ 9. °£´ÜÇÑ 2D °ÔÀÓÀ» Á¦ÀÛ ÀÏ´Ü ¿©±â±îÁö°¡ 1Æí..... 2ÆíÀº °¡´ÉÇÒÁö ¸ð¸£Áö¸¸.... 10. ´ÙÀÌ·ºÆ® 3DÀü¹Ý¿¡ °üÇؼ­... 11. ¿À¹ö·¹ÀÌ Ç¥¸é°ú Z¹öÆÛ, À̹ÌÁö ȸÀü, ¾ËÆÄ È¥ÇÕ±â´É 12. ´ÙÀÌ·ºÆ®¸¦ ÀÌ¿ëÇØ 3D ÅؽºÃÄ ÀÔÈ÷±â 13. ´ÙÀÌ·ºÆ®¸¦ ÀÌ¿ëÇÑ ½Ç½Ã°£ ·£´õ¸µ 14. ´ÙÀÌ·ºÆ® ¿¢½º¿¡ OpenGLÀ» ÀÌ¿ëÇÏÀÚ. 15. 3DS ºÐ¼®°ú ¿ÀºêÁ§ Àоî Ç¥ÇöÇϱâ 15. ÄùÀÌÅ©¸¦ Èä³»³»ÀÚ. 16. ¹öɱ¬ªÈ­ÀÌÅ͸¦ ¸¸µéÀÚ. 17. ±âŸ µîµî. 2ÆíÀº ¾ÆÁ÷ Á¦°¡ ¾ÕÀ¸·Î ½Ã°£ÀÌ ¾îÂî µÉÁö? ½Í¾î Àå´ãÀº ÇÒ¼ö ¾ø¾î¼­ .... --; ±×·¯³ª 1ÆíÀº È®½ÇÈ÷ ¿¬ÀçÇØ ³ª°¡ °Ú½À´Ï´Ù. ÇöÀç ÀÛ¾÷À» ÁøÇàÁßÀÌ¶ó¼­ ±ÛÀ» »¡¸® ¿Ã¸®Áö ¸øÇÏ´Â °Í¿¡ ´ëÇØ Á˼ÛÇÏ°Ô »ý°¢ÇÕ´Ï´Ù. 3Â÷¿ø¿¡ µé¾î°¡¸é ³»¿ëÀÌ 1Æí¿¡ ¹è·Î Áõ°¡ÇÏ°Ú±º¿ä... À½...ŸÀÌÇΠĥ ½Ã°£ÀÌ ÀÖÀ¸·Á³ª? ^^; ¸¹Àº ºÐµé²² Âü°í°¡ µÇ¾úÀ¸¸é ÇÏ´Â ¹Ù·¥À¸·Î Àû¾îº¸¾Ò½À´Ï´Ù. ¼º³²¿¡¼­ ¿Ü·Î¿òÀ» ´Þ·¡¸ç.... ÀÌÁØ°ï(LeeChen) µå¸². #1385 ¼­¼ºÄ¥ (ssc7 ) [°­ÁÂ] < LeeChen> À©µµ¿ì °ÔÀÓÁ¦ÀÛ [3] 09/08 08:14 254 line ¾È³çÇϼ¼¿ä~ ÀÌÁØ°ï(LeeChen) ÀÔ´Ï´Ù. ------------------------------------------------------------ [LeeChen°ú ÇÔ²² - À©µµ¿ìÁîÆí ¸ñÂ÷] *1. ´ÙÀÌ·ºÆ® Àü¹Ý¿¡ °üÇؼ­... *2. ´ÙÀÌ·ºÆ® »ý¼º°ú ÇÁ·Î¼¼¼­ µ¶Á¡, ¸ðµå ¼ÂÆà *3. ´ÙÀÌ·ºÆ® ¹öÆÛ »ý¼º Àü¹Ý¿¡ °üÇØ 4. ¸éÀÇ »ý¼º°ú Çø®ÇÎ, ºñÆ®¸Ê º¹»ç 5. ´ÙÀÌ·ºÆ® ÆÈ·¹Æ® °ü¸® 6. Lock°ú Unlock, Blt, BltFast 7. ´ÙÀÌ·ºÆ® »ç¿îµå ó¸® 8. Á¶À̽ºÆ½ 9. °£´ÜÇÑ 2D °ÔÀÓÀ» Á¦ÀÛ ------------------------------------------------------------ Áö³­¹ø±îÁö ¸ðµå ¼ÂÆÿ¡ °üÇÑ°Í ±îÁö ¹è¿ü½À´Ï´Ù. ÀÚ¼¼ÇѱÛÀ» ¿Ã¸®Áö ¸øÇÏ´Â °Í¿¡ ´ëÇؼ­ Áø½ÉÀ¸·Î Á˼ÛÇÏ°Ô »ý°¢ÇÕ´Ï´Ù. ¿ö³« Ãʺ¸´Ùº¸´Ï....^^; À̹ø¿¡´Â ´ÙÀÌ·ºÆ® ¹öÆÛ »ý¼º°ú ºñÆ®¸Ê¿¡ °üÇؼ­ ¾Ë¾Æ º¾½Ã´Ù. ±×Àü¿¡ Áö³­¹ø¿¡ Çß´ø °Í¿¡ ´ëÇÏ¿© Àá½Ã »ìÆì º¸°í °©½Ã´Ù. // 1Â÷ Ç¥¸é(Primary Surface)¸¸ »ý¼ºÇϱâ LPDIRECTDRAWSURFACE lpPrimary; DDSURFACEDESC ddsd; ZeroMemory(&ddsd, sizeof(ddsd)); ddsd.dwSize = sizeof(ddsd); ddsd.dwFlags = DDSD_CAPS; ddsd.ddsCaps.dwCaps = DDSCAPS_PRIMARYSURFACE; lpDD->CreateSurface(&ddsd, &lpPrimary, NULL); À×? Áö³­¹ø°Å¿Í´Â ´Ù¸¥µ¥....--; ´Ù¸¥°Í ¾îº¸ÀÌ¿¹¿ä~ ´ÜÁö ÇÔ¼ö Çϳª°¡ ÀÖÁÒ? ¸Þ¸ð¸®¸¦ Ŭ¸®¾î ÇØÁÖ´Â ÇÔ¼ö¹Û¿¡... LPDIRECTDRAWSURFACE´Â IDirectDrawSurfaceÀÇ Æ÷ÀÎÅÍ ÇüÀÔ´Ï´Ù. ÂÁ~ DDSURFACEDESC´Â »ý¼ºµÉ Ç¥¸éÀÇ Æ¯¼ºÀ» ¾Ë·ÁÁÖ´Â ±¸ÃÊüÀÔ ´Ï´Ù. À½... ¹¹~´Ù¸¥°ÍÀº ¾îºÌÀÌÁÒ~ Áö³­¹ø¿¡ »©¸ÔÀº °ÍÀÌ ÀÖÁÒ~ ¹»±î¿ä? ¹»±î? ¹»±î.....(²ôÀû~²ôÀû~) Áö²û±îÁö »ý¼º½ÃŲ °ÍÀ» Á¾·á½ÃÄÑ¾ß °ÚÁÒ~ Á¦°ÅÇÏ´Â ¹æ¹ýÀº... lpPrimary->Release(); lpDD->Release(); ¿ä°Å...¹Ù·Î ¿ä°Å¶ø´Ï´Ù. À½...°£´ÜÇÏÁÒ~ ¾ðÁ¦Àΰ¡? Áú¹®¶õÀ» ÅëÇØ ÇѱÛÀ̳ª ¹®ÀÚ¸¦ ¾î¶»°Ô Âï³Ä°í ÇϽôõ ±º¿ä~ º¸Åë À©µµ¿ìÁî API¸¦ ¹è¿ìÁö ¾Ê°í ±×³É À©µµ¿ìÁî ÇÁ·Î±×·¥ À» ÇϽðڴٰí ÇÑ´Ù¸é ´ç¿¬ ÀÌ·±ÂÊÀÇ ¹æ¹ýÀ» ¾Ë¼ö°¡ ¾øÀ» °Ì´Ï´Ù. ´ÙÀ½ ¿¹Á¦¸¦ ¸ÕÀú º¸ÁÒ~ < ¿¹Á¦ : ´ÙÀÌ·ºÆ®¿¡¼­ ±ÛÀÚÂï±â > HDC hdc; if(lpDDSPrimary->GetDC(&hdc) == DD_OK) { Rectangle(hdc, ....); SetTextColor(hdc, ....); SetBkCOlor(hdc, ....); TextOut(hdc, ....); lpPrimary->ReleaseDC(hdc); } GDI¸¦ »ç¿ëÇÏ´Â °ÍÀ̵¥, ÀÌ°ÍÀÌ ¹«¾ðÁö´Â À©µµ¿ì °­Á¶õÀ» Âü°í Çؼ­ ÀÌÇظ¦ ÇϼÌÀ¸¸é ÇÕ´Ï´Ù. ´ÙÀÌ·ºÆ® µå·Î¿ì Ç¥¸éÀº DC¸¦ ¾ò ¾î GDI ÇÔ¼ö¸¦ »ç¿ëÇÏ°Ô ÇØÁֹǷΠÇÁ¶ó¸Ó¸®¿¡¼­ °£´ÜÈ÷ GDIÇÔ¼ö ¸¦ »ç¿ëÇÒ¼ö ÀÖ´Â °ÍÀÌÁÒ~ À§ ¿¹Á¦ ÇÔ¼ö¿¡ ´ëÇؼ­´Â À©µµ¿ìÁî API¹ÙÀ̺íÀ» ÂüÁ¶ ÇØÁÖ¼¼¿ä~ < ¼Ò½º: À§ÀÇ ¿¹Á¦ Àüü ¼Ò½º> #include < windows.h> #include < ddraw.h> BOOL initDirectDraw(HWND hWnd); void closeDirectDraw(); void Draw(); LPDIRECTDRAW lpDD = NULL; LPDIRECTDRAWSURFACE lpPrimary = NULL; . . // À©µµ¿ì ÇÁ·Î½ÃÁ®¿Í ¸ÞÀÎ ÇÔ¼ö´Â »ý·« --; // °øÅëºÎºÐÀ̹ǷÎ... . . BOOL initDirectDraw(HWND hWnd) { HRESULT hr; // »ý¼º°ú ¸ðµå ¼³Á¤ hr = DirectDrawCreate(NULL, &lpDD, NULL); if(hr != DD_OK) return FALSE; hr = lpDD->SetCooperativeLevel(hwnd, DDSCL_EXCLUSIVE | DDSCL_FULLSCREEN); if(hr != DD_OK) return FALSE; hr = lpDD->SetDisplayMode(640, 480, 8); //640*480*256 Mode if(hr != DD_OK) return FALSE; // 1Â÷ Ç¥¸é »ý¼º DDSURFACEDESC ddsd; ZeroMemory(&ddsd, sizeof(ddsd)); ddsd.dwSize = sizeof(ddsd); ddsd.dwFlags = DDSD_CAPS; ddsd.ddsCaps.dwCaps = DDSCAPS_PRIMARYSURFACE; lpDD->CreateSurface(&ddsd, &lpPrimary, NULL); return TRUE; } // DirectDraw Primary ¸¦ ¼Ò¸ê½ÃÅ´. void closeDirectDraw() { if(lpPrimary != NULL) lpPrimary->Release(); if(lpDD != NULL) lpDD->Release(); } void Draw() { LPSTR str = "Hello!, ³ª¿¡ À̸§Àº ÁØ°ïÀ̾ß~"; HRESULT hr; HDC hDC; hr = lpDDSPrimary->GetDC(&hDC); if(hr == DD_OK) { TextOut(hDC, 300, 200, str, strlen(str)); lpPrimary->ReleaseDC(hDC); } } 3. ºñÆ®¸Ê °ÔÀÓÀ» ¸¸µç´Ù¸é PCX¸¦ ¸¹ÀÌ »ç¿ëÇßÀ» °Ì´Ï´Ù. Á¦ÀÛ°ú »ç¿ëÇϱâ ÆíÇÏ´Ù´Â ÀÌÀ¯¸¸À¸·Î....À½... ±×·±µ¥ À©µµ¿ìÁî¿¡¼­´Â ºñÆ®¸ÊÀÌ Á¸Àç ÇÑ´Ù´Â °ÍÀº ÀÌ¹Ì ÆäÀÌÆ® ºê·¯½¬¸¦ ÅëÇØ ¾Ë°í °è½ÃÁÒ? À©µµ¿ìÁî´Â ºñÆ®¸Ê ±âº»À¸·Î »ç¿ëÇÏ°í ÀÖ½À´Ï´Ù. ±×·³...µµ´ëü ¾î¶² ±¸Á¶¸¦ ÇÏ°í Àֱ⿡ ºñÆ®¸ÊÀ» »ç¿ëÇÒ±î¿ä~ < DIB ±¸Á¶ > +-------------------+ | BITMAPFILEHEADER | +-------------------+ | BITMAPINFOHEADER | --+--> BITMAPINFO +-------------------+ | | RGBQUAD | --+ +-------------------+ | Image Data | +-------------------+ À©µµ¿ìÁî´Â ÀÇÁ¸Àû ºñÆ®¸Ê(DDB)°ú ÀåÄ¡ µ¶¸³Àû ºñÆ®¸Ê (DIB) µÎ°¡Áö¸¦ Á¦°øÇÕ´Ï´Ù. ÀÇÁ¸Àû ºñÆ®¸ÊÀº ÀϹÝÀûÀ¸·Î »ç¿ëÇÏ´Â ºñÆ®¸ÊÀ» ÀǹÌÇÕ´Ï´Ù. // BITMAPFILEHEADER typedef struct tagBITMAPFILEHEADER { WORD bfType; // ASCII °ª "BM" DWORD bfSize; // ÆÄÀÏ »çÀÌÁî WORD bfReserved1; WORD bfReserved2; DWORD bfOffBits; // ÆÄÀÏ Ã³À½ºÎÅÍ bitmap±îÁö ¹ÙÀÌÆ® ¼ö } BITMAPFILEHEADER; BITMAPFILEHEADER´Â À§¿Í °°ÀÌ ¼±¾ð µÇ¾î ÀÖ½À´Ï´Ù. À×? ÀÌ°ÍÀÌ ÀüºÎ ÇÊ¿ä ÇÑ°ÍÀº ¾Æ´Ï¿©¿ä~ ¿©±â¼­ ÇÊ¿äÇÑ °ÍÀº bfType¿Í bfSizeÀε¥..bfType´Â ÀÌ ÆÄÀÏÀÌ ºñÆ®¸ÊÀÎÁö¸¦ ³ªÅ¸³À´Ï´Ù. ºñÆ®¸ÊÀº 16Áø¼ö·Î 4d42ÀÌ°í WORD·Î "BM"À» ³ªÅ¸³À´Ï´Ù. ±×¸®±¸ bfSize´Â ÆÄÀÏ »çÀÌÁî Àε¥..ºñÆ®¸Ê ÆÄÀÏ¿¡¼­ BITMAPINFOHEADERºÎÅÍÀÇ Æ÷ÀÎÅ͸¦ °è»êÇϴµ¥ »ç¿ëÇÕ´Ï´Ù. BITMAPFILEHEADER bmfh; dwDibSize = bmfh.bfSize - sizeof(BITMAPFILEHEADER); // BITMAPINFO typedef struct tagBITMAPINFO { BITMAPINFOHEADER bmiHeader; RGBQUAD bmiColors[1]; } BITMAPINFO; º¸´Ù½ÃÇÇ BITMAPINFOHEADER¿Í RGBQUAD·Î ±¸¼º µÇ¾î ÀÖ½À´Ï´Ù. // BITMAPINFOHEADER typedef struct tagBITMAPINFOHEADER{ // bmih DWORD biSize; LONG biWidth; // X Å©±â LONG biHeight; // Y Å©±â WORD biPlanes; // Plane¼ö Àε¥ Ç×»ó 1 WORD biBitCount; DWORD biCompression; // ¾ÐÃà ÇüÅÂ. DWORD biSizeImage; // ¹ÙÀÌÆ® ´ÜÀ§·Î ºñÆ®¸ÊÀÇ Å©±â. LONG biXPelsPerMeter; // ¹ÌÅÍ´ç ¼öÆò Çȼ¿ ¼ö LONG biYPelsPerMeter; // ¹ÌÅÍ´ç ¼öÁ÷ Çȼ¿ ¼ö DWORD biClrUsed; DWORD biClrImportant; // Áß¿äÇÑ Ä÷¯¼ö } BITMAPINFOHEADER; biSize´Â BITMAPINFOHEADER±¸Á¶ÀÇ Å©±â biBitCount´Â Çȼ¿´ç ºñÆ® ¼ö biClrUsed´Â »ç¿ëµÈ Ä®·¯ ¼ö¸¦ ¶æÇÏ¸ç °ªÀÌ 0ÀÌ¸é ºñÆ®¸ÊÀº biBitCount¿¡ ´ëÇÏ´Â ÃÖ´ëÀÇ Ä÷¯¼ö¸¦ »ç¿ëÇÕ´Ï´Ù. // RGBQUAD typedef struct tagRGBQUAD { BYTE rgbBlue; BYTE rgbGreen; BYTE rgbRed; BYTE rgbReserved; } RGBQUAD; DIBÀÇ Ä®·±´Â ÀÌ ±¸Á¶·Î Ç¥Çö µÇ´Âµ¥.. 16Ä®·¯ ºñÆ®¸ÊÀº 16 RGBQUAD±¸Á¶,256Ä®·¯´Â 256 RGBQUAD±¸Á¶, ¿¹¿ÜÀûÀ¸·Î 24ºñÆ® Ä®·¯´Â Ä®·¯ Å×À̺íÀÌ ¾ø´ä´Ï´Ù. ÇöÀç DIB°¡ °¡Áö°í ÀÖ´Â Ä®·¯¼ö¸¦ °è»êÇÏ·Á¸é.... BITMAPINFO lpBi; ... ... if(lpBi->bmiHeader.biClrUsed != 0) nColor = lpBi->bmiHeader.biClrUsed; else switch(lpBi->bmiHeader.biBitCount) { case 1: nColor = 2; break; case 4: nColor = 16; break; case 8: nColor = 256; break; case 24: nColor = 0; break; } °£´ÜÇÏÁÒ..À½..¿©±â¼­ Ä®·¯ ¼ö¸¦ °è»êÇÏ´Â ÀÌÀ¯´Â ³ªÁß¿¡ ¼³¸íÇÒ Palette»ý¼º¿¡ ÇÊ¿äÇϱ⠶§¹®ÀÔ´Ï´Ù. (Âü°í·Î ÀúÀåµÇ´Â ¹æ½ÄÀº bottom-up¹æ½ÄÀ¸·Î ÀúÀå µË´Ï´Ù.) // À̹ÌÁö µ¥ÀÌÅ͸¦ ¾ò´Â ¹æ¹ý lpBi + lpBi->bmiHeader.biSize + (nColor * sizeof(RGBQUAD)); À¸¾Ç~....Ãâ±Ù ½Ã°£ÀÌ....ÆÈ·¹Æ® ºÎºÐÀº »ý·«...´ÙÀ½ ±âȸ¿¡.. Çϵµ·Ï ÇÏÁÒ...¹«·Á Çѽ𣵿¾È...±Ã¸® ³¡¿¡ ²ôÀûÀ̴µ¥... ´ÙÀ½¿¡ °­Á¿¡ ÀÖ±âÀü¿¡...´ÙÀÌ·ºÆ® ¿¢½ºÀÇ ¿¹Á¦Áß¿¡ SDK\SAMPLES\MISC\ÀÇ DDUTIL.CPP¸¦ Çѹø¾¿ ºÐ¼®ÇØÁÖ¼¼¿ä~ ¸¹Àº ºÐµé²² Âü°í°¡ µÇ¾úÀ¸¸é ÇÏ´Â ¹Ù·¥À¸·Î Àû¾îº¸¾Ò½À´Ï´Ù. ¼º³²¿¡¼­ ¿Ü·Î¿òÀ» ´Þ·¡¸ç.... ÀÌÁØ°ï(LeeChen) µå¸².