#pragma once #include "typedef.h" #include /////////////////////////////////////////////////////////////////////////////////////////// //³¯Â¥. 2004 / 2/ 6 //À̸§ : CDrawCtrl //¼³¸í : -Draw °ü·Ã 󸮸¦ Çϴ Ŭ·¡½ºÀÌ´Ù. // -¿ÜºÎ¿¡¼­ Ŭ·¡½º¸¦ Æ÷ÀÎÅÍ·Î °¡Á®¿Â´Ù. ÇÏÁö¸¸ ¸¸¾à Draw Ŭ·¡½º°¡ ¼öÁ¤À» Çϰųª // -´Ù¸¥ Ŭ·¡½º°¡ ³Ñ¾î¿Ã °æ¿ì¿¡ ÀÌ Å¬·¡½º¸¸ ¼öÁ¤ ÇÏ¸é µÇ´Â ¼³°è ¸ñÀûÀ¸·Î ¸¸µë. //////////////////////////////////////////////////////////////////////////////////////////// typedef std::list STD_LIST_PTR; class CDrawCtrl { public: CDrawCtrl(); virtual ~CDrawCtrl(); void OnRelease(void* pPtr); //. Draw °ü·Ã ÇÔ¼öµé. void DrawTexture(VOID* pVoid, const SI_FRECT& sDesRect, const SI_FRECT& sSrcRect); void DrawTexture(VOID* pVoid, const SI_FRECT& sDesRect, const SI_FRECT& sSrcRect, float depth); void DrawTexture(VOID* pVoid, const SI_FRECT& sDesRect); void DrawRectangle(const RECT& rtRect, COLORREF color = RGBA(0,0,0,255), int nThickness = 1); //. Rect(long)À¸·Î ¿µ¿ª ±×·ÁÁØ´Ù. void DrawFillRectangle(const RECT& rtRect, COLORREF color = RGBA(0,0,0,255), const SI_Gradation* pGradation = NULL); void DrawRectangle(const SI_FRECT& rtRect, COLORREF color = RGBA(0,0,0,255), int nThickness = 1); //. SI_FRECT(float)À¸·Î ¿µ¿ª ±×·ÁÁØ´Ù. void DrawFillRectangle(const SI_FRECT& rtRect, COLORREF color = RGBA(0,0,0,255), const SI_Gradation* pGradation = NULL); void DrawShadowConvex(const SI_FRECT& rtRect,int nThickness = 2); void DrawShadowConcave(const SI_FRECT& rtRect,int nThickness = 2); void Draw3dShapeConvex(const SI_FRECT& rtRect, COLORREF color = RGBA(0,0,0,255)); void Draw3dShapeConcave(const SI_FRECT& rtRect, COLORREF color = RGBA(0,0,0,255)); void Draw3dShapeConvex(const RECT& rtRect, COLORREF color = RGBA(0,0,0,255)); void Draw3dShapeConcave(const RECT& rtRect, COLORREF color = RGBA(0,0,0,255)); void DrawLine(const SI_FRECT& rtRect,COLORREF color = RGBA(0,0,0,255)); void BegineTransparency(float fdegree); //. Åõ¸í ¼öÄ¡¸¦ ¼³Á¤Çϸé EndTransparency() ÇÒ¶§ ±îÁö alpha Àû¿ë. void EndTransparency(); //. ÅØ½ºÆ® Ãâ·Â ÇÔ¼ö. void TextOutWZ(LPCSTR pszText, float fx, float fy, COLORREF coText = RGBA(0,0,0,255)); void DrawText(LPCSTR pszText, RECT* prtRegin, DWORD dwStyle, COLORREF coText = RGBA(0,0,0,255), ENUM_TEXT_KIND eTK = ETK_BASE, COLORREF coLine = RGBA(0,0,0,255)); void DrawText_Depth(LPCSTR pszText, RECT* prtRegin, DWORD dwStyle, COLORREF coText = RGBA(0,0,0,255), ENUM_TEXT_KIND eTK = ETK_BASE, COLORREF coLine = RGBA(0,0,0,255), float depth = 0.0f); void DrawTextW(LPCWSTR pszText, RECT* prtRegin, DWORD dwStyle, COLORREF coText = RGBA(0,0,0,255), ENUM_TEXT_KIND eTK = ETK_BASE, COLORREF coLine = RGBA(0,0,0,255)); void* LoadImage(LPCSTR pFName); //. ±×¸² ÆÄÀÏÀ» Àоî¿Â´Ù. //. ÆùÆ® Ãâ·Â °ü·Ã ÇÔ¼ö. void SetDefaultFontID(DWORD dwFontID); //. Default ÆùÆ® ¼³Á¤ DWORD GetDefaultFontID(); bool BeginUseFont(DWORD dwFontID); //. ÆùÆ® ¼³Á¤ ½ÃÀÛ ÇÔ¼ö. void EndUseFont(); //. ÆùÆ® ¼³Á¤ ³¡ ÇÔ¼ö //. DrawClass ÃʱâÈ­. void SetDrawClass(void* pClass); void* GetDrawClass() { return m_pDraw; }; //. ½ÇÁ¦ À§Ä¡¸¦ ¾ò¾î¿Â´Ù. float GetRealX(float x); //. Real->Std ÁÂÇ¥¸¦ °¡Á®¿Â´Ù. float GetRealY(float y); //. Real->Std ÁÂÇ¥¸¦ °¡Á®¿Â´Ù. //. È­¸é ÁÂÇ¥¸¦ ¾ò¾î¿Â´Ù. float GetStdX(float x); //. Std->Real ÁÂÇ¥¸¦ °¡Á®¿Â´Ù. float GetStdY(float x); //. Std->Real ÁÂÇ¥¸¦ °¡Á®¿Â´Ù. //string -> WZID·Î º¯ÇüÇØ¼­ ³Ñ°ÜÁØ´Ù. DWORD ChangeStrToDWORD(LPCSTR pszID); //. string -> WZID·Î º¯ÇüÇØ¼­ ³Ñ°ÜÁØ´Ù. void SetExePath( LPCSTR pPath ); //. ½ÇÇà°æ·Î¸¦ °¡Áö°í Àִ´Ù. const char* GetExePath(){return m_szPath;} //. ºó ÅØ½ºÃÄ »ý¼º ÇÔ¼ö. VOID* GenerateEmptyTexture( int iWidth, int iHeight, int iNumComponents); //. ÅØ½ºÃÄÀÇ Á¤º¸¸¦ º¯°æÇÒ¶§ »ç¿ëÇÔ¼ö. VOID* LockTexture(HANDLE hTexture, long *plPitch, int *piNumComponents); void UnlockTexture( HANDLE hTexture); //. ¹è°æ Ä®¶ó ¼³Á¤ ÇÔ¼ö. void SetBackGroundColor(COLORREF color = RGBA(255,255,255,255)); void GetTextExtentPoint(LPCSTR lpszText, int iLength, SIZE* psiText); void GetTextExtentPointW(LPCWSTR pwszText, int iLength, SIZE* psiText); //. ÆùÆ® °ü·Ã ÇÔ¼öµé. HDC GetFontDC(DWORD dwFontID); //. Font DC ÇÚµéÀ» ¾ò¾î¿Â´Ù. BOOL GetFontLogFont(DWORD dwFontID, LOGFONTA* pLogFont); //. ¾Æµð¿¡ ÇØ´çÇÏ´Â LogFont Á¤º¸ ¾ò±â //. Default ÆùÆ® int GetNumberOfDefaultFont(); //. µðÆúÆ® ÆùÆ® °³¼ö ¾ò±â BOOL GetDefaultFontInfo(int iIndex,DWORD* pdwFontID, LOGFONTA* pLogFont); //. µðÆúÆ®ÆùÆ® Á¤º¸ ¾ò±â //. È®Àå ÆùÆ®. BOOL AddExtendedFont(DWORD dwFontID, LOGFONTA* pLogFont); //. È®ÀåÆùÆ® Ãß°¡ void DeleteExtendedFont(DWORD dwFontID); //. È®ÀåÆùÆ® »èÁ¦ void DeleteAllExtendedFont(void); //. È®ÀåÆùÆ® ¸ðµÎ »èÁ¦ int GetNumberOfExtendedFont(void); //. È®ÀåÆùÆ® °³¼ö ¾ò±â BOOL GetExtendedFontInfo(int iIndex, DWORD* pdwFontID, LOGFONTA* pLogFont); //. È®ÀåÆùÆ® Á¤º¸ ¾ò±â BOOL LoadExtendedFontInfo(LPCSTR pszPath); BOOL SaveExtendedFontInfo(LPCSTR pszPath); //. ÆÄÀÏ º´ÇÕ °ü·Ã HANDLE FileOpen(LPCSTR pszFileName, DWORD dwDesiredAccess, DWORD dwShareMode,LPSECURITY_ATTRIBUTES lpSecurityAttributes, DWORD dwCreationDisposition); DWORD FileRead(HANDLE hHandle, LPVOID lpBuffer, DWORD dwNumberOfByteToRead); DWORD FileWrite(HANDLE hHandle, LPVOID lpBuffer, DWORD dwNumberOfByteToWrite); DWORD GetFileSize(HANDLE hHandle); void FileClose(HANDLE hHandle); void SetDiscAccess(VOID* pPtr); //------------------------------------------------------------------------------ // Returns :int : ÅØ½ºÆ® ¿µ¿ªÀÇ ±æÀÌ // Parameter : LPCSTR message : ¹®ÀÚ¿­ // Parameter : const WzID font_id : ÆùÆ® //------------------------------------------------------------------------------ int GetTextWidth(LPCSTR message, const WzID font_id); //------------------------------------------------------------------------------ // Returns :bool : ¸»ÁÙÀÓÀÌ Àû¿ëµÇ¾úÀ¸¸é // Parameter : OUT std::string* reduce_string : ¸»ÁÙÀÓÀÌ Àû¿ëµÈ ¹®ÀÚ¿­ // Parameter : LPCSTR message : ¸»ÁÙÀÓÀ» Àû¿ëÇÒ ¹®ÀÚ¿­ // Parameter : const RECT& area : ÅØ½ºÆ® ¿µ¿ª // Parameter : const WzID font_id : ÆùÆ® //------------------------------------------------------------------------------ bool MakeReduceText(OUT std::string* reduce_string, LPCSTR message, const RECT& area, const WzID font_id); private: VOID* m_pDraw; //. Draw Engine Æ÷ÀÎÅ͸¦ °¡Áö°í ÀÖ´Ù. VOID* m_pDiscAccess; //. ÆÄÀÏ Packer »ç¿ëÀÏ °æ¿ì ÀÌ Æ÷ÀÎÆ®·Î ÆÄÀÏ¿¡ Á¢±ÙÇÑ´Ù. char m_szPath[MAX_PATH]; //. ¸®¼Ò½º ÆÄÀÏ Æú´õ °æ·Î. DWORD m_dwCurUseFontID; DWORD m_dwDefaultFontID; bool m_blHyper; //. ÃÖÀûÈ­ ¸ðµå üũ. //. ÃÖÀûÈ­¸¦ À§ÇØ Textµµ Çѹø¿¡ ¸ð¾Æ¼­ Âï´Â´Ù. float m_fTransparency; //. Åõ¸íµµ. public: char m_szVersion[10]; //. ¹öÁ¯ };