일리히트에서 한글 출력하는 방법은 Win32 프로시저에서 IME메세지를 이용해서 입력받습니다..
일단 Irrlicht 프로젝트를 여시면.. 필터기준의로 Irrlicht/irr/device/CIrrDeviceWin32.cpp 란 파일이 있습니다.
bool CIrrDeviceWin32::run()함수 안에
while (PeekMessage(&msg, NULL, 0, 0, PM_REMOVE))아래부분에
TranslateMessage(&msg);추가 해줌니다.
그리고 난뒤 메세지 프로시저 안으로 가신뒤에
switch (message)아래부분 적정한 위치에
아래와 같은 문장을 추가시켜주시면 한글을 사용할수가 있습니다..
case WM_IME_CHAR: { dev = getDeviceFromHWnd (hWnd); if (dev) { event.EventType = irr:: EET_KEY_INPUT_EVENT; event.KeyInput.PressedDown = true; event.KeyInput.Key = irr:: KEY_OEM_CLEAR; event.KeyInput.Shift = 0; event.KeyInput.Control = 0; #ifdef _UNICODE event.KeyInput.Char = (wchar_t) wParam; #else char bits [2] = { (char) ((wParam & 0xff00)>> 8), (char) (wParam & 0xff) }; if (bits [0] == 0) event.KeyInput.Char = (irr:: u16) wParam; else MultiByteToWideChar (CP_OEMCP, MB_PRECOMPOSED, bits, 2, & event.KeyInput.Char, 1); #endif dev-> postEventFromUser (event); } return 0; }
위에 있는것처럼 써주시면 일리히트가 멀티바이트건 유니코드건 사용가능하시게 되고..
IME는 윈도우 기본 IME를 사용하게 됨니다..
그리고 윈도우 기본 IME가 많이 불편한건 사실인데 IME 를 따로 사용하시려면..
아래 일리히트 포럼에서 IrrlichtML 1.7.1 Unicode 를 다운받으신후에
참고 사항
일리히트 포럼
도플광어의 게임엔진 연구소
IME는 윈도우 기본 IME를 사용하게 됨니다..
그리고 윈도우 기본 IME가 많이 불편한건 사실인데 IME 를 따로 사용하시려면..
아래 일리히트 포럼에서 IrrlichtML 1.7.1 Unicode 를 다운받으신후에
_IRR_USE_INPUT_METHOD이부분 전체 검색하셔서 자신의 1.72소스에 붙여 넣으시면 됨니다..
참고 사항
일리히트 포럼
도플광어의 게임엔진 연구소
'GameEngine' 카테고리의 다른 글
일리히트 Irrlicht 1.7 버전 이상에서 한글 출력 사용하기 (0) | 2011.05.05 |
---|