void CDX8Disp::LoadSettings(char *reg_path, int flags) { if(m_dx8_initialised_ok == false) { return; } DWORD adapter, aatype; if(reg_get_dword(reg_path, "D3D8_Adapter", &adapter) == false) { UpdateAdapterList(); return; } UpdateAdapterList(adapter); // Getting mode options is a bit more complicated char mode_string[1024]; bool result = false; unsigned int width, height; int cdepth; char *reg_name = "Videocard"; if(reg_get_sz(reg_path, reg_name, mode_string, 1024)) if(sscanf(mode_string, "D3D8-(%dx%d)x%d bit", &width, &height, &cdepth) == 3) result = true; // No mode found, show user choice and return if(result == false) { UpdateResList(); return; } // Show user choice and set if next setting is already set UpdateResList(width, height, cdepth); if(reg_get_dword(reg_path, "D3D8_AAType", &aatype) == false) { // No setting found, show user choice and return UpdateAntialiasList(); return; } UpdateAntialiasList(aatype); }
/** * Initialise the dialog ready for viewing */ BOOL CDX5Disp::OnInitDialog() { CDialog::OnInitDialog(); UpdateResList(); return TRUE; // return TRUE unless you set the focus to a control // EXCEPTION: OCX Property Pages should return FALSE }
void CDX8Disp::OnAllowNonSmodes() { m_allow_only_standard_modes = !m_show_all_modes_checkbox.GetCheck(); UpdateResList(); if(!m_allow_only_standard_modes) { MessageBox("IA DX8 will run under non standard modes but it is not fully supported so expect bugs","Warning",MB_ICONWARNING); } }
void CDX8Disp::UpdateAdapterList(int select) { DBUGFILE_OUTPUT_1("Requesting adapter %d", select); if (d3d_interface == NULL) return; // set color depth defaults m_cdepth_list.ResetContent(); m_cdepth_list.AddString(color_depthDX[0].text); m_cdepth_list.AddString(color_depthDX[1].text); m_adapter_list.ResetContent(); D3DADAPTER_IDENTIFIER8 identifier; int num_adapters = d3d_interface->GetAdapterCount(); if(num_adapters == 0) { MessageBox("Fatal error, no adapters!", "Error", MB_ICONERROR); return; } for(int i = 0; i < num_adapters; i++) { if(FAILED(d3d_interface->GetAdapterIdentifier(i, D3DENUM_NO_WHQL_LEVEL, &identifier))) { MessageBox("Failed GetAdapterIdentifier in UpdateAdapterList; trying with WHQL_LEVEL", "Error", MB_ICONWARNING); if(FAILED(d3d_interface->GetAdapterIdentifier(i, 0, &identifier))) { MessageBox("Failed again, cannot get adapter", "Error", MB_ICONERROR); return; } } m_adapter_list.AddString(identifier.Description); } if(select >= num_adapters) { select = 0; } m_adapter_list.SetCurSel(select); UpdateResList(); }
void CDX8Disp::OnChangeCDepth() { int cur_pos = m_res_list.GetCurSel(); if (cur_pos == CB_ERR) return; int selected_adapter = m_adapter_list.GetCurSel(); int offset = m_res_list.GetItemData(cur_pos); if (offset < 0) offset = 0; D3DDISPLAYMODE mode; if ( SUCCEEDED(d3d_interface->EnumAdapterModes(selected_adapter, offset, &mode)) ) UpdateResList(mode.Width, mode.Height); }
void CDX8Disp::OnSelchangeAdapterList() { UpdateResList(); }