HRESULT SampleShaderPluginVertexShader::ConfirmDevice(ID3DGraphicsWindow *d3dgw) { pd3dDevice = d3dgw->GetDevice(); pd3dDevice->AddRef(); D3DCAPS8 d3dCaps; pd3dDevice->GetDeviceCaps(&d3dCaps); return S_OK; }
BOOL Init_DX( HWND hWnd ) { D3DPRESENT_PARAMETERS d3dpp; ZeroMemory ( &d3dpp, sizeof ( d3dpp ) ); d3dpp.Windowed = TRUE; d3dpp.SwapEffect = D3DSWAPEFFECT_FLIP; d3dpp.BackBufferWidth = SCREENWIDTH; d3dpp.BackBufferHeight = SCREENHEIGHT; d3dpp.BackBufferFormat = D3DFMT_R5G6B5; d3dpp.EnableAutoDepthStencil = TRUE; d3dpp.AutoDepthStencilFormat = D3DFMT_D16; lpD3D = Direct3DCreate8 ( D3D_SDK_VERSION ) ; if( FAILED( lpD3D->CreateDevice( D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, hWnd, D3DCREATE_SOFTWARE_VERTEXPROCESSING, &d3dpp, &lpDevice ) ) ) { d3dpp.BackBufferFormat = D3DFMT_X1R5G5B5; if ( FAILED ( lpD3D->CreateDevice ( D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, hWnd, D3DCREATE_SOFTWARE_VERTEXPROCESSING, &d3dpp, &lpDevice ) ) ) return false; } D3DCAPS8 DevCaps; ZeroMemory( &DevCaps, sizeof ( D3DCAPS8 ) ); lpDevice->GetDeviceCaps ( &DevCaps ); return TRUE; }