Example #1
0
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);

}
Example #2
0
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") );
		}
	}
Example #4
0
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);
}
Example #5
0
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);
}
Example #6
0
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]);
  }
}
Example #8
0
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);
}
Example #9
0
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);
}
Example #10
0
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);
}
Example #12
0
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);
}