void populate_osd_table(GtkWidget* osd_table) { GtkWidget* fontname_label = left_label("Font:"); GtkWidget* fontname_file = CreateFileChooser(GTK_FILE_CHOOSER_ACTION_OPEN, "Select a font", "osd_fontname"); GtkWidget* fontsize_label = left_label("Size:"); GtkWidget* fontsize_text = CreateSpinButton(1, 100, "osd_fontsize"); GtkWidget* transparency_label = left_label("Transparency:"); GtkWidget* transparency_slide = CreateScale("osd_transparency"); GtkWidget* log_check = CreateCheckBox("Enable Log", "osd_log_enabled"); GtkWidget* log_speed_label = left_label("Speed:"); GtkWidget* log_speed_text = CreateSpinButton(2, 10, "osd_log_speed"); GtkWidget* max_messages_label = left_label("Maximum Onscreen Log Messages:"); GtkWidget* max_messages_spin = CreateSpinButton(1, 20, "osd_max_log_messages"); GtkWidget* monitor_check = CreateCheckBox("Enable Monitor", "osd_monitor_enabled"); GtkWidget* indicator_check = CreateCheckBox("Enable Indicator", "osd_indicator_enabled"); AddTooltip(log_check, IDC_OSD_LOG); AddTooltip(monitor_check, IDC_OSD_MONITOR); AddTooltip(max_messages_label, max_messages_spin, IDC_OSD_MAX_LOG); InsertWidgetInTable(osd_table , fontname_label , fontname_file); InsertWidgetInTable(osd_table , fontsize_label , fontsize_text); InsertWidgetInTable(osd_table , transparency_label , transparency_slide); InsertWidgetInTable(osd_table , log_check); InsertWidgetInTable(osd_table , log_speed_label, log_speed_text); InsertWidgetInTable(osd_table , max_messages_label, max_messages_spin); InsertWidgetInTable(osd_table , monitor_check, indicator_check); }
void populate_main_table(GtkWidget* main_table) { GtkWidget* render_label = left_label("Renderer:"); GtkWidget* render_combo_box = CreateComboBoxFromVector(theApp.m_gs_renderers, "Renderer", static_cast<int>(GSRendererType::Default)); GtkWidget* interlace_label = left_label("Interlacing (F5):"); GtkWidget* interlace_combo_box = CreateComboBoxFromVector(theApp.m_gs_interlace, "interlace", 7); s_table_line = 0; InsertWidgetInTable(main_table, render_label, render_combo_box); InsertWidgetInTable(main_table, interlace_label, interlace_combo_box); }
void populate_gl_table(GtkWidget* gl_table) { GtkWidget* gl_gs_label = left_label("Geometry Shader:"); GtkWidget* gl_gs_combo = CreateComboBoxFromVector(theApp.m_gs_gl_ext, "override_geometry_shader", -1); GtkWidget* gl_ils_label = left_label("Image Load Store:"); GtkWidget* gl_ils_combo = CreateComboBoxFromVector(theApp.m_gs_gl_ext, "override_GL_ARB_shader_image_load_store", -1); s_table_line = 0; InsertWidgetInTable(gl_table , gl_gs_label , gl_gs_combo); InsertWidgetInTable(gl_table , gl_ils_label , gl_ils_combo); }
void populate_gl_table(GtkWidget* gl_table) { GtkWidget* gl_gs_label = left_label("Geometry Shader:"); GtkWidget* gl_gs_combo = CreateComboBoxFromVector(theApp.m_gs_gl_ext, "override_geometry_shader"); GtkWidget* gl_ils_label = left_label("Image Load Store:"); GtkWidget* gl_ils_combo = CreateComboBoxFromVector(theApp.m_gs_gl_ext, "override_GL_ARB_shader_image_load_store"); AddTooltip(gl_gs_label, gl_gs_combo, IDC_GEOMETRY_SHADER_OVERRIDE); AddTooltip(gl_ils_label, gl_ils_combo, IDC_IMAGE_LOAD_STORE); s_table_line = 0; InsertWidgetInTable(gl_table , gl_gs_label , gl_gs_combo); InsertWidgetInTable(gl_table , gl_ils_label , gl_ils_combo); }
void populate_hack_table(GtkWidget* hack_table) { GtkWidget* hack_offset_check = CreateCheckBox("Half-pixel Offset Hack", "UserHacks_HalfPixelOffset"); GtkWidget* hack_skipdraw_label = left_label("Skipdraw:"); GtkWidget* hack_skipdraw_spin = CreateSpinButton(0, 1000, "UserHacks_SkipDraw"); GtkWidget* hack_enble_check = CreateCheckBox("Enable User Hacks", "UserHacks"); GtkWidget* hack_wild_check = CreateCheckBox("Wild Arms Hack", "UserHacks_WildHack"); GtkWidget* hack_tco_label = left_label("Texture Offset: 0x"); GtkWidget* hack_tco_entry = CreateTextBox("UserHacks_TCOffset"); GtkWidget* align_sprite_check = CreateCheckBox("Align sprite hack", "UserHacks_align_sprite_X"); GtkWidget* preload_gs_check = CreateCheckBox("Preload Frame", "preload_frame_with_gs_data"); GtkWidget* hack_safe_fbmask = CreateCheckBox("Safe Accurate Blending", "UserHacks_safe_fbmask"); GtkWidget* hack_fast_inv = CreateCheckBox("Fast Texture Invalidation", "UserHacks_DisablePartialInvalidation"); GtkWidget* hack_depth_check = CreateCheckBox("Disable Depth Emulation", "UserHacks_DisableDepthSupport"); GtkWidget* hack_sprite_box = CreateComboBoxFromVector(theApp.m_gs_hack, "UserHacks_SpriteHack"); GtkWidget* hack_sprite_label = left_label("Alpha-Sprite Hack:"); GtkWidget* stretch_hack_box = CreateComboBoxFromVector(theApp.m_gs_hack, "UserHacks_round_sprite_offset"); GtkWidget* stretch_hack_label = left_label("Align Sprite Texture:"); // Reuse windows helper string :) AddTooltip(hack_offset_check, IDC_OFFSETHACK); AddTooltip(hack_skipdraw_label, IDC_SKIPDRAWHACK); AddTooltip(hack_skipdraw_spin, IDC_SKIPDRAWHACK); gtk_widget_set_tooltip_text(hack_enble_check, "Allows the use of the hack below"); AddTooltip(hack_wild_check, IDC_WILDHACK); AddTooltip(hack_sprite_label, hack_sprite_box, IDC_SPRITEHACK); AddTooltip(hack_tco_label, IDC_TCOFFSETX); AddTooltip(hack_tco_entry, IDC_TCOFFSETX); AddTooltip(align_sprite_check, IDC_ALIGN_SPRITE); AddTooltip(stretch_hack_label, stretch_hack_box, IDC_ROUND_SPRITE); AddTooltip(preload_gs_check, IDC_PRELOAD_GS); AddTooltip(hack_safe_fbmask, IDC_SAFE_FBMASK); AddTooltip(hack_fast_inv, IDC_FAST_TC_INV); AddTooltip(hack_depth_check, IDC_TC_DEPTH); s_table_line = 0; InsertWidgetInTable(hack_table , hack_enble_check); InsertWidgetInTable(hack_table , hack_wild_check , align_sprite_check); InsertWidgetInTable(hack_table , hack_offset_check , preload_gs_check); InsertWidgetInTable(hack_table , hack_safe_fbmask , hack_fast_inv); InsertWidgetInTable(hack_table , hack_depth_check); InsertWidgetInTable(hack_table , hack_sprite_label , hack_sprite_box ); InsertWidgetInTable(hack_table , stretch_hack_label , stretch_hack_box ); InsertWidgetInTable(hack_table , hack_skipdraw_label , hack_skipdraw_spin); InsertWidgetInTable(hack_table , hack_tco_label , hack_tco_entry); }
void populate_main_table(GtkWidget* main_table) { GtkWidget* render_label = left_label("Renderer:"); 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* filter_label = left_label("Texture Filtering:"); GtkWidget* filter_combo_box = CreateComboBoxFromVector(theApp.m_gs_bifilter, "filter"); AddTooltip(filter_label, filter_combo_box, IDC_FILTER); s_table_line = 0; InsertWidgetInTable(main_table, render_label, render_combo_box); InsertWidgetInTable(main_table, interlace_label, interlace_combo_box); InsertWidgetInTable(main_table, filter_label , filter_combo_box); }
void populate_record_table(GtkWidget* record_table) { GtkWidget* capture_check = CreateCheckBox("Enable Recording (with F12)", "capture_enabled"); GtkWidget* resxy_label = left_label("Resolution:"); GtkWidget* resx_spin = CreateSpinButton(256, 8192, "capture_resx", 1280); GtkWidget* resy_spin = CreateSpinButton(256, 8192, "capture_resy", 1024); GtkWidget* threads_label = left_label("Saving Threads:"); GtkWidget* threads_spin = CreateSpinButton(1, 32, "capture_threads", 4); GtkWidget* out_dir_label = left_label("Output Directory:"); GtkWidget* out_dir = CreateFileChooser(GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER, "Select a directory", "capture_out_dir", "/tmp"); InsertWidgetInTable(record_table , capture_check); InsertWidgetInTable(record_table , resxy_label , resx_spin , resy_spin); InsertWidgetInTable(record_table , threads_label , threads_spin); InsertWidgetInTable(record_table , out_dir_label , out_dir); }
void populate_hack_table(GtkWidget* hack_table) { GtkWidget* hack_offset_check = CreateCheckBox("Half-pixel Offset Hack", "UserHacks_HalfPixelOffset"); GtkWidget* hack_skipdraw_label = left_label("Skipdraw:"); GtkWidget* hack_skipdraw_spin = CreateSpinButton(0, 1000, "UserHacks_SkipDraw"); GtkWidget* hack_wild_check = CreateCheckBox("Wild Arms Hack", "UserHacks_WildHack"); GtkWidget* hack_tco_label = left_label("Texture Offset: 0x"); GtkWidget* hack_tco_entry = CreateTextBox("UserHacks_TCOffset"); GtkWidget* align_sprite_check = CreateCheckBox("Align sprite hack", "UserHacks_align_sprite_X"); GtkWidget* preload_gs_check = CreateCheckBox("Preload Frame", "preload_frame_with_gs_data"); GtkWidget* hack_fast_inv = CreateCheckBox("Fast Texture Invalidation", "UserHacks_DisablePartialInvalidation"); GtkWidget* hack_depth_check = CreateCheckBox("Disable Depth Emulation", "UserHacks_DisableDepthSupport"); GtkWidget* hack_auto_flush = CreateCheckBox("Auto Flush Primitives", "UserHacks_AutoFlush"); GtkWidget* hack_unscale_prim = CreateCheckBox("Unscale Point&Line Primitives", "UserHacks_unscale_point_line"); GtkWidget* hack_sprite_box = CreateComboBoxFromVector(theApp.m_gs_hack, "UserHacks_SpriteHack"); GtkWidget* hack_sprite_label = left_label("Alpha-Sprite Hack:"); GtkWidget* stretch_hack_box = CreateComboBoxFromVector(theApp.m_gs_hack, "UserHacks_round_sprite_offset"); GtkWidget* stretch_hack_label = left_label("Align Sprite Texture:"); // Reuse windows helper string :) AddTooltip(hack_offset_check, IDC_OFFSETHACK); AddTooltip(hack_skipdraw_label, IDC_SKIPDRAWHACK); AddTooltip(hack_skipdraw_spin, IDC_SKIPDRAWHACK); AddTooltip(hack_wild_check, IDC_WILDHACK); AddTooltip(hack_sprite_label, hack_sprite_box, IDC_SPRITEHACK); AddTooltip(hack_tco_label, IDC_TCOFFSETX); AddTooltip(hack_tco_entry, IDC_TCOFFSETX); AddTooltip(align_sprite_check, IDC_ALIGN_SPRITE); AddTooltip(stretch_hack_label, stretch_hack_box, IDC_ROUND_SPRITE); AddTooltip(preload_gs_check, IDC_PRELOAD_GS); AddTooltip(hack_fast_inv, IDC_FAST_TC_INV); AddTooltip(hack_depth_check, IDC_TC_DEPTH); AddTooltip(hack_auto_flush, IDC_AUTO_FLUSH); AddTooltip(hack_unscale_prim, IDC_UNSCALE_POINT_LINE); s_table_line = 0; InsertWidgetInTable(hack_table , hack_wild_check , align_sprite_check); InsertWidgetInTable(hack_table , hack_offset_check , preload_gs_check); InsertWidgetInTable(hack_table , hack_unscale_prim , hack_fast_inv); InsertWidgetInTable(hack_table , hack_depth_check , hack_auto_flush); InsertWidgetInTable(hack_table , hack_sprite_label , hack_sprite_box ); InsertWidgetInTable(hack_table , stretch_hack_label , stretch_hack_box ); InsertWidgetInTable(hack_table , hack_skipdraw_label , hack_skipdraw_spin); InsertWidgetInTable(hack_table , hack_tco_label , hack_tco_entry); }
void populate_record_table(GtkWidget* record_table) { GtkWidget* capture_check = CreateCheckBox("Enable Recording (with F12)", "capture_enabled"); GtkWidget* resxy_label = left_label("Resolution:"); GtkWidget* resx_spin = CreateSpinButton(256, 8192, "CaptureWidth"); GtkWidget* resy_spin = CreateSpinButton(256, 8192, "CaptureHeight"); GtkWidget* threads_label = left_label("Saving Threads:"); GtkWidget* threads_spin = CreateSpinButton(1, 32, "capture_threads"); GtkWidget* out_dir_label = left_label("Output Directory:"); GtkWidget* out_dir = CreateFileChooser(GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER, "Select a directory", "capture_out_dir"); GtkWidget* png_label = left_label("PNG Compression Level:"); GtkWidget* png_level = CreateSpinButton(1, 9, "png_compression_level"); InsertWidgetInTable(record_table , capture_check); InsertWidgetInTable(record_table , resxy_label , resx_spin , resy_spin); InsertWidgetInTable(record_table , threads_label , threads_spin); InsertWidgetInTable(record_table , png_label , png_level); InsertWidgetInTable(record_table , out_dir_label , out_dir); }
void populate_hw_table(GtkWidget* hw_table) { GtkWidget* fsaa_label = left_label("Internal Resolution:"); GtkWidget* fsaa_combo_box = CreateComboBoxFromVector(theApp.m_gs_upscale_multiplier, "upscale_multiplier"); GtkWidget* af_label = left_label("Anisotropic Filtering:"); GtkWidget* af_combo_box = CreateComboBoxFromVector(theApp.m_gs_max_anisotropy, "MaxAnisotropy"); GtkWidget* crc_label = left_label("Automatic CRC level:"); GtkWidget* crc_combo_box = CreateComboBoxFromVector(theApp.m_gs_crc_level, "crc_hack_level"); GtkWidget* paltex_check = CreateCheckBox("Allow 8 bits textures", "paltex"); GtkWidget* acc_date_check = CreateCheckBox("Accurate Date", "accurate_date"); GtkWidget* large_fb_check = CreateCheckBox("Large Framebuffer", "large_framebuffer"); GtkWidget* acc_bld_label = left_label("Blending Unit Accuracy:"); GtkWidget* acc_bld_combo_box = CreateComboBoxFromVector(theApp.m_gs_acc_blend_level, "accurate_blending_unit"); GtkWidget* hack_enable_check = CreateCheckBox("Enable User Hacks", "UserHacks"); GtkWidget* mipmap_label = left_label("Mipmapping (Insert):"); GtkWidget* mipmap_combo_box = CreateComboBoxFromVector(theApp.m_gs_hw_mipmapping, "mipmap_hw"); // Some helper string AddTooltip(paltex_check, IDC_PALTEX); AddTooltip(acc_date_check, IDC_ACCURATE_DATE); AddTooltip(large_fb_check, IDC_LARGE_FB); AddTooltip(crc_label, crc_combo_box, IDC_CRC_LEVEL); AddTooltip(acc_bld_label, acc_bld_combo_box, IDC_ACCURATE_BLEND_UNIT); AddTooltip(af_label, af_combo_box, IDC_AFCOMBO); gtk_widget_set_tooltip_text(hack_enable_check, "Enable the HW hack option panel"); AddTooltip(mipmap_label, IDC_MIPMAP_HW); AddTooltip(mipmap_combo_box, IDC_MIPMAP_HW); s_table_line = 0; InsertWidgetInTable(hw_table , paltex_check , acc_date_check); InsertWidgetInTable(hw_table , large_fb_check, hack_enable_check); InsertWidgetInTable(hw_table , fsaa_label , fsaa_combo_box); InsertWidgetInTable(hw_table , af_label , af_combo_box); InsertWidgetInTable(hw_table , acc_bld_label , acc_bld_combo_box); InsertWidgetInTable(hw_table , crc_label , crc_combo_box); InsertWidgetInTable(hw_table , mipmap_label , mipmap_combo_box); }
void populate_hw_table(GtkWidget* hw_table) { GtkWidget* filter_label = left_label("Texture Filtering:"); GtkWidget* filter_combo_box = CreateComboBoxFromVector(theApp.m_gs_filter, "filter", 2); GtkWidget* fsaa_label = left_label("Internal Resolution:"); GtkWidget* fsaa_combo_box = CreateComboBoxFromVector(theApp.m_gs_upscale_multiplier, "upscale_multiplier", 1); GtkWidget* af_label = left_label("Anisotropic Filtering:"); GtkWidget* af_combo_box = CreateComboBoxFromVector(theApp.m_gs_max_anisotropy, "MaxAnisotropy", 0); GtkWidget* crc_label = left_label("Automatic CRC level:"); GtkWidget* crc_combo_box = CreateComboBoxFromVector(theApp.m_gs_crc_level, "crc_hack_level", 3); GtkWidget* paltex_check = CreateCheckBox("Allow 8 bits textures", "paltex"); GtkWidget* acc_date_check = CreateCheckBox("Accurate Date", "accurate_date", false); GtkWidget* tc_depth_check = CreateCheckBox("Full Depth Emulation", "texture_cache_depth", true); GtkWidget* acc_bld_label = left_label("Blending Unit Accuracy:"); GtkWidget* acc_bld_combo_box = CreateComboBoxFromVector(theApp.m_gs_acc_blend_level, "accurate_blending_unit", 1); // Some helper string AddTooltip(paltex_check, IDC_PALTEX); AddTooltip(acc_date_check, IDC_ACCURATE_DATE); AddTooltip(crc_label, crc_combo_box, IDC_CRC_LEVEL); AddTooltip(acc_bld_label, acc_bld_combo_box, IDC_ACCURATE_BLEND_UNIT); AddTooltip(tc_depth_check, IDC_TC_DEPTH); AddTooltip(filter_label, filter_combo_box, IDC_FILTER); AddTooltip(af_label, af_combo_box, IDC_AFCOMBO); s_table_line = 0; InsertWidgetInTable(hw_table, paltex_check, tc_depth_check); InsertWidgetInTable(hw_table, acc_date_check); InsertWidgetInTable(hw_table, fsaa_label, fsaa_combo_box); InsertWidgetInTable(hw_table, filter_label, filter_combo_box); InsertWidgetInTable(hw_table, af_label, af_combo_box); InsertWidgetInTable(hw_table, acc_bld_label, acc_bld_combo_box); InsertWidgetInTable(hw_table, crc_label, crc_combo_box); }
void populate_debug_table(GtkWidget* debug_table) { GtkWidget* glsl_debug_check = CreateCheckBox("GLSL compilation", "debug_glsl_shader"); GtkWidget* gl_debug_check = CreateCheckBox("Print GL error", "debug_opengl"); GtkWidget* gs_dump_check = CreateCheckBox("Dump GS data", "dump"); GtkWidget* gs_save_check = CreateCheckBox("Save RT", "save"); GtkWidget* gs_savef_check = CreateCheckBox("Save Frame", "savef"); GtkWidget* gs_savet_check = CreateCheckBox("Save Texture", "savet"); GtkWidget* gs_savez_check = CreateCheckBox("Save Depth", "savez"); GtkWidget* gs_saven_label = left_label("Start of Dump"); GtkWidget* gs_saven_spin = CreateSpinButton(0, pow(10, 9), "saven"); GtkWidget* gs_savel_label = left_label("Length of Dump"); GtkWidget* gs_savel_spin = CreateSpinButton(0, pow(10, 5), "savel"); s_table_line = 0; InsertWidgetInTable(debug_table, gl_debug_check, glsl_debug_check); InsertWidgetInTable(debug_table, gs_dump_check); InsertWidgetInTable(debug_table, gs_save_check, gs_savef_check); InsertWidgetInTable(debug_table, gs_savet_check, gs_savez_check); InsertWidgetInTable(debug_table, gs_saven_label, gs_saven_spin); InsertWidgetInTable(debug_table, gs_savel_label, gs_savel_spin); }
void populate_sw_table(GtkWidget* sw_table) { GtkWidget* threads_label = left_label("Extra rendering threads:"); GtkWidget* threads_spin = CreateSpinButton(0, 32, "extrathreads"); GtkWidget* aa_check = CreateCheckBox("Edge anti-aliasing (AA1)", "aa1"); GtkWidget* mipmap_check = CreateCheckBox("Mipmapping", "mipmap"); AddTooltip(aa_check, IDC_AA1); AddTooltip(mipmap_check, IDC_MIPMAP_SW); 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); }
void populate_shader_table(GtkWidget* shader_table) { GtkWidget* shader = CreateFileChooser(GTK_FILE_CHOOSER_ACTION_OPEN, "Select an external shader", "shaderfx_glsl"); GtkWidget* shader_conf = CreateFileChooser(GTK_FILE_CHOOSER_ACTION_OPEN, "Then select a config", "shaderfx_conf"); GtkWidget* shader_label = left_label("External shader glsl"); GtkWidget* shader_conf_label = left_label("External shader conf"); GtkWidget* shadeboost_check = CreateCheckBox("Shade boost", "ShadeBoost"); GtkWidget* fxaa_check = CreateCheckBox("Fxaa shader", "fxaa"); GtkWidget* shaderfx_check = CreateCheckBox("External shader", "shaderfx"); GtkWidget* tv_shader_label = left_label("TV shader:"); GtkWidget* tv_shader = CreateComboBoxFromVector(theApp.m_gs_tv_shaders, "TVShader"); GtkWidget* linear_check = CreateCheckBox("Texture Filtering of Display", "linear_present"); // Shadeboost scale GtkWidget* sb_brightness = CreateScale("ShadeBoost_Brightness"); GtkWidget* sb_brightness_label = left_label("Shade Boost Brightness:"); GtkWidget* sb_contrast = CreateScale("ShadeBoost_Contrast"); GtkWidget* sb_contrast_label = left_label("Shade Boost Contrast:"); GtkWidget* sb_saturation = CreateScale("ShadeBoost_Saturation"); GtkWidget* sb_saturation_label = left_label("Shade Boost Saturation:"); AddTooltip(shadeboost_check, IDC_SHADEBOOST); AddTooltip(shaderfx_check, IDC_SHADER_FX); AddTooltip(fxaa_check, IDC_FXAA); AddTooltip(linear_check, IDC_LINEAR_PRESENT); s_table_line = 0; InsertWidgetInTable(shader_table , linear_check); InsertWidgetInTable(shader_table , fxaa_check); InsertWidgetInTable(shader_table , shadeboost_check); InsertWidgetInTable(shader_table , sb_brightness_label , sb_brightness); InsertWidgetInTable(shader_table , sb_contrast_label , sb_contrast); InsertWidgetInTable(shader_table , sb_saturation_label , sb_saturation); InsertWidgetInTable(shader_table , shaderfx_check); InsertWidgetInTable(shader_table , shader_label , shader); InsertWidgetInTable(shader_table , shader_conf_label , shader_conf); InsertWidgetInTable(shader_table , tv_shader_label, tv_shader); }
void populate_gl_table(GtkWidget* gl_table) { GtkWidget* gl_bs_label = left_label("Buffer Storage:"); GtkWidget* gl_bs_combo = CreateComboBoxFromVector(theApp.m_gs_gl_ext, "override_GL_ARB_buffer_storage", -1); GtkWidget* gl_sso_label = left_label("Separate Shader:"); GtkWidget* gl_sso_combo = CreateComboBoxFromVector(theApp.m_gs_gl_ext, "override_GL_ARB_separate_shader_objects", -1); GtkWidget* gl_gs_label = left_label("Geometry Shader:"); GtkWidget* gl_gs_combo = CreateComboBoxFromVector(theApp.m_gs_gl_ext, "override_geometry_shader", -1); GtkWidget* gl_ils_label = left_label("Image Load Store:"); GtkWidget* gl_ils_combo = CreateComboBoxFromVector(theApp.m_gs_gl_ext, "override_GL_ARB_shader_image_load_store", -1); GtkWidget* gl_cc_label = left_label("Clip Control (depth accuracy):"); GtkWidget* gl_cc_combo = CreateComboBoxFromVector(theApp.m_gs_gl_ext, "override_GL_ARB_clip_control", -1); GtkWidget* gl_tb_label = left_label("Texture Barrier:"); GtkWidget* gl_tb_combo = CreateComboBoxFromVector(theApp.m_gs_gl_ext, "override_GL_ARB_texture_barrier", -1); s_table_line = 0; InsertWidgetInTable(gl_table , gl_gs_label , gl_gs_combo); InsertWidgetInTable(gl_table , gl_bs_label , gl_bs_combo); InsertWidgetInTable(gl_table , gl_sso_label , gl_sso_combo); InsertWidgetInTable(gl_table , gl_ils_label , gl_ils_combo); InsertWidgetInTable(gl_table , gl_cc_label , gl_cc_combo); InsertWidgetInTable(gl_table , gl_tb_label , gl_tb_combo); }