|
renderForm에서 d3d를 초기화 하는게 FormCreate였는데 위치가 문제 였더군요
<<mainForm>>
1. renderForm = new
2. renderForm->Parent = mainForm;
3. renderForm->Show();
<<renderForm::FormCreate>>
4. initD3D(this->Handle);
이렇게 했는데
순서가
1 -> 4 -> 2 -> 3
이더군요
d3d가 초기화 된후에 부모의 핸들이 바뀌면 d3d를 다시 초기화 해야 합니다.
이상 자문자답이였습니다.
이단자 님이 쓰신 글 :
: 폼이 따로 있을때는 렌더링이 잘 됩니다.
: 그러다가 버튼을 누르면 렌더링 폼을 다른 폼의 자식으로 하게 했는데 그러면 렌더링 하는것이 출력이 안되더군요.
: FALSE를 리턴한다던가 하는것도 없고... 로직 자체는 잘 돌아가고 있는것 같은데...
: -버튼-
: renderForm->Parent = mainForm;
: 이렇게
:
:
: hz/장석현 님이 쓰신 글 :
: : 동적생성 후에 device를 생성하는 부분을 확인 해 보시길 바랍니다.
: : 동적생성 하신 창에 렌더를 하기 위해서는 device를 생성 할 때 그 창의 핸들을 넘겨 줘야 합니다.
: : d3d쪽의 initialize 문제 일 듯 합니다.
: :
: : - hz -
: :
: :
: : 이단자 님이 쓰신 글 :
: : : d3d를 렌더하고 있는 폼을 다른폼에 자식으로 만들면 화면이 안나오더군요..
: : : 어떻게 해야 하는지 난감...
: : :
: : : MainFrom, D3DForm으로 만들어져 있습니다.
: : :
: : : D3DForm에서 렌더링을 하고 있습니다. 실행하면 잘 됩니다.
: : :
: : : 하지만
: : : D3DForm을 MainFrom에 동적으로 생성해서 자식 폼으로 하면 안되던군요
: : :
: : : - MainForm::FormCreate -
: : : D3DForm* form = new D3DForm(this);
: : : form->Parent = this;
: : : form->Align = alClient;
: : : form->Show();
: : :
: : : 이렇게 했습니다.
: : :
: : : 원래 안되는건지 아니면 다른 뭔가를 해줘야 하는건가요?
|