Esempio n. 1
0
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);
}
Esempio n. 2
0
/** 
 * 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
}
Esempio n. 3
0
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);
	}
}
Esempio n. 4
0
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();
}
Esempio n. 5
0
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);
}
Esempio n. 6
0
void CDX8Disp::OnSelchangeAdapterList() 
{
	UpdateResList();
}