diff --git a/plugins/GSdx/GSLinuxDialog.cpp b/plugins/GSdx/GSLinuxDialog.cpp index a4a490f157..5f95434e0c 100644 --- a/plugins/GSdx/GSLinuxDialog.cpp +++ b/plugins/GSdx/GSLinuxDialog.cpp @@ -287,15 +287,13 @@ void populate_sw_table(GtkWidget* sw_table) GtkWidget* threads_spin = CreateSpinButton(0, 32, "extrathreads"); GtkWidget* aa_check = CreateCheckBox("Edge anti-aliasing (AA1)", "aa1"); - GtkWidget* mipmap_check = CreateCheckBox("Mipmap", "mipmap"); AddTooltip(aa_check, IDC_AA1); - AddTooltip(mipmap_check, IDC_MIPMAP); AddTooltip(threads_label, threads_spin, IDC_SWTHREADS); s_table_line = 0; InsertWidgetInTable(sw_table , threads_label , threads_spin); - InsertWidgetInTable(sw_table , aa_check, mipmap_check); + InsertWidgetInTable(sw_table , aa_check); } void populate_shader_table(GtkWidget* shader_table) @@ -396,10 +394,16 @@ void populate_main_table(GtkWidget* main_table) GtkWidget* render_combo_box = CreateComboBoxFromVector(theApp.m_gs_renderers, "Renderer"); GtkWidget* interlace_label = left_label("Interlacing (F5):"); GtkWidget* interlace_combo_box = CreateComboBoxFromVector(theApp.m_gs_interlace, "interlace"); + GtkWidget* mipmap_label = left_label("Mipmap (Insert):"); + GtkWidget* mipmap_combo_box = CreateComboBoxFromVector(theApp.m_gs_hack, "mipmap"); + + AddTooltip(mipmap_label, IDC_MIPMAP); + AddTooltip(mipmap_combo_box, IDC_MIPMAP); s_table_line = 0; InsertWidgetInTable(main_table, render_label, render_combo_box); InsertWidgetInTable(main_table, interlace_label, interlace_combo_box); + InsertWidgetInTable(main_table, mipmap_label, mipmap_combo_box); } void populate_debug_table(GtkWidget* debug_table) diff --git a/plugins/GSdx/GSRenderer.cpp b/plugins/GSdx/GSRenderer.cpp index 9de1c1f599..34c71f95e2 100644 --- a/plugins/GSdx/GSRenderer.cpp +++ b/plugins/GSdx/GSRenderer.cpp @@ -28,6 +28,7 @@ const unsigned int s_interlace_nb = 8; const unsigned int s_post_shader_nb = 5; const unsigned int s_aspect_ratio_nb = 3; +const unsigned int s_mipmap_nb = 3; GSRenderer::GSRenderer() : m_shader(0) @@ -616,8 +617,8 @@ void GSRenderer::KeyEvent(GSKeyEventData* e) printf("GSdx: (Software) Edge anti-aliasing is now %s.\n", m_aa1 ? "enabled" : "disabled"); return; case VK_INSERT: - m_mipmap = !m_mipmap; - printf("GSdx: Mipmapping is now %s.\n", m_mipmap ? "enabled" : "disabled"); + m_mipmap = (m_mipmap + s_mipmap_nb + step) % s_mipmap_nb; + printf("GSdx: Mipmapping is now %s.\n", theApp.m_gs_hack.at(m_mipmap).name.c_str()); return; case VK_PRIOR: m_fxaa = !m_fxaa; diff --git a/plugins/GSdx/GSSetting.cpp b/plugins/GSdx/GSSetting.cpp index 774a08c2c1..e59329638f 100644 --- a/plugins/GSdx/GSSetting.cpp +++ b/plugins/GSdx/GSSetting.cpp @@ -142,7 +142,7 @@ const char* dialog_message(int ID, bool* updateText) { case IDC_PRELOAD_GS: return "Uploads GS data when rendering a new frame to reproduce some effects accurately. Fixes black screen issues in games like Armored Core: Last Raven."; case IDC_MIPMAP: - return "Enables mipmapping, which some games require to render correctly. Turn off only for debug purposes."; + return "Enables mipmapping, which some games require to render correctly."; case IDC_FAST_TC_INV: return "By default, the texture cache handles partial invalidations. Unfortunately it is very costly to compute CPU wise." "\n\nThis hack replaces the partial invalidation with a complete deletion of the texture to reduce the CPU load.\n\nIt helps snowblind engine game.";