|
안녕하세여..
VCL을 이용해서 D3D 을 초기화 해서 3D 툴을 만들려구 하는데
초기화가 잘 되지 않는군여..
이것저것 알아보구 초기화는 성공했는데
실제 돌려보면 폼이 활성화 시에는 빠른데 최소화 또는 선택이 되지 않을때는
화면이 멈출정도로 CPU점유을 하는군여..
아무리 생각해도 메세지 부분이 잘못 되서 CPU점유가 높은것 같은데
어떻게 해결해야 할지 모르겠습니다.'
..........................................................
h 파일
// 3D
void __fastcall SetWindowSize();
void __fastcall Render_3D();
BEGIN_MESSAGE_MAP
VCL_MESSAGE_HANDLER(WM_INITD3D, TMessage, InitD3D)
VCL_MESSAGE_HANDLER(WM_INITDATA, TMessage, InitData)
VCL_MESSAGE_HANDLER(WM_MAINLOOP, TMessage, MainLoop)
END_MESSAGE_MAP(TForm)
bool H_Loop;
bool H_Render;
추가
Cpp 파일
void __fastcall TForm1::FormCreate(TObject *Sender)
{
PostMessage(Handle, WM_INITD3D, 0, 0);
PostMessage(Handle, WM_INITDATA, 0, 0);
PostMessage(Handle, WM_MAINLOOP, 0, 0);
}
void __fastcall TForm1::MainLoop(TMessage &Msg)
{
Application->ProcessMessages();
if ( H_Render ) {
Render_3D();
}
}
..........................................................................
이런식으로 하라구 나와 있는데 그대로 했는데 잘 되기는 하나
최소화 또는 윈도우가 활성화 되지 않으면 CPU점유가 넘 커서 컴터가 느려지는군여
마우스가 안움직일정도 ㅡ..ㅡ;;
아시는분 답변 꼭 부탁합니다.
첫걸음부터 쉽지가 않습니다. ㅠㅠ
|