gsdx-cl: update linux menu config

Try to use some id to be more robust

The best will be to sort the array first
This commit is contained in:
Gregory Hainaut 2014-12-01 23:34:37 +01:00
parent 76f719e5d0
commit 4238261784
2 changed files with 25 additions and 28 deletions

View File

@ -31,30 +31,29 @@ GtkWidget* CreateRenderComboBox()
render_combo_box = gtk_combo_box_new_text (); render_combo_box = gtk_combo_box_new_text ();
for(size_t i = 6; i < theApp.m_gs_renderers.size(); i++) for(auto s = theApp.m_gs_renderers.begin(); s != theApp.m_gs_renderers.end(); s++)
{ {
const GSSetting& s = theApp.m_gs_renderers[i]; string label = s->name;
string label = s.name; if(!s->note.empty()) label += format(" (%s)", s->note.c_str());
if(!s.note.empty()) label += format(" (%s)", s.note.c_str());
// Add some tags to ease users selection // Add some tags to ease users selection
switch (i) { switch (s->id) {
// better use opengl instead of SDL // Supported opengl
case 6: case 12:
case 7: case 13:
label += " (removed)"; case 17:
break; break;
// (dev only) for any NULL stuff // (dev only) for any NULL stuff
case 8: case 10:
case 9: case 11:
case 16:
label += " (debug only)"; label += " (debug only)";
break; break;
default: default:
break; continue;
} }
gtk_combo_box_append_text(GTK_COMBO_BOX(render_combo_box), label.c_str()); gtk_combo_box_append_text(GTK_COMBO_BOX(render_combo_box), label.c_str());
@ -62,13 +61,15 @@ GtkWidget* CreateRenderComboBox()
switch (theApp.GetConfig("renderer", 0)) { switch (theApp.GetConfig("renderer", 0)) {
// Note the value are based on m_gs_renderers vector on GSdx.cpp // Note the value are based on m_gs_renderers vector on GSdx.cpp
case 10: renderer_box_position = 2; break; case 10: renderer_box_position = 0; break;
case 11: renderer_box_position = 3; break; case 16: renderer_box_position = 1; break;
case 12: renderer_box_position = 4; break; case 11: renderer_box_position = 2; break;
case 13: renderer_box_position = 5; break; case 12: renderer_box_position = 3; break;
case 13: renderer_box_position = 4; break;
case 17: renderer_box_position = 5; break;
// Fallback to openGL SW // Fallback to openGL SW
default: renderer_box_position = 5; break; default: renderer_box_position = 4; break;
} }
gtk_combo_box_set_active(GTK_COMBO_BOX(render_combo_box), renderer_box_position); gtk_combo_box_set_active(GTK_COMBO_BOX(render_combo_box), renderer_box_position);
return render_combo_box; return render_combo_box;
@ -483,10 +484,12 @@ override_GL_ARB_shading_language_420pack = -1
if (gtk_combo_box_get_active(GTK_COMBO_BOX(render_combo_box)) != -1) { if (gtk_combo_box_get_active(GTK_COMBO_BOX(render_combo_box)) != -1) {
// Note the value are based on m_gs_renderers vector on GSdx.cpp // Note the value are based on m_gs_renderers vector on GSdx.cpp
switch (gtk_combo_box_get_active(GTK_COMBO_BOX(render_combo_box))) { switch (gtk_combo_box_get_active(GTK_COMBO_BOX(render_combo_box))) {
case 2: theApp.SetConfig("renderer", 10); break; case 0: theApp.SetConfig("renderer", 10); break;
case 3: theApp.SetConfig("renderer", 11); break; case 1: theApp.SetConfig("renderer", 16); break;
case 4: theApp.SetConfig("renderer", 12); break; case 2: theApp.SetConfig("renderer", 11); break;
case 5: theApp.SetConfig("renderer", 13); break; case 3: theApp.SetConfig("renderer", 12); break;
case 4: theApp.SetConfig("renderer", 13); break;
case 5: theApp.SetConfig("renderer", 17); break;
// Fallback to SW opengl // Fallback to SW opengl
default: theApp.SetConfig("renderer", 13); break; default: theApp.SetConfig("renderer", 13); break;

View File

@ -135,12 +135,6 @@ GSdxApp::GSdxApp()
m_gs_renderers.push_back(GSSetting(4, "Direct3D", "Software")); m_gs_renderers.push_back(GSSetting(4, "Direct3D", "Software"));
m_gs_renderers.push_back(GSSetting(15, "Direct3D", "OpenCL")); m_gs_renderers.push_back(GSSetting(15, "Direct3D", "OpenCL"));
m_gs_renderers.push_back(GSSetting(5, "Direct3D", "Null")); m_gs_renderers.push_back(GSSetting(5, "Direct3D", "Null"));
#ifdef _LINUX
// note: SDL was removed. We keep those bits for compatibility of the renderer
// position in the linux dialog.
m_gs_renderers.push_back(GSSetting(7, "SDL 1.3", "Software"));
m_gs_renderers.push_back(GSSetting(8, "SDL 1.3", "Null"));
#endif
m_gs_renderers.push_back(GSSetting(10, "Null", "Software")); m_gs_renderers.push_back(GSSetting(10, "Null", "Software"));
m_gs_renderers.push_back(GSSetting(16, "Null", "OpenCL")); m_gs_renderers.push_back(GSSetting(16, "Null", "OpenCL"));
m_gs_renderers.push_back(GSSetting(11, "Null", "Null")); m_gs_renderers.push_back(GSSetting(11, "Null", "Null"));