if (FAILED(g_pD3D->CreateDevice(D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, hWnd, D3DCREATE_HARDWARE_VERTEXPROCESSING, &d3dpp, &g_pd3dDevice)))
여기서 FAILED로...
전체 소스를 클래스로 나누고 있는데
windowclassex 초기화 한 이후에
if (SUCCEEDED(InitD3D()))
{
ShowWindow(hWnd, SW_SHOWDEFAULT);
UpdateWindow(hWnd);
}
로 initd3d 함수 호출을 합니다...
initd3d 함수에서
if (NULL == (g_pD3D = Direct3DCreate9(D3D_SDK_VERSION)))
{
return E_FAIL;
} //요긴 에러가 없고
ZeroMemory(&d3dpp, sizeof(D3DPRESENT_PARAMETERS)); // d3dpp를 클래스 내부에 private 에 D3DPRESENT_PARAMETERS d3dpp; 로 선언했습니다
d3dpp.Windowed = TRUE;
d3dpp.SwapEffect = D3DSWAPEFFECT_DISCARD;
d3dpp.BackBufferFormat = D3DFMT_UNKNOWN;
d3dpp.EnableAutoDepthStencil = TRUE;
d3dpp.AutoDepthStencilFormat = D3DFMT_D16;
if (FAILED(g_pD3D->CreateDevice(D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, hWnd, D3DCREATE_HARDWARE_VERTEXPROCESSING, &d3dpp, &g_pd3dDevice)))
{
MessageBox(0, "CreateDevice E_FAIL", 0, 0);
return E_FAIL;
}
g_pd3dDevice->SetRenderState(D3DRS_CULLMODE, D3DCULL_NONE);
g_pd3dDevice->SetRenderState(D3DRS_ZENABLE, TRUE);
뭐가 문젤까요.....
g_pD3D랑 g_pd3dDevice 도 클래스 내부에 private로
LPDIRECT3D9 g_pD3D;
LPDIRECT3DDEVICE9 g_pd3dDevice;
선언을 마치고 생성자에서 NULL로 초기화 했습니다..
왜 안될까요....