취미로 게임 HUD를 하나 만들고 있는데,
와우 해본 사람은 알겠지만 와우는 자체 API가 있어서 LUA로 HUD 애드온은 만들기가 굉장히 편하잖아.
와우 이야기는 아니고,
여튼 어떠한 게임이든 프로그램이든 간에,
GetDC(handle) 로 얻은 타겟 화면위에 무언가를 올릴려고 하는데 소스가 흔치 않아
그냥 자기 폼정도에 DrawLine, DrawString은 널렸는데 말이야..
내가 그릴려는 것들은 다 준비되어 있는데
그릴 타이밍을 잡는게 1순위더라고.
타이머 짧게 둬서 주구장창 그려재끼는 것은 크게 좋은 방법 같지가 않더라.
부하가 심한 느낌도 들고 깜빡이는 현상을 원천적으로 해소하는 방법은 아니잖아?
그래서 타겟 핸들의 WM_PAINT Message 를 Hook 해서 그릴 방법을 생각하고 있는데
그러다가 PreFilterMessage 라는게 눈에 띄어서 한번 해보고 있는데
이거는 그냥 자기 자신의 메세지만 필터 하는 모양이더라? 맞나? <---------------- 대답 좀 부탁
에서 메세지 발생을 감지하면 텍박에 찍어 보면 아주 평온한 상태에서는 내용 추가도 없고
이리저리 흔들거나 그러면 메세지가 좌르륵 보여.
그리하여, 위의 대답에서 자기 메세지만 필터 하는게 맞다라면 이건 완전 틀린 짓거리고
결국 Win32 API로 전역 후킹할 궁리를 하는게 유일한 길인거야?
와우 해본 사람은 알겠지만 와우는 자체 API가 있어서 LUA로 HUD 애드온은 만들기가 굉장히 편하잖아.
와우 이야기는 아니고,
여튼 어떠한 게임이든 프로그램이든 간에,
GetDC(handle) 로 얻은 타겟 화면위에 무언가를 올릴려고 하는데 소스가 흔치 않아
그냥 자기 폼정도에 DrawLine, DrawString은 널렸는데 말이야..
내가 그릴려는 것들은 다 준비되어 있는데
그릴 타이밍을 잡는게 1순위더라고.
타이머 짧게 둬서 주구장창 그려재끼는 것은 크게 좋은 방법 같지가 않더라.
부하가 심한 느낌도 들고 깜빡이는 현상을 원천적으로 해소하는 방법은 아니잖아?
그래서 타겟 핸들의 WM_PAINT Message 를 Hook 해서 그릴 방법을 생각하고 있는데
그러다가 PreFilterMessage 라는게 눈에 띄어서 한번 해보고 있는데
이거는 그냥 자기 자신의 메세지만 필터 하는 모양이더라? 맞나? <---------------- 대답 좀 부탁
에서 메세지 발생을 감지하면 텍박에 찍어 보면 아주 평온한 상태에서는 내용 추가도 없고
이리저리 흔들거나 그러면 메세지가 좌르륵 보여.
그리하여, 위의 대답에서 자기 메세지만 필터 하는게 맞다라면 이건 완전 틀린 짓거리고
결국 Win32 API로 전역 후킹할 궁리를 하는게 유일한 길인거야?
게임에서 그려지는 화면이면 WM_PAINT로 그려지기 보다는, 게임 루프돌면서 매 프레임마다 자동으로 갱신되는거라