void HelpWindow::AddFurnitureManipulationInformation(int column) { auto furnitureManiuplationGrid = new HelpWindowGridLayout(); furnitureManiuplationGrid->AddHeading("Furniture Object Manipulation"); furnitureManiuplationGrid->AddTitle("Movement"); furnitureManiuplationGrid->AddDescription(""); furnitureManiuplationGrid->AddShortcut("X + Left Click Drag\nY + Left Click Drag\nZ + Left Click Drag"); furnitureManiuplationGrid->AddDescription(QString("<b>Move mouse up/down:</b> Move object ") .append("in the positive/negative direction of the axis ") .append("corresponding to X, Y, and Z")); furnitureManiuplationGrid->AddTitle("Rotation"); furnitureManiuplationGrid->AddDescription(""); furnitureManiuplationGrid->AddShortcut("X + Left Click Drag\nY + Left Click Drag\nZ + Left Click Drag"); furnitureManiuplationGrid->AddDescription(QString("<b>Move mouse up/down:</b> rotate object ") .append("in the positive/negative angle direction of the axis ") .append("corresponding to X, Y, and Z")); furnitureManiuplationGrid->AddTitle("Scale"); furnitureManiuplationGrid->AddDescription(""); furnitureManiuplationGrid->AddShortcut("Left Click Drag"); furnitureManiuplationGrid->AddDescription("<b>Move mouse up/down</b>: uniformly scale the object up/down"); furnitureManiuplationGrid->AddShortcut("N"); furnitureManiuplationGrid->AddDescription("Cycle wall-mounted furnitures between the walls"); furnitureManiuplationGrid->AddShortcut("DELETE"); furnitureManiuplationGrid->AddDescription("Remove the currently selected object from the scene"); furnitureManiuplationGrid->AddShortcut("SPACE"); furnitureManiuplationGrid->AddDescription("Cycle through exising objects"); furnitureManiuplationGrid->AddShortcut("ESCAPE"); furnitureManiuplationGrid->AddDescription("De-select the currently selected object"); AddToColumn(furnitureManiuplationGrid, column); }
void HelpWindow::AddWallAndFloorInformation(int column) { auto wallFloorControlsGrid = new HelpWindowGridLayout(); wallFloorControlsGrid->AddHeading("Wall and Floor Controls"); wallFloorControlsGrid->AddTitle("Change Wall Color"); wallFloorControlsGrid->AddDescription("Shows a color picker dialog to change wall color"); wallFloorControlsGrid->AddTitle("Change Wall Texture"); wallFloorControlsGrid->AddDescription("Shows texture selection to change wall texture"); wallFloorControlsGrid->AddTitle("Change Floor Texture"); wallFloorControlsGrid->AddDescription("Shows a color picker dialog to change floor color"); wallFloorControlsGrid->AddTitle("Change Floor Texture"); wallFloorControlsGrid->AddDescription("Shows texture selection to change floor texture"); AddToColumn(wallFloorControlsGrid, column); }
BEGIN_SLATE_FUNCTION_BUILD_OPTIMIZATION TSharedRef<SToolTip> GetTooltip() { if( ProfilerSession.IsValid() ) { const TSharedRef<SGridPanel> ToolTipGrid = SNew(SGridPanel); int CurrentRowPos = 0; AddHeader( ToolTipGrid, CurrentRowPos ); AddDescription( ToolTipGrid, CurrentRowPos ); const FProfilerAggregatedStat* AggregatedPtr = ProfilerSession->GetAggregatedStat( StatID ); if( AggregatedPtr ) { AddValuesInformation( ToolTipGrid, CurrentRowPos, *AggregatedPtr ); AddCallsInformation( ToolTipGrid, CurrentRowPos, *AggregatedPtr ); } else { AddNoDataInformation( ToolTipGrid, CurrentRowPos ); } return SNew(SToolTip) [ ToolTipGrid ]; } else { return SNew(SToolTip) .Text( LOCTEXT("NotImplemented","Tooltip for multiple profiler instances has not been implemented yet") ); } }
void HelpWindow::AddFurnitureInformation(int column) { auto furnitureGrid = new HelpWindowGridLayout(); furnitureGrid->AddHeading("Furniture Controls"); furnitureGrid->AddTitle("Movement Speed"); furnitureGrid->AddDescription("Changes speed of furniture movement"); furnitureGrid->AddTitle("Rotation Speed"); furnitureGrid->AddDescription("Changes speed of furniture rotation"); furnitureGrid->AddTitle("Scale Speed"); furnitureGrid->AddDescription("Changes speed of furniture scaling"); furnitureGrid->AddTitle("Action Selection Radio Buttons"); furnitureGrid->AddDescription("Select whether to move, rotate, or scale furniture"); furnitureGrid->AddTitle("Furniture Model Selection Dropdown"); furnitureGrid->AddDescription("Select which furniture object to load"); AddToColumn(furnitureGrid, column); }
void HelpWindow::AddStatusBarInformation(int column) { auto statusBarGrid = new HelpWindowGridLayout(); statusBarGrid->AddHeading("Status Bar"); statusBarGrid->AddTitle("Status Message Text"); statusBarGrid->AddDescription(QString("Shows program status information such as furniture") .append("loading status or error messages")); statusBarGrid->AddTitle("OBB Status"); statusBarGrid->AddDescription("Furnitures' oriented bounding box display status"); statusBarGrid->AddTitle("AABB Status"); statusBarGrid->AddDescription("Furnitures' axis-aligned bounding box display status"); statusBarGrid->AddTitle("W-Axis (World Axis)"); statusBarGrid->AddDescription("Room's center axis display status"); statusBarGrid->AddTitle("L-Axis (Local Axis)"); statusBarGrid->AddDescription("Furnitures' axis display status"); AddToColumn(statusBarGrid, column); }
void HelpWindow::AddUtilitiesInformation(int column) { auto utilitiesGrid = new HelpWindowGridLayout(); utilitiesGrid->AddHeading("Utilities"); utilitiesGrid->AddShortcut("B"); utilitiesGrid->AddDescription("Display objects' oriented bounding boxes"); utilitiesGrid->AddShortcut("SHIFT + B"); utilitiesGrid->AddDescription("Display objects' axis-aligned bounding boxes"); utilitiesGrid->AddShortcut("L"); utilitiesGrid->AddDescription("Display objects' pivots"); utilitiesGrid->AddShortcut("X\nY\nZ"); utilitiesGrid->AddDescription(QString("Display <b>X, Y</b> or <b>Z</b> axis aligned to ") .append("the center of the room ") .append("or aligned to currently selected object's location")); utilitiesGrid->AddShortcut("Q"); utilitiesGrid->AddDescription("Quit the application (no confirmation window!)"); AddToColumn(utilitiesGrid, column); }
void DatabaseScriptWork::GenerateScript(OutputIterator output) { QueryResults::Row row = Query(_T("Database Detail")).OidParam(dboid).UniqueResult(); wxASSERT(row.size() >= 6); wxString databaseName = row[0]; wxString ownerName = row[1]; wxString encoding = row[2]; wxString collation = row[3]; wxString ctype = row[4]; long connectionLimit; row[4].ToLong(&connectionLimit); wxString sql; switch (mode) { case Create: sql << _T("CREATE DATABASE ") << QuoteIdent(databaseName); sql << _T("\n\tENCODING = ") << QuoteLiteral(encoding); sql << _T("\n\tLC_COLLATE = ") << QuoteLiteral(collation); sql << _T("\n\tLC_CTYPE = ") << QuoteLiteral(ctype); sql << _T("\n\tCONNECTION LIMIT = ") << connectionLimit; sql << _T("\n\tOWNER = ") << QuoteIdent(ownerName); break; case Alter: sql << _T("ALTER DATABASE ") << QuoteIdent(databaseName); sql << _T("\n\tOWNER = ") << QuoteIdent(ownerName); sql << _T("\n\tCONNECTION LIMIT = ") << connectionLimit; break; case Drop: sql << _T("DROP DATABASE ") << QuoteIdent(databaseName); break; default: wxASSERT(false); } *output++ = sql; if (mode != Drop) { PgAcl(row[6]).GenerateGrantStatements(output, ownerName, _T("DATABASE ") + QuoteIdent(databaseName), privilegeMap); QueryResults settingsRs = Query(_T("Database Settings")).OidParam(dboid).List(); for (unsigned i = 0; i < settingsRs.Rows().size(); i++) { wxString role = settingsRs.Rows()[i][0]; wxString prefix; if (role.empty()) prefix << _T("ALTER DATABASE ") << databaseName << _T(' '); else prefix << _T("ALTER ROLE ") << role << _T(" IN DATABASE ") << databaseName << _T(' '); PgSettings(settingsRs.Rows()[i][1]).GenerateSetStatements(output, this, prefix); } AddDescription(output, _T("DATABASE"), databaseName, row[7]); } }
void HelpWindow::AddWorldAxisInformation(int column) { auto worldAxisGrid = new HelpWindowGridLayout(); worldAxisGrid->AddHeading("World (room) Axis/Pivot Controls"); worldAxisGrid->AddTitle(""); worldAxisGrid->AddDescription("(only when the axis is being displayed)"); worldAxisGrid->AddShortcut("SHIFT + L"); worldAxisGrid->AddDescription("Display room's pivot"); worldAxisGrid->AddShortcut("{"); worldAxisGrid->AddDescription("Move axis up"); worldAxisGrid->AddShortcut("/"); worldAxisGrid->AddDescription("Move axis down"); worldAxisGrid->AddShortcut("'"); worldAxisGrid->AddDescription("Move axis to the right"); worldAxisGrid->AddShortcut(";"); worldAxisGrid->AddDescription("Move axis to the left"); worldAxisGrid->AddShortcut("SHIFT + /"); worldAxisGrid->AddDescription("Reset axis' location to its original position"); AddToColumn(worldAxisGrid, column); }
void HacksWidget::AddDescriptions() { static const char* TR_SKIP_EFB_CPU_ACCESS_DESCRIPTION = QT_TR_NOOP("Ignore any requests from the CPU to read from or write to the EFB.\nImproves " "performance in some games, but might disable some gameplay-related features or " "graphical effects.\n\nIf unsure, leave this unchecked."); static const char* TR_IGNORE_FORMAT_CHANGE_DESCRIPTION = QT_TR_NOOP( "Ignore any changes to the EFB format.\nImproves performance in many games without " "any negative effect. Causes graphical defects in a small number of other " "games.\n\nIf unsure, leave this checked."); static const char* TR_STORE_EFB_TO_TEXTURE_DESCRIPTION = QT_TR_NOOP( "Stores EFB Copies exclusively on the GPU, bypassing system memory. Causes graphical defects " "in a small number of games.\n\nEnabled = EFB Copies to Texture\nDisabled = EFB Copies to " "RAM " "(and Texture)\n\nIf unsure, leave this checked."); static const char* TR_ACCUARCY_DESCRIPTION = QT_TR_NOOP( "The \"Safe\" setting eliminates the likelihood of the GPU missing texture updates " "from RAM.\nLower accuracies cause in-game text to appear garbled in certain " "games.\n\nIf unsure, use the rightmost value."); static const char* TR_STORE_XFB_TO_TEXTURE_DESCRIPTION = QT_TR_NOOP( "Stores XFB Copies exclusively on the GPU, bypassing system memory. Causes graphical defects " "in a small number of games that need to readback from memory.\n\nEnabled = XFB Copies to " "Texture\nDisabled = XFB Copies to RAM " "(and Texture)\n\nIf unsure, leave this checked."); static const char* TR_IMMEDIATE_XFB_DESCRIPTION = QT_TR_NOOP("Displays the XFB copies as soon as they are created, without waiting for " "scanout. Can cause graphical defects " "in some games if the game doesn't expect all XFB copies to be displayed. " "However, turning this setting on reduces latency." "\n\nIf unsure, leave this unchecked."); static const char* TR_GPU_DECODING_DESCRIPTION = QT_TR_NOOP("Enables texture decoding using the GPU instead of the CPU. This may result in " "performance gains in some scenarios, or on systems where the CPU is the " "bottleneck.\n\nIf unsure, leave this unchecked."); static const char* TR_FAST_DEPTH_CALC_DESCRIPTION = QT_TR_NOOP( "Use a less accurate algorithm to calculate depth values.\nCauses issues in a few " "games, but can give a decent speedup depending on the game and/or your GPU.\n\nIf " "unsure, leave this checked."); static const char* TR_DISABLE_BOUNDINGBOX_DESCRIPTION = QT_TR_NOOP("Disable the bounding box emulation.\nThis may improve the GPU performance a lot, " "but some games will break.\n\nIf unsure, leave this checked."); static const char* TR_VERTEX_ROUNDING_DESCRIPTION = QT_TR_NOOP("Rounds 2D vertices to whole pixels. Fixes graphical problems in some games at " "higher internal resolutions. This setting has no effect when native internal " "resolution is used.\n\nIf unsure, leave this unchecked."); AddDescription(m_skip_efb_cpu, TR_SKIP_EFB_CPU_ACCESS_DESCRIPTION); AddDescription(m_ignore_format_changes, TR_IGNORE_FORMAT_CHANGE_DESCRIPTION); AddDescription(m_store_efb_copies, TR_STORE_EFB_TO_TEXTURE_DESCRIPTION); AddDescription(m_accuracy, TR_ACCUARCY_DESCRIPTION); AddDescription(m_store_xfb_copies, TR_STORE_XFB_TO_TEXTURE_DESCRIPTION); AddDescription(m_immediate_xfb, TR_IMMEDIATE_XFB_DESCRIPTION); AddDescription(m_gpu_texture_decoding, TR_GPU_DECODING_DESCRIPTION); AddDescription(m_fast_depth_calculation, TR_FAST_DEPTH_CALC_DESCRIPTION); AddDescription(m_disable_bounding_box, TR_DISABLE_BOUNDINGBOX_DESCRIPTION); AddDescription(m_fast_depth_calculation, TR_FAST_DEPTH_CALC_DESCRIPTION); AddDescription(m_disable_bounding_box, TR_DISABLE_BOUNDINGBOX_DESCRIPTION); AddDescription(m_vertex_rounding, TR_VERTEX_ROUNDING_DESCRIPTION); }
void GeneralWidget::AddDescriptions() { // We need QObject::tr #if defined(_WIN32) static const char* TR_BACKEND_DESCRIPTION = QT_TR_NOOP("Selects what graphics API to use internally.\nThe software renderer is extremely " "slow and only useful for debugging, so you'll want to use either Direct3D or " "OpenGL. Different games and different GPUs will behave differently on each " "backend, so for the best emulation experience it's recommended to try both and " "choose the one that's less problematic.\n\nIf unsure, select OpenGL."); static const char* TR_ADAPTER_DESCRIPTION = QT_TR_NOOP("Selects a hardware adapter to use.\n\nIf unsure, use the first one."); #else static const char* TR_BACKEND_DESCRIPTION = QT_TR_NOOP("Selects what graphics API to use internally.\nThe software renderer is extremely " "slow and only useful for debugging, so unless you have a reason to use it you'll " "want to select OpenGL here.\n\nIf unsure, select OpenGL."); #endif static const char* TR_FULLSCREEN_DESCRIPTION = QT_TR_NOOP( "Enable this if you want the whole screen to be used for rendering.\nIf this is disabled, a " "render window will be created instead.\n\nIf unsure, leave this unchecked."); static const char* TR_AUTOSIZE_DESCRIPTION = QT_TR_NOOP("Automatically adjusts the window size to your internal resolution.\n\nIf unsure, " "leave this unchecked."); static const char* TR_KEEP_WINDOW_ON_TOP_DESCRIPTION = QT_TR_NOOP( "Keep the game window on top of all other windows.\n\nIf unsure, leave this unchecked."); static const char* TR_HIDE_MOUSE_CURSOR_DESCRIPTION = QT_TR_NOOP("Hides the mouse cursor if it's on top of the emulation window.\n\nIf unsure, " "leave this unchecked."); static const char* TR_RENDER_TO_MAINWINDOW_DESCRIPTION = QT_TR_NOOP("Enable this if you want to use the main Dolphin window for rendering rather than " "a separate render window.\n\nIf unsure, leave this unchecked."); static const char* TR_ASPECT_RATIO_DESCRIPTION = QT_TR_NOOP( "Select what aspect ratio to use when rendering:\nAuto: Use the native aspect " "ratio\nForce 16:9: Mimic an analog TV with a widescreen aspect ratio.\nForce 4:3: " "Mimic a standard 4:3 analog TV.\nStretch to Window: Stretch the picture to the " "window size.\n\nIf unsure, select Auto."); static const char* TR_VSYNC_DESCRIPTION = QT_TR_NOOP("Wait for vertical blanks in order to reduce tearing.\nDecreases performance if " "emulation speed is below 100%.\n\nIf unsure, leave this unchecked."); static const char* TR_SHOW_FPS_DESCRIPTION = QT_TR_NOOP("Show the number of frames rendered per second as a measure of " "emulation speed.\n\nIf unsure, leave this unchecked."); static const char* TR_SHOW_NETPLAY_PING_DESCRIPTION = QT_TR_NOOP("Show the players' maximum Ping while playing on " "NetPlay.\n\nIf unsure, leave this unchecked."); static const char* TR_LOG_RENDERTIME_DESCRIPTION = QT_TR_NOOP("Log the render time of every frame to User/Logs/render_time.txt. Use this " "feature when you want to measure the performance of Dolphin.\n\nIf " "unsure, leave this unchecked."); static const char* TR_SHOW_NETPLAY_MESSAGES_DESCRIPTION = QT_TR_NOOP("When playing on NetPlay, show chat messages, buffer changes and " "desync alerts.\n\nIf unsure, leave this unchecked."); static const char* TR_SHADER_COMPILE_SYNC_DESCRIPTION = QT_TR_NOOP("Ubershaders are never used. Stuttering will occur during shader " "compilation, but GPU demands are low. Recommended for low-end hardware.\n\nIf " "unsure, select this mode."); static const char* TR_SHADER_COMPILE_UBER_ONLY_DESCRIPTION = QT_TR_NOOP("Ubershaders will always be used. Provides a near stutter-free experience at the " "cost of high GPU requirements. Only recommended for high-end systems."); static const char* TR_SHADER_COMPILE_ASYNC_UBER_DESCRIPTION = QT_TR_NOOP("Ubershaders will be used to prevent stuttering during shader compilation, but " "specialized shaders will be used when they will not cause stuttering."); static const char* TR_SHADER_COMPILE_ASYNC_SKIP_DESCRIPTION = QT_TR_NOOP("Instead of using ubershaders during shader compilation, objects which use these " "shaders will be not be rendered. This can further reduce stuttering and " "performance requirements, compared to ubershaders, at the cost of introducing " "visual glitches and broken effects. Not recommended."); static const char* TR_SHADER_COMPILE_BEFORE_START_DESCRIPTION = QT_TR_NOOP("Waits for all shaders to finish compiling before starting a game. Enabling this " "option may reduce stuttering or hitching for a short time after the game is " "started, at the cost of a longer delay before the game starts. For systems with " "two or fewer cores, it is recommended to enable this option, as a large shader " "queue may reduce frame rates. Otherwise, if unsure, leave this unchecked."); AddDescription(m_backend_combo, TR_BACKEND_DESCRIPTION); #ifdef _WIN32 AddDescription(m_adapter_combo, TR_ADAPTER_DESCRIPTION); #endif AddDescription(m_enable_fullscreen, TR_FULLSCREEN_DESCRIPTION); AddDescription(m_autoadjust_window_size, TR_AUTOSIZE_DESCRIPTION); AddDescription(m_hide_cursor, TR_HIDE_MOUSE_CURSOR_DESCRIPTION); AddDescription(m_render_main_window, TR_RENDER_TO_MAINWINDOW_DESCRIPTION); AddDescription(m_aspect_combo, TR_ASPECT_RATIO_DESCRIPTION); AddDescription(m_enable_vsync, TR_VSYNC_DESCRIPTION); AddDescription(m_show_fps, TR_SHOW_FPS_DESCRIPTION); AddDescription(m_show_ping, TR_SHOW_NETPLAY_PING_DESCRIPTION); AddDescription(m_log_render_time, TR_LOG_RENDERTIME_DESCRIPTION); AddDescription(m_show_messages, TR_SHOW_FPS_DESCRIPTION); AddDescription(m_keep_window_top, TR_KEEP_WINDOW_ON_TOP_DESCRIPTION); AddDescription(m_show_messages, TR_SHOW_NETPLAY_MESSAGES_DESCRIPTION); AddDescription(m_shader_compilation_mode[0], TR_SHADER_COMPILE_SYNC_DESCRIPTION); AddDescription(m_shader_compilation_mode[1], TR_SHADER_COMPILE_UBER_ONLY_DESCRIPTION); AddDescription(m_shader_compilation_mode[2], TR_SHADER_COMPILE_ASYNC_UBER_DESCRIPTION); AddDescription(m_shader_compilation_mode[3], TR_SHADER_COMPILE_ASYNC_SKIP_DESCRIPTION); AddDescription(m_wait_for_shaders, TR_SHADER_COMPILE_BEFORE_START_DESCRIPTION); }
void EnhancementsWidget::AddDescriptions() { static const char TR_INTERNAL_RESOLUTION_DESCRIPTION[] = QT_TR_NOOP("Specifies the resolution used to render at. A high resolution greatly improves " "visual quality, but also greatly increases GPU load and can cause issues in " "certain games. Generally speaking, the lower the internal resolution is, the " "better your performance will be.\n\nIf unsure, select Native."); static const char TR_ANTIALIAS_DESCRIPTION[] = QT_TR_NOOP("Reduces the amount of aliasing caused by rasterizing 3D graphics. This smooths " "out jagged edges on objects.\nIncreases GPU load and sometimes causes graphical " "issues. SSAA is significantly more demanding than MSAA, but provides top quality " "geometry anti-aliasing and also applies anti-aliasing to lighting, shader " "effects, and textures.\n\nIf unsure, select None."); static const char TR_ANISOTROPIC_FILTERING_DESCRIPTION[] = QT_TR_NOOP( "Enable anisotropic filtering.\nEnhances visual quality of textures that are at oblique " "viewing angles.\nMight cause issues in a small number of games.\n\nIf unsure, select 1x."); static const char TR_POSTPROCESSING_DESCRIPTION[] = QT_TR_NOOP( "Apply a post-processing effect after finishing a frame.\n\nIf unsure, select (off)."); static const char TR_SCALED_EFB_COPY_DESCRIPTION[] = QT_TR_NOOP( "Greatly increases quality of textures generated using render-to-texture " "effects.\nRaising the " "internal resolution will improve the effect of this setting.\nSlightly increases GPU " "load and " "causes relatively few graphical issues.\n\nIf unsure, leave this checked."); static const char TR_PER_PIXEL_LIGHTING_DESCRIPTION[] = QT_TR_NOOP( "Calculates lighting of 3D objects per-pixel rather than per-vertex, smoothing out the " "appearance of lit polygons and making individual triangles less noticeable.\nRarely causes " "slowdowns or graphical issues.\n\nIf unsure, leave this unchecked."); static const char TR_WIDESCREEN_HACK_DESCRIPTION[] = QT_TR_NOOP( "Forces the game to output graphics for any aspect ratio.\nUse with \"Aspect Ratio\" set to " "\"Force 16:9\" to force 4:3-only games to run at 16:9.\nRarely produces good results and " "often partially breaks graphics and game UIs.\nUnnecessary (and detrimental) if using any " "AR/Gecko-code widescreen patches.\n\nIf unsure, leave this unchecked."); static const char TR_REMOVE_FOG_DESCRIPTION[] = QT_TR_NOOP("Makes distant objects more visible by removing fog, thus increasing the overall " "detail.\nDisabling fog will break some games which rely on proper fog " "emulation.\n\nIf unsure, leave this unchecked."); static const char TR_3D_MODE_DESCRIPTION[] = QT_TR_NOOP( "Selects the stereoscopic 3D mode. Stereoscopy allows you to get a better feeling " "of depth if you have the necessary hardware.\nSide-by-Side and Top-and-Bottom are " "used by most 3D TVs.\nAnaglyph is used for Red-Cyan colored glasses.\nHDMI 3D is " "used when your monitor supports 3D display resolutions.\nHeavily decreases " "emulation speed and sometimes causes issues.\n\nIf unsure, select Off."); static const char TR_3D_DEPTH_DESCRIPTION[] = QT_TR_NOOP("Controls the separation distance between the virtual cameras.\nA higher value " "creates a stronger feeling of depth while a lower value is more comfortable."); static const char TR_3D_CONVERGENCE_DESCRIPTION[] = QT_TR_NOOP( "Controls the distance of the convergence plane. This is the distance at which " "virtual objects will appear to be in front of the screen.\nA higher value creates " "stronger out-of-screen effects while a lower value is more comfortable."); static const char TR_3D_SWAP_EYES_DESCRIPTION[] = QT_TR_NOOP("Swaps the left and right eye. Mostly useful if you want to view side-by-side " "cross-eyed.\n\nIf unsure, leave this unchecked."); static const char TR_FORCE_24BIT_DESCRIPTION[] = QT_TR_NOOP("Forces the game to render the RGB color channels in 24-bit, thereby increasing " "quality by reducing color banding.\nIt has no impact on performance and causes " "few graphical issues.\n\n\nIf unsure, leave this checked."); static const char TR_FORCE_TEXTURE_FILTERING_DESCRIPTION[] = QT_TR_NOOP("Filter all textures, including any that the game explicitly set as " "unfiltered.\nMay improve quality of certain textures in some games, but will " "cause issues in others.\n\nIf unsure, leave this unchecked."); static const char TR_DISABLE_COPY_FILTER_DESCRIPTION[] = QT_TR_NOOP("Disables the blending of adjacent rows when copying the EFB. This is known in " "some games as \"deflickering\" or \"smoothing\". Disabling the filter has no " "effect on performance, but may result in a sharper image, and causes few " "graphical issues.\n\n\nIf unsure, leave this checked."); AddDescription(m_ir_combo, TR_INTERNAL_RESOLUTION_DESCRIPTION); AddDescription(m_aa_combo, TR_ANTIALIAS_DESCRIPTION); AddDescription(m_af_combo, TR_ANISOTROPIC_FILTERING_DESCRIPTION); AddDescription(m_pp_effect, TR_POSTPROCESSING_DESCRIPTION); AddDescription(m_scaled_efb_copy, TR_SCALED_EFB_COPY_DESCRIPTION); AddDescription(m_per_pixel_lighting, TR_PER_PIXEL_LIGHTING_DESCRIPTION); AddDescription(m_widescreen_hack, TR_WIDESCREEN_HACK_DESCRIPTION); AddDescription(m_disable_fog, TR_REMOVE_FOG_DESCRIPTION); AddDescription(m_force_24bit_color, TR_FORCE_24BIT_DESCRIPTION); AddDescription(m_force_texture_filtering, TR_FORCE_TEXTURE_FILTERING_DESCRIPTION); AddDescription(m_disable_copy_filter, TR_DISABLE_COPY_FILTER_DESCRIPTION); AddDescription(m_3d_mode, TR_3D_MODE_DESCRIPTION); AddDescription(m_3d_depth, TR_3D_DEPTH_DESCRIPTION); AddDescription(m_3d_convergence, TR_3D_CONVERGENCE_DESCRIPTION); AddDescription(m_3d_swap_eyes, TR_3D_SWAP_EYES_DESCRIPTION); }
void HelpWindow::AddCameraMovementInformation(int column) { auto cameraMovementGrid = new HelpWindowGridLayout(); cameraMovementGrid->AddHeading("Camera Movement"); cameraMovementGrid->AddShortcut("W"); cameraMovementGrid->AddDescription("Move camera forward"); cameraMovementGrid->AddShortcut("S"); cameraMovementGrid->AddDescription("Move camera backward"); cameraMovementGrid->AddShortcut("A"); cameraMovementGrid->AddDescription("Move camera left"); cameraMovementGrid->AddShortcut("D"); cameraMovementGrid->AddDescription("Move camera right"); cameraMovementGrid->AddShortcut("Shoft + W"); cameraMovementGrid->AddDescription("Move camera up"); cameraMovementGrid->AddShortcut("Shift + S"); cameraMovementGrid->AddDescription("Move camera down"); cameraMovementGrid->AddShortcut("Arrow Up"); cameraMovementGrid->AddDescription("Look up"); cameraMovementGrid->AddShortcut("Arrow Down"); cameraMovementGrid->AddDescription("Look down"); cameraMovementGrid->AddShortcut("Arrow Left"); cameraMovementGrid->AddDescription("Look left"); cameraMovementGrid->AddShortcut("Arrow Right"); cameraMovementGrid->AddDescription("Look right"); cameraMovementGrid->AddShortcut("Right Click Drag"); cameraMovementGrid->AddDescription(QString("Change camera angle (only when there is at least") .append("one object in the scene)")); cameraMovementGrid->AddShortcut("CTRL + Right Click Drag"); cameraMovementGrid->AddDescription(QString("Rotate around the scene (only when there") .append(" is at least one object in the scene)")); cameraMovementGrid->AddShortcut("Mouse Wheel"); cameraMovementGrid->AddDescription("Change camera FOV (field of view)"); cameraMovementGrid->AddShortcut("R"); cameraMovementGrid->AddDescription("Reset camera to its original position"); cameraMovementGrid->AddShortcut("O"); cameraMovementGrid->AddDescription("Turn Camera Upside down"); cameraMovementGrid->AddShortcut("1"); cameraMovementGrid->AddDescription("Zoom on currently active object"); cameraMovementGrid->AddShortcut("2"); cameraMovementGrid->AddDescription("Face scene front at human eye level"); cameraMovementGrid->AddShortcut("3"); cameraMovementGrid->AddDescription("Bird's eye view perspective of the scene"); cameraMovementGrid->AddShortcut("4"); cameraMovementGrid->AddDescription("Cycle through corners of the scene"); AddToColumn(cameraMovementGrid, column); }