⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 options.cpp

📁 一个用于智能手机的多媒体库适合S60 WinCE的跨平台开发库
💻 CPP
📖 第 1 页 / 共 4 页
字号:
BOOL COptRender::OnInitDialog() {	CDialog::OnInitDialog();		WinGPAC *gpac = GetApp();	const char *sOpt;		sOpt = gf_cfg_get_key(gpac->m_user.config, "Rendering", "RendererName");	m_Use3DRender.SetCheck( (sOpt && strstr(sOpt, "3D")) ? 1 : 0);	sOpt = gf_cfg_get_key(gpac->m_user.config, "Rendering", "ForceSceneSize");	m_ForceSize.SetCheck( (sOpt && !stricmp(sOpt, "yes")) ? 1 : 0);	sOpt = gf_cfg_get_key(gpac->m_user.config, "Rendering", "FrameRate");	if (!sOpt) sOpt = "30.0";	s32 select = 0;	while (m_BIFSRate.GetCount()) m_BIFSRate.DeleteString(0);	for (s32 i = 0; i<NUM_RATES; i++) {		m_BIFSRate.AddString(BIFSRates[i]);		if (sOpt && !stricmp(sOpt, BIFSRates[i]) ) select = i;	}	m_BIFSRate.SetCurSel(select);		sOpt = gf_cfg_get_key(gpac->m_user.config, "Rendering", "FastRender");	m_FastRender.SetCheck( (sOpt && !stricmp(sOpt, "yes")) ? 1 : 0);		sOpt = gf_cfg_get_key(gpac->m_user.config, "Rendering", "AntiAlias");	while (m_AntiAlias.GetCount()) m_AntiAlias.DeleteString(0);	m_AntiAlias.AddString("None");	m_AntiAlias.AddString("Text only");	m_AntiAlias.AddString("Complete");	select = 2;	if (sOpt && !stricmp(sOpt, "Text")) select = 1;	else if (sOpt && !stricmp(sOpt, "None")) select = 0;	m_AntiAlias.SetCurSel(select);	/*graphics driver enum*/	while (m_Graphics.GetCount()) m_Graphics.DeleteString(0);	sOpt = gf_cfg_get_key(gpac->m_user.config, "Rendering", "Raster2D");	s32 count = gf_modules_get_count(gpac->m_user.modules);	GF_BaseInterface *ifce;	select = 0;	u32 to_sel = 0;	for (i=0; i<count; i++) {		ifce = gf_modules_load_interface(gpac->m_user.modules, i, GF_RASTER_2D_INTERFACE);		if (!ifce) continue;		if (sOpt && !stricmp(ifce->module_name, sOpt)) select = to_sel;		m_Graphics.AddString(ifce->module_name);		gf_modules_close_interface(ifce);		to_sel++;	}	m_Graphics.SetCurSel(select);	m_DrawBounds.AddString("None");	m_DrawBounds.AddString("Box/Rect");	m_DrawBounds.AddString("AABB Tree");	sOpt = gf_cfg_get_key(gpac->m_user.config, "Rendering", "BoundingVolume");	if (sOpt && !stricmp(sOpt, "Box")) m_DrawBounds.SetCurSel(1);	else if (sOpt && !stricmp(sOpt, "AABB")) m_DrawBounds.SetCurSel(2);	else m_DrawBounds.SetCurSel(0);	return TRUE;  }Bool COptRender::SaveOptions(){	char str[50];	WinGPAC *gpac = GetApp();	gf_cfg_set_key(gpac->m_user.config, "Rendering", "FastRender", m_FastRender.GetCheck() ? "yes" : "no");	gf_cfg_set_key(gpac->m_user.config, "Rendering", "ForceSceneSize", m_ForceSize.GetCheck() ? "yes" : "no");	s32 sel = m_BIFSRate.GetCurSel();	gf_cfg_set_key(gpac->m_user.config, "Rendering", "FrameRate", BIFSRates[sel]);	sel = m_AntiAlias.GetCurSel();	gf_cfg_set_key(gpac->m_user.config, "Rendering", "AntiAlias", (sel==0) ? "None" : ( (sel==1) ? "Text" : "All"));	sel = m_DrawBounds.GetCurSel();	gf_cfg_set_key(gpac->m_user.config, "Rendering", "BoundingVolume", (sel==2) ? "AABB" : (sel==1) ? "Box" : "None");	m_Graphics.GetWindowText(str, 50);	gf_cfg_set_key(gpac->m_user.config, "Rendering", "Raster2D", str);	const char *opt;	opt = gf_cfg_get_key(gpac->m_user.config, "Rendering", "RendererName");	if (!opt || strstr(opt, "2D")) {		if (!m_Use3DRender.GetCheck()) return 0;		gf_cfg_set_key(gpac->m_user.config, "Rendering", "RendererName", "GPAC 3D Renderer");		return 1;	}	if (m_Use3DRender.GetCheck()) return 0;	gf_cfg_set_key(gpac->m_user.config, "Rendering", "RendererName", "GPAC 2D Renderer");	return 1;}COptRender2D::COptRender2D(CWnd* pParent /*=NULL*/)	: CDialog(COptRender2D::IDD, pParent){	//{{AFX_DATA_INIT(COptRender2D)		// NOTE: the ClassWizard will add member initialization here	//}}AFX_DATA_INIT}void COptRender2D::DoDataExchange(CDataExchange* pDX){	CDialog::DoDataExchange(pDX);	//{{AFX_DATA_MAP(COptRender2D)	DDX_Control(pDX, IDC_FORMAT_YUV, m_YUVFormat);	DDX_Control(pDX, IDC_YUV, m_NoYUV);	DDX_Control(pDX, IDC_ZOOM_SCALABLE, m_Scalable);	DDX_Control(pDX, IDC_DIRECTRENDER, m_DirectRender);	//}}AFX_DATA_MAP}BEGIN_MESSAGE_MAP(COptRender2D, CDialog)	//{{AFX_MSG_MAP(COptRender2D)	//}}AFX_MSG_MAPEND_MESSAGE_MAP()/////////////////////////////////////////////////////////////////////////////// COptRender2D message handlersBOOL COptRender2D::OnInitDialog() {	CDialog::OnInitDialog();		WinGPAC *gpac = GetApp();	const char *sOpt;	sOpt = gf_cfg_get_key(gpac->m_user.config, "Render2D", "DirectRender");	if (sOpt && !stricmp(sOpt, "yes")) {		m_DirectRender.SetCheck(1);	} else {		m_DirectRender.SetCheck(0);	}	sOpt = gf_cfg_get_key(gpac->m_user.config, "Render2D", "ScalableZoom");	if (sOpt && !stricmp(sOpt, "no")) {		m_Scalable.SetCheck(0);	} else {		m_Scalable.SetCheck(1);	}		sOpt = gf_cfg_get_key(gpac->m_user.config, "Render2D", "DisableYUV");	if (sOpt && !stricmp(sOpt, "yes")) {		m_NoYUV.SetCheck(1);	} else {		m_NoYUV.SetCheck(0);	}		SetYUV();	return TRUE;  // return TRUE unless you set the focus to a control	              // EXCEPTION: OCX Property Pages should return FALSE}void COptRender2D::SetYUV(){	WinGPAC *gpac = GetApp();	u32 yuv_format = gf_term_get_option(gpac->m_term, GF_OPT_YUV_FORMAT);	if (!yuv_format) {		m_YUVFormat.SetWindowText("(No YUV used)");	} else {		char str[100];		sprintf(str, "(%s used)", gf_4cc_to_str(yuv_format));		m_YUVFormat.SetWindowText(str);	}}void COptRender2D::SaveOptions(){	WinGPAC *gpac = GetApp();	gf_cfg_set_key(gpac->m_user.config, "Render2D", "DirectRender", m_DirectRender.GetCheck() ? "yes" : "no");	gf_cfg_set_key(gpac->m_user.config, "Render2D", "ScalableZoom", m_Scalable.GetCheck() ? "yes" : "no");	gf_cfg_set_key(gpac->m_user.config, "Render2D", "DisableYUV", m_NoYUV.GetCheck() ? "yes" : "no");}COptRender3D::COptRender3D(CWnd* pParent /*=NULL*/)	: CDialog(COptRender3D::IDD, pParent){	//{{AFX_DATA_INIT(COptRender3D)	//}}AFX_DATA_INIT}void COptRender3D::DoDataExchange(CDataExchange* pDX){	CDialog::DoDataExchange(pDX);	//{{AFX_DATA_MAP(COptRender3D)	DDX_Control(pDX, IDC_BITMAP_USE_PIXEL, m_BitmapPixels);	DDX_Control(pDX, IDC_DISABLE_TX_RECT, m_DisableTXRect);	DDX_Control(pDX, IDC_RASTER_OUTLINE, m_RasterOutlines);	DDX_Control(pDX, IDC_EMUL_POW2, m_EmulPow2);	DDX_Control(pDX, IDC_DISABLE_POLY_AA, m_PolyAA);	DDX_Control(pDX, IDC_DRAW_NORMALS, m_DrawNormals);	DDX_Control(pDX, IDC_BACK_CULL, m_BackCull);	DDX_Control(pDX, IDC_DRAW_MODE, m_Wireframe);	//}}AFX_DATA_MAP}BEGIN_MESSAGE_MAP(COptRender3D, CDialog)	//{{AFX_MSG_MAP(COptRender3D)	//}}AFX_MSG_MAPEND_MESSAGE_MAP()/////////////////////////////////////////////////////////////////////////////// COptRender3D message handlersBOOL COptRender3D::OnInitDialog() {	CDialog::OnInitDialog();		WinGPAC *gpac = GetApp();	const char *sOpt;	m_DrawNormals.AddString("Never");	m_DrawNormals.AddString("Per Face");	m_DrawNormals.AddString("Per Vertex");	sOpt = gf_cfg_get_key(gpac->m_user.config, "Render3D", "DrawNormals");	if (sOpt && !stricmp(sOpt, "PerFace")) m_DrawNormals.SetCurSel(1);	else if (sOpt && !stricmp(sOpt, "PerVertex")) m_DrawNormals.SetCurSel(2);	else m_DrawNormals.SetCurSel(0);	m_BackCull.AddString("Off");	m_BackCull.AddString("On");	m_BackCull.AddString("Alpha");	sOpt = gf_cfg_get_key(gpac->m_user.config, "Render3D", "BackFaceCulling");	if (sOpt && !stricmp(sOpt, "Off")) m_BackCull.SetCurSel(0);	else if (sOpt && !stricmp(sOpt, "Alpha")) m_BackCull.SetCurSel(2);	else m_BackCull.SetCurSel(1);	m_Wireframe.AddString("Solid");	m_Wireframe.AddString("Wireframe");	m_Wireframe.AddString("Both");	sOpt = gf_cfg_get_key(gpac->m_user.config, "Render3D", "Wireframe");	if (sOpt && !stricmp(sOpt, "WireOnly")) m_Wireframe.SetCurSel(1);	else if (sOpt && !stricmp(sOpt, "WireOnSolid")) m_Wireframe.SetCurSel(2);	else m_Wireframe.SetCurSel(0);		sOpt = gf_cfg_get_key(gpac->m_user.config, "Render3D", "RasterOutlines");	m_RasterOutlines.SetCheck((sOpt && !stricmp(sOpt, "yes")) ? 1 : 0);	sOpt = gf_cfg_get_key(gpac->m_user.config, "Render3D", "EmulatePOW2");	m_EmulPow2.SetCheck((sOpt && !stricmp(sOpt, "yes")) ? 1 : 0);	sOpt = gf_cfg_get_key(gpac->m_user.config, "Render3D", "PolygonAA");	m_PolyAA.SetCheck((sOpt && !stricmp(sOpt, "yes")) ? 1 : 0);	sOpt = gf_cfg_get_key(gpac->m_user.config, "Render3D", "BitmapCopyPixels");	m_BitmapPixels.SetCheck((sOpt && !stricmp(sOpt, "yes")) ? 1 : 0);		sOpt = gf_cfg_get_key(gpac->m_user.config, "Render3D", "DisableRectExt");	m_DisableTXRect.SetCheck((sOpt && !stricmp(sOpt, "yes")) ? 1 : 0);	return TRUE;  // return TRUE unless you set the focus to a control	              // EXCEPTION: OCX Property Pages should return FALSE}void COptRender3D::SaveOptions(){	WinGPAC *gpac = GetApp();	u32 sel = m_DrawNormals.GetCurSel();	gf_cfg_set_key(gpac->m_user.config, "Render3D", "DrawNormals", (sel==2) ? "PerVertex" : (sel==1) ? "PerFace" : "Never");	sel = m_BackCull.GetCurSel();	gf_cfg_set_key(gpac->m_user.config, "Render3D", "BackFaceCulling", (sel==2) ? "Alpha" : (sel==1) ? "On" : "Off");	sel = m_Wireframe.GetCurSel();	gf_cfg_set_key(gpac->m_user.config, "Render3D", "Wireframe", (sel==2) ? "WireOnSolid" : (sel==1) ? "WireOnly" : "WireNone");	gf_cfg_set_key(gpac->m_user.config, "Render3D", "RasterOutlines", m_RasterOutlines.GetCheck() ? "yes" : "no");	gf_cfg_set_key(gpac->m_user.config, "Render3D", "EmulatePOW2", m_EmulPow2.GetCheck() ? "yes" : "no");	gf_cfg_set_key(gpac->m_user.config, "Render3D", "PolygonAA", m_PolyAA.GetCheck() ? "yes" : "no");	gf_cfg_set_key(gpac->m_user.config, "Render3D", "DisableRectExt", m_DisableTXRect.GetCheck() ? "yes" : "no");	gf_cfg_set_key(gpac->m_user.config, "Render3D", "BitmapCopyPixels", m_BitmapPixels.GetCheck() ? "yes" : "no");}COptVideo::COptVideo(CWnd* pParent /*=NULL*/)	: CDialog(COptVideo::IDD, pParent){	//{{AFX_DATA_INIT(COptVideo)	//}}AFX_DATA_INIT}void COptVideo::DoDataExchange(CDataExchange* pDX){	CDialog::DoDataExchange(pDX);	//{{AFX_DATA_MAP(COptVideo)	DDX_Control(pDX, IDC_SWITCH_RES, m_SwitchRes);	DDX_Control(pDX, IDC_VIDEO_LIST, m_Videos);	DDX_Control(pDX, IDC_HWMEMORY, m_UseHWMemory);	//}}AFX_DATA_MAP}BEGIN_MESSAGE_MAP(COptVideo, CDialog)	//{{AFX_MSG_MAP(COptVideo)	//}}AFX_MSG_MAPEND_MESSAGE_MAP()/////////////////////////////////////////////////////////////////////////////// COptVideo message handlersBOOL COptVideo::OnInitDialog() {	CDialog::OnInitDialog();	WinGPAC *gpac = GetApp();	const char *sOpt;		sOpt = gf_cfg_get_key(gpac->m_user.config, "Video", "SwitchResolution");	m_SwitchRes.SetCheck(sOpt && !stricmp(sOpt, "yes") ? 1 : 0);	sOpt = gf_cfg_get_key(gpac->m_user.config, "Video", "UseHardwareMemory");	m_UseHWMemory.SetCheck(sOpt && !stricmp(sOpt, "yes") ? 1 : 0);			u32 count = gf_modules_get_count(gpac->m_user.modules);	GF_BaseInterface *ifce;	s32 to_sel = 0;	s32 select = 0;	/*video drivers enum*/	while (m_Videos.GetCount()) m_Videos.DeleteString(0);	sOpt = gf_cfg_get_key(gpac->m_user.config, "Video", "DriverName");	for (u32 i=0; i<count; i++) {		ifce = gf_modules_load_interface(gpac->m_user.modules, i, GF_VIDEO_OUTPUT_INTERFACE);		if (!ifce) continue;		if (sOpt && !stricmp(ifce->module_name, sOpt)) select = to_sel;		m_Videos.AddString(ifce->module_name);		gf_modules_close_interface(ifce);		to_sel++;	}	m_Videos.SetCurSel(select);	return TRUE;	            }void COptVideo::SaveOptions(){	WinGPAC *gpac = GetApp();	char str[50];	gf_cfg_set_key(gpac->m_user.config, "Video", "SwitchResolution", m_SwitchRes.GetCheck() ? "yes" : "no");	gf_cfg_set_key(gpac->m_user.config, "Video", "UseHardwareMemory", m_UseHWMemory.GetCheck() ? "yes" : "no");	m_Videos.GetWindowText(str, 50);	gf_cfg_set_key(gpac->m_user.config, "Video", "DriverName", str);}COptAudio::COptAudio(CWnd* pParent /*=NULL*/)	: CDialog(COptAudio::IDD, pParent){	//{{AFX_DATA_INIT(COptAudio)	//}}AFX_DATA_INIT}void COptAudio::DoDataExchange(CDataExchange* pDX){	CDialog::DoDataExchange(pDX);	//{{AFX_DATA_MAP(COptAudio)	DDX_Control(pDX, IDC_AUDIO_NOTIFS, m_Notifs);	DDX_Control(pDX, IDC_DRIVER_LIST, m_DriverList);	DDX_Control(pDX, IDC_AUDIO_RESYNC, m_AudioResync);	DDX_Control(pDX, IDC_AUDIO_MULTICH, m_AudioMultiCH);	DDX_Control(pDX, IDC_AUDIO_FPS, m_AudioDur);	DDX_Control(pDX, IDC_SPIN_FPS, m_SpinFPS);	DDX_Control(pDX, IDC_FORCE_AUDIO, m_ForceConfig);	DDX_Control(pDX, IDC_SPIN_AUDIO, m_AudioSpin);	DDX_Control(pDX, IDC_EDIT_AUDIO, m_AudioEdit);	//}}AFX_DATA_MAP}BEGIN_MESSAGE_MAP(COptAudio, CDialog)	//{{AFX_MSG_MAP(COptAudio)	ON_BN_CLICKED(IDC_FORCE_AUDIO, OnForceAudio)	ON_CBN_SELCHANGE(IDC_DRIVER_LIST, OnSelchangeDriverList)	//}}AFX_MSG_MAPEND_MESSAGE_MAP()/////////////////////////////////////////////////////////////////////////////// COptAudio message handlersBOOL COptAudio::OnInitDialog() {	CDialog::OnInitDialog();	m_AudioSpin.SetBuddy(& m_AudioEdit);	m_SpinFPS.SetBuddy(& m_AudioDur);	m_SpinFPS.SetRange(0, 2000);	WinGPAC *gpac = GetApp();	const char *sOpt;	sOpt = gf_cfg_get_key(gpac->m_user.config, "Audio", "ForceConfig");	if (sOpt && !stricmp(sOpt, "yes")) {		m_ForceConfig.SetCheck(1);	} else {		m_ForceConfig.SetCheck(0);	}	sOpt = gf_cfg_get_key(gpac->m_user.config, "Audio", "NumBuffers");	if (sOpt) {		m_AudioEdit.SetWindowText(sOpt);	} else {		m_AudioEdit.SetWindowText("2");	}	sOpt = gf_cfg_get_key(gpac->m_user.config, "Audio", "TotalDuration");	if (sOpt) {		m_AudioDur.SetWindowText(sOpt);	} else {		m_AudioDur.SetWindowText("120");	}	OnForceAudio();	sOpt = gf_cfg_get_key(gpac->m_user.config, "Audio", "NoResync");	m_AudioResync.SetCheck( (sOpt && !stricmp(sOpt, "yes")) ? 1 : 0);	sOpt = gf_cfg_get_key(gpac->m_user.config, "Audio", "DisableMultiChannel");	m_AudioMultiCH.SetCheck((sOpt && !stricmp(sOpt, "yes")) ? 1 : 0);		/*driver enum*/	while (m_DriverList.GetCount()) m_DriverList.DeleteString(0);	sOpt = gf_cfg_get_key(gpac->m_user.config, "Audio", "DriverName");	u32 count = gf_modules_get_count(gpac->m_user.modules);	GF_BaseInterface *ifce;	s32 select = 0;	s32 to_sel = 0;	for (u32 i=0; i<count; i++) {		ifce = gf_modules_load_interface(gpac->m_user.modules, i, GF_AUDIO_OUTPUT_INTERFACE);		if (!ifce) continue;		if (sOpt && !stricmp(ifce->module_name, sOpt)) select = to_sel;		m_DriverList.AddString(ifce->module_name);		gf_modules_close_interface(ifce);		to_sel++;	}	m_DriverList.SetCurSel(select);	m_Notifs.ShowWindow(SW_HIDE);	if (sOpt && strstr(sOpt, "DirectSound")) m_Notifs.ShowWindow(SW_SHOW);	sOpt = gf_cfg_get_key(gpac->m_user.config, "Audio", "DisableNotification");	if (sOpt && !stricmp(sOpt, "yes")) 		m_Notifs.SetCheck(1);	else		m_Notifs.SetCheck(0);	return TRUE;  }void COptAudio::SaveOptions(){	WinGPAC *gpac = GetApp();	char str[50];	gf_cfg_set_key(gpac->m_user.config, "Audio", "ForceConfig", m_ForceConfig.GetCheck() ? "yes" : "no");	gf_cfg_set_key(gpac->m_user.config, "Audio", "NoResync", m_AudioResync.GetCheck() ? "yes" : "no");	gf_cfg_set_key(gpac->m_user.config, "Audio", "DisableMultiChannel", m_AudioMultiCH.GetCheck() ? "yes" : "no");	m_AudioEdit.GetWindowText(str, 20);	gf_cfg_set_key(gpac->m_user.config, "Audio", "NumBuffers", str);	m_AudioDur.GetWindowText(str, 20);	gf_cfg_set_key(gpac->m_user.config, "Audio", "TotalDuration", str);	m_DriverList.GetWindowText(str, 50);	gf_cfg_set_key(gpac->m_user.config, "Audio", "DriverName", str);	if (strstr(str, "DirectSound")) {		gf_cfg_set_key(gpac->m_user.config, "Audio", "DisableNotification", m_Notifs.GetCheck() ? "yes" : "no");	}}void COptAudio::OnForceAudio() {	BOOL en = m_ForceConfig.GetCheck();	m_AudioSpin.EnableWindow(en);	m_AudioEdit.EnableWindow(en);	m_SpinFPS.EnableWindow(en);	m_AudioDur.EnableWindow(en);}void COptAudio::OnSelchangeDriverList() 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -