Merge pull request #7075 from Ebola16/DumpObjects
Software Renderer "Dump Objects" needs dedicated folder and tooltip
This commit is contained in:
commit
c93210155f
|
@ -47,6 +47,7 @@
|
||||||
#define DUMP_DIR "Dump"
|
#define DUMP_DIR "Dump"
|
||||||
#define DUMP_TEXTURES_DIR "Textures"
|
#define DUMP_TEXTURES_DIR "Textures"
|
||||||
#define DUMP_FRAMES_DIR "Frames"
|
#define DUMP_FRAMES_DIR "Frames"
|
||||||
|
#define DUMP_OBJECTS_DIR "Objects"
|
||||||
#define DUMP_AUDIO_DIR "Audio"
|
#define DUMP_AUDIO_DIR "Audio"
|
||||||
#define DUMP_DSP_DIR "DSP"
|
#define DUMP_DSP_DIR "DSP"
|
||||||
#define DUMP_SSL_DIR "SSL"
|
#define DUMP_SSL_DIR "SSL"
|
||||||
|
|
|
@ -767,6 +767,7 @@ static void RebuildUserDirectories(unsigned int dir_index)
|
||||||
s_user_paths[D_HIRESTEXTURES_IDX] = s_user_paths[D_LOAD_IDX] + HIRES_TEXTURES_DIR DIR_SEP;
|
s_user_paths[D_HIRESTEXTURES_IDX] = s_user_paths[D_LOAD_IDX] + HIRES_TEXTURES_DIR DIR_SEP;
|
||||||
s_user_paths[D_DUMP_IDX] = s_user_paths[D_USER_IDX] + DUMP_DIR DIR_SEP;
|
s_user_paths[D_DUMP_IDX] = s_user_paths[D_USER_IDX] + DUMP_DIR DIR_SEP;
|
||||||
s_user_paths[D_DUMPFRAMES_IDX] = s_user_paths[D_DUMP_IDX] + DUMP_FRAMES_DIR DIR_SEP;
|
s_user_paths[D_DUMPFRAMES_IDX] = s_user_paths[D_DUMP_IDX] + DUMP_FRAMES_DIR DIR_SEP;
|
||||||
|
s_user_paths[D_DUMPOBJECTS_IDX] = s_user_paths[D_DUMP_IDX] + DUMP_OBJECTS_DIR DIR_SEP;
|
||||||
s_user_paths[D_DUMPAUDIO_IDX] = s_user_paths[D_DUMP_IDX] + DUMP_AUDIO_DIR DIR_SEP;
|
s_user_paths[D_DUMPAUDIO_IDX] = s_user_paths[D_DUMP_IDX] + DUMP_AUDIO_DIR DIR_SEP;
|
||||||
s_user_paths[D_DUMPTEXTURES_IDX] = s_user_paths[D_DUMP_IDX] + DUMP_TEXTURES_DIR DIR_SEP;
|
s_user_paths[D_DUMPTEXTURES_IDX] = s_user_paths[D_DUMP_IDX] + DUMP_TEXTURES_DIR DIR_SEP;
|
||||||
s_user_paths[D_DUMPDSP_IDX] = s_user_paths[D_DUMP_IDX] + DUMP_DSP_DIR DIR_SEP;
|
s_user_paths[D_DUMPDSP_IDX] = s_user_paths[D_DUMP_IDX] + DUMP_DSP_DIR DIR_SEP;
|
||||||
|
@ -822,6 +823,7 @@ static void RebuildUserDirectories(unsigned int dir_index)
|
||||||
|
|
||||||
case D_DUMP_IDX:
|
case D_DUMP_IDX:
|
||||||
s_user_paths[D_DUMPFRAMES_IDX] = s_user_paths[D_DUMP_IDX] + DUMP_FRAMES_DIR DIR_SEP;
|
s_user_paths[D_DUMPFRAMES_IDX] = s_user_paths[D_DUMP_IDX] + DUMP_FRAMES_DIR DIR_SEP;
|
||||||
|
s_user_paths[D_DUMPOBJECTS_IDX] = s_user_paths[D_DUMP_IDX] + DUMP_OBJECTS_DIR DIR_SEP;
|
||||||
s_user_paths[D_DUMPAUDIO_IDX] = s_user_paths[D_DUMP_IDX] + DUMP_AUDIO_DIR DIR_SEP;
|
s_user_paths[D_DUMPAUDIO_IDX] = s_user_paths[D_DUMP_IDX] + DUMP_AUDIO_DIR DIR_SEP;
|
||||||
s_user_paths[D_DUMPTEXTURES_IDX] = s_user_paths[D_DUMP_IDX] + DUMP_TEXTURES_DIR DIR_SEP;
|
s_user_paths[D_DUMPTEXTURES_IDX] = s_user_paths[D_DUMP_IDX] + DUMP_TEXTURES_DIR DIR_SEP;
|
||||||
s_user_paths[D_DUMPDSP_IDX] = s_user_paths[D_DUMP_IDX] + DUMP_DSP_DIR DIR_SEP;
|
s_user_paths[D_DUMPDSP_IDX] = s_user_paths[D_DUMP_IDX] + DUMP_DSP_DIR DIR_SEP;
|
||||||
|
|
|
@ -36,6 +36,7 @@ enum
|
||||||
D_HIRESTEXTURES_IDX,
|
D_HIRESTEXTURES_IDX,
|
||||||
D_DUMP_IDX,
|
D_DUMP_IDX,
|
||||||
D_DUMPFRAMES_IDX,
|
D_DUMPFRAMES_IDX,
|
||||||
|
D_DUMPOBJECTS_IDX,
|
||||||
D_DUMPAUDIO_IDX,
|
D_DUMPAUDIO_IDX,
|
||||||
D_DUMPTEXTURES_IDX,
|
D_DUMPTEXTURES_IDX,
|
||||||
D_DUMPDSP_IDX,
|
D_DUMPDSP_IDX,
|
||||||
|
|
|
@ -141,42 +141,42 @@ void AdvancedWidget::OnEmulationStateChanged(bool running)
|
||||||
|
|
||||||
void AdvancedWidget::AddDescriptions()
|
void AdvancedWidget::AddDescriptions()
|
||||||
{
|
{
|
||||||
static const char* TR_WIREFRAME_DESCRIPTION =
|
static const char TR_WIREFRAME_DESCRIPTION[] =
|
||||||
QT_TR_NOOP("Render the scene as a wireframe.\n\nIf unsure, leave this unchecked.");
|
QT_TR_NOOP("Render the scene as a wireframe.\n\nIf unsure, leave this unchecked.");
|
||||||
static const char* TR_SHOW_STATS_DESCRIPTION =
|
static const char TR_SHOW_STATS_DESCRIPTION[] =
|
||||||
QT_TR_NOOP("Show various rendering statistics.\n\nIf unsure, leave this unchecked.");
|
QT_TR_NOOP("Show various rendering statistics.\n\nIf unsure, leave this unchecked.");
|
||||||
static const char* TR_TEXTURE_FORMAT_DECRIPTION =
|
static const char TR_TEXTURE_FORMAT_DECRIPTION[] =
|
||||||
QT_TR_NOOP("Modify textures to show the format they're encoded in. Needs an emulation reset "
|
QT_TR_NOOP("Modify textures to show the format they're encoded in. Needs an emulation reset "
|
||||||
"in most cases.\n\nIf unsure, leave this unchecked.");
|
"in most cases.\n\nIf unsure, leave this unchecked.");
|
||||||
static const char* TR_VALIDATION_LAYER_DESCRIPTION =
|
static const char TR_VALIDATION_LAYER_DESCRIPTION[] =
|
||||||
QT_TR_NOOP("Enables validation of API calls made by the video backend, which may assist in "
|
QT_TR_NOOP("Enables validation of API calls made by the video backend, which may assist in "
|
||||||
"debugging graphical issues.\n\nIf unsure, leave this unchecked.");
|
"debugging graphical issues.\n\nIf unsure, leave this unchecked.");
|
||||||
static const char* TR_DUMP_TEXTURE_DESCRIPTION =
|
static const char TR_DUMP_TEXTURE_DESCRIPTION[] =
|
||||||
QT_TR_NOOP("Dump decoded game textures to User/Dump/Textures/<game_id>/.\n\nIf unsure, leave "
|
QT_TR_NOOP("Dump decoded game textures to User/Dump/Textures/<game_id>/.\n\nIf unsure, leave "
|
||||||
"this unchecked.");
|
"this unchecked.");
|
||||||
static const char* TR_LOAD_CUSTOM_TEXTURE_DESCRIPTION = QT_TR_NOOP(
|
static const char TR_LOAD_CUSTOM_TEXTURE_DESCRIPTION[] = QT_TR_NOOP(
|
||||||
"Load custom textures from User/Load/Textures/<game_id>/.\n\nIf unsure, leave this "
|
"Load custom textures from User/Load/Textures/<game_id>/.\n\nIf unsure, leave this "
|
||||||
"unchecked.");
|
"unchecked.");
|
||||||
static const char* TR_CACHE_CUSTOM_TEXTURE_DESCRIPTION =
|
static const char TR_CACHE_CUSTOM_TEXTURE_DESCRIPTION[] =
|
||||||
QT_TR_NOOP("Cache custom textures to system RAM on startup.\nThis can require exponentially "
|
QT_TR_NOOP("Cache custom textures to system RAM on startup.\nThis can require exponentially "
|
||||||
"more RAM but fixes possible stuttering.\n\nIf unsure, leave this unchecked.");
|
"more RAM but fixes possible stuttering.\n\nIf unsure, leave this unchecked.");
|
||||||
static const char* TR_DUMP_EFB_DESCRIPTION =
|
static const char TR_DUMP_EFB_DESCRIPTION[] =
|
||||||
QT_TR_NOOP("Dump the contents of EFB copies to User/Dump/Textures/.\n\nIf unsure, leave this "
|
QT_TR_NOOP("Dump the contents of EFB copies to User/Dump/Textures/.\n\nIf unsure, leave this "
|
||||||
"unchecked.");
|
"unchecked.");
|
||||||
static const char* TR_DISABLE_VRAM_COPIES_DESCRIPTION =
|
static const char TR_DISABLE_VRAM_COPIES_DESCRIPTION[] =
|
||||||
QT_TR_NOOP("Disables the VRAM copy of the EFB, forcing a round-trip to RAM. Inhibits all "
|
QT_TR_NOOP("Disables the VRAM copy of the EFB, forcing a round-trip to RAM. Inhibits all "
|
||||||
"upscaling.\n\nIf unsure, leave this unchecked.");
|
"upscaling.\n\nIf unsure, leave this unchecked.");
|
||||||
static const char* TR_INTERNAL_RESOLUTION_FRAME_DUMPING_DESCRIPTION = QT_TR_NOOP(
|
static const char TR_INTERNAL_RESOLUTION_FRAME_DUMPING_DESCRIPTION[] = QT_TR_NOOP(
|
||||||
"Create frame dumps and screenshots at the internal resolution of the renderer, rather than "
|
"Create frame dumps and screenshots at the internal resolution of the renderer, rather than "
|
||||||
"the size of the window it is displayed within. If the aspect ratio is widescreen, the "
|
"the size of the window it is displayed within. If the aspect ratio is widescreen, the "
|
||||||
"output "
|
"output "
|
||||||
"image will be scaled horizontally to preserve the vertical resolution.\n\nIf unsure, leave "
|
"image will be scaled horizontally to preserve the vertical resolution.\n\nIf unsure, leave "
|
||||||
"this unchecked.");
|
"this unchecked.");
|
||||||
#if defined(HAVE_FFMPEG)
|
#if defined(HAVE_FFMPEG)
|
||||||
static const char* TR_USE_FFV1_DESCRIPTION =
|
static const char TR_USE_FFV1_DESCRIPTION[] =
|
||||||
QT_TR_NOOP("Encode frame dumps using the FFV1 codec.\n\nIf unsure, leave this unchecked.");
|
QT_TR_NOOP("Encode frame dumps using the FFV1 codec.\n\nIf unsure, leave this unchecked.");
|
||||||
#endif
|
#endif
|
||||||
static const char* TR_FREE_LOOK_DESCRIPTION = QT_TR_NOOP(
|
static const char TR_FREE_LOOK_DESCRIPTION[] = QT_TR_NOOP(
|
||||||
"This feature allows you to change the game's camera.\nMove the mouse while holding the "
|
"This feature allows you to change the game's camera.\nMove the mouse while holding the "
|
||||||
"right "
|
"right "
|
||||||
"mouse button to pan and while holding the middle button to move.\nHold SHIFT and press "
|
"mouse button to pan and while holding the middle button to move.\nHold SHIFT and press "
|
||||||
|
@ -184,14 +184,14 @@ void AdvancedWidget::AddDescriptions()
|
||||||
"the WASD keys to move the camera by a certain step distance (SHIFT+2 to move faster and "
|
"the WASD keys to move the camera by a certain step distance (SHIFT+2 to move faster and "
|
||||||
"SHIFT+1 to move slower). Press SHIFT+R to reset the camera and SHIFT+F to reset the "
|
"SHIFT+1 to move slower). Press SHIFT+R to reset the camera and SHIFT+F to reset the "
|
||||||
"speed.\n\nIf unsure, leave this unchecked.");
|
"speed.\n\nIf unsure, leave this unchecked.");
|
||||||
static const char* TR_CROPPING_DESCRIPTION =
|
static const char TR_CROPPING_DESCRIPTION[] =
|
||||||
QT_TR_NOOP("Crop the picture from its native aspect ratio to 4:3 or "
|
QT_TR_NOOP("Crop the picture from its native aspect ratio to 4:3 or "
|
||||||
"16:9.\n\nIf unsure, leave this unchecked.");
|
"16:9.\n\nIf unsure, leave this unchecked.");
|
||||||
static const char* TR_PROGRESSIVE_SCAN_DESCRIPTION = QT_TR_NOOP(
|
static const char TR_PROGRESSIVE_SCAN_DESCRIPTION[] = QT_TR_NOOP(
|
||||||
"Enables progressive scan if supported by the emulated software.\nMost games don't "
|
"Enables progressive scan if supported by the emulated software.\nMost games don't "
|
||||||
"care about this.\n\nIf unsure, leave this unchecked.");
|
"care about this.\n\nIf unsure, leave this unchecked.");
|
||||||
#ifdef _WIN32
|
#ifdef _WIN32
|
||||||
static const char* TR_BORDERLESS_FULLSCREEN_DESCRIPTION = QT_TR_NOOP(
|
static const char TR_BORDERLESS_FULLSCREEN_DESCRIPTION[] = QT_TR_NOOP(
|
||||||
"Implement fullscreen mode with a borderless window spanning the whole screen instead of "
|
"Implement fullscreen mode with a borderless window spanning the whole screen instead of "
|
||||||
"using "
|
"using "
|
||||||
"exclusive mode.\nAllows for faster transitions between fullscreen and windowed mode, but "
|
"exclusive mode.\nAllows for faster transitions between fullscreen and windowed mode, but "
|
||||||
|
|
|
@ -273,70 +273,70 @@ void EnhancementsWidget::SaveSettings()
|
||||||
|
|
||||||
void EnhancementsWidget::AddDescriptions()
|
void EnhancementsWidget::AddDescriptions()
|
||||||
{
|
{
|
||||||
static const char* TR_INTERNAL_RESOLUTION_DESCRIPTION =
|
static const char TR_INTERNAL_RESOLUTION_DESCRIPTION[] =
|
||||||
QT_TR_NOOP("Specifies the resolution used to render at. A high resolution greatly improves "
|
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 "
|
"visual quality, but also greatly increases GPU load and can cause issues in "
|
||||||
"certain games. Generally speaking, the lower the internal resolution is, the "
|
"certain games. Generally speaking, the lower the internal resolution is, the "
|
||||||
"better your performance will be.\n\nIf unsure, select Native.");
|
"better your performance will be.\n\nIf unsure, select Native.");
|
||||||
|
|
||||||
static const char* TR_ANTIALIAS_DESCRIPTION =
|
static const char TR_ANTIALIAS_DESCRIPTION[] =
|
||||||
QT_TR_NOOP("Reduces the amount of aliasing caused by rasterizing 3D graphics. This smooths "
|
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 "
|
"out jagged edges on objects.\nIncreases GPU load and sometimes causes graphical "
|
||||||
"issues. SSAA is significantly more demanding than MSAA, but provides top quality "
|
"issues. SSAA is significantly more demanding than MSAA, but provides top quality "
|
||||||
"geometry anti-aliasing and also applies anti-aliasing to lighting, shader "
|
"geometry anti-aliasing and also applies anti-aliasing to lighting, shader "
|
||||||
"effects, and textures.\n\nIf unsure, select None.");
|
"effects, and textures.\n\nIf unsure, select None.");
|
||||||
|
|
||||||
static const char* TR_ANISOTROPIC_FILTERING_DESCRIPTION = QT_TR_NOOP(
|
static const char TR_ANISOTROPIC_FILTERING_DESCRIPTION[] = QT_TR_NOOP(
|
||||||
"Enable anisotropic filtering.\nEnhances visual quality of textures that are at oblique "
|
"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.");
|
"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(
|
static const char TR_POSTPROCESSING_DESCRIPTION[] = QT_TR_NOOP(
|
||||||
"Apply a post-processing effect after finishing a frame.\n\nIf unsure, select (off).");
|
"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(
|
static const char TR_SCALED_EFB_COPY_DESCRIPTION[] = QT_TR_NOOP(
|
||||||
"Greatly increases quality of textures generated using render-to-texture "
|
"Greatly increases quality of textures generated using render-to-texture "
|
||||||
"effects.\nRaising the "
|
"effects.\nRaising the "
|
||||||
"internal resolution will improve the effect of this setting.\nSlightly increases GPU "
|
"internal resolution will improve the effect of this setting.\nSlightly increases GPU "
|
||||||
"load and "
|
"load and "
|
||||||
"causes relatively few graphical issues.\n\nIf unsure, leave this checked.");
|
"causes relatively few graphical issues.\n\nIf unsure, leave this checked.");
|
||||||
static const char* TR_PER_PIXEL_LIGHTING_DESCRIPTION = QT_TR_NOOP(
|
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 "
|
"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 "
|
"appearance of lit polygons and making individual triangles less noticeable.\nRarely causes "
|
||||||
"slowdowns or graphical issues.\n\nIf unsure, leave this unchecked.");
|
"slowdowns or graphical issues.\n\nIf unsure, leave this unchecked.");
|
||||||
static const char* TR_WIDESCREEN_HACK_DESCRIPTION = QT_TR_NOOP(
|
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 "
|
"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 "
|
"\"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 "
|
"often partially breaks graphics and game UIs.\nUnnecessary (and detrimental) if using any "
|
||||||
"AR/Gecko-code widescreen patches.\n\nIf unsure, leave this unchecked.");
|
"AR/Gecko-code widescreen patches.\n\nIf unsure, leave this unchecked.");
|
||||||
static const char* TR_REMOVE_FOG_DESCRIPTION =
|
static const char TR_REMOVE_FOG_DESCRIPTION[] =
|
||||||
QT_TR_NOOP("Makes distant objects more visible by removing fog, thus increasing the overall "
|
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 "
|
"detail.\nDisabling fog will break some games which rely on proper fog "
|
||||||
"emulation.\n\nIf unsure, leave this unchecked.");
|
"emulation.\n\nIf unsure, leave this unchecked.");
|
||||||
static const char* TR_3D_MODE_DESCRIPTION = QT_TR_NOOP(
|
static const char TR_3D_MODE_DESCRIPTION[] = QT_TR_NOOP(
|
||||||
"Selects the stereoscopic 3D mode. Stereoscopy allows you to get a better feeling "
|
"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 "
|
"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 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 "
|
"used when your monitor supports 3D display resolutions.\nHeavily decreases "
|
||||||
"emulation speed and sometimes causes issues.\n\nIf unsure, select Off.");
|
"emulation speed and sometimes causes issues.\n\nIf unsure, select Off.");
|
||||||
static const char* TR_3D_DEPTH_DESCRIPTION =
|
static const char TR_3D_DEPTH_DESCRIPTION[] =
|
||||||
QT_TR_NOOP("Controls the separation distance between the virtual cameras.\nA higher value "
|
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.");
|
"creates a stronger feeling of depth while a lower value is more comfortable.");
|
||||||
static const char* TR_3D_CONVERGENCE_DESCRIPTION = QT_TR_NOOP(
|
static const char TR_3D_CONVERGENCE_DESCRIPTION[] = QT_TR_NOOP(
|
||||||
"Controls the distance of the convergence plane. This is the distance at which "
|
"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 "
|
"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.");
|
"stronger out-of-screen effects while a lower value is more comfortable.");
|
||||||
static const char* TR_3D_SWAP_EYES_DESCRIPTION =
|
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 "
|
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.");
|
"cross-eyed.\n\nIf unsure, leave this unchecked.");
|
||||||
static const char* TR_FORCE_24BIT_DESCRIPTION =
|
static const char TR_FORCE_24BIT_DESCRIPTION[] =
|
||||||
QT_TR_NOOP("Forces the game to render the RGB color channels in 24-bit, thereby increasing "
|
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 "
|
"quality by reducing color banding.\nIt has no impact on performance and causes "
|
||||||
"few graphical issues.\n\n\nIf unsure, leave this checked.");
|
"few graphical issues.\n\n\nIf unsure, leave this checked.");
|
||||||
static const char* TR_FORCE_TEXTURE_FILTERING_DESCRIPTION =
|
static const char TR_FORCE_TEXTURE_FILTERING_DESCRIPTION[] =
|
||||||
QT_TR_NOOP("Filter all textures, including any that the game explicitly set as "
|
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 "
|
"unfiltered.\nMay improve quality of certain textures in some games, but will "
|
||||||
"cause issues in others.\n\nIf unsure, leave this unchecked.");
|
"cause issues in others.\n\nIf unsure, leave this unchecked.");
|
||||||
static const char* TR_DISABLE_COPY_FILTER_DESCRIPTION =
|
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 "
|
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 "
|
"some games as \"deflickering\" or \"smoothing\". Disabling the filter has no "
|
||||||
"effect on performance, but may result in a sharper image, and causes few "
|
"effect on performance, but may result in a sharper image, and causes few "
|
||||||
|
|
|
@ -231,68 +231,68 @@ void GeneralWidget::AddDescriptions()
|
||||||
{
|
{
|
||||||
// We need QObject::tr
|
// We need QObject::tr
|
||||||
#if defined(_WIN32)
|
#if defined(_WIN32)
|
||||||
static const char* TR_BACKEND_DESCRIPTION =
|
static const char TR_BACKEND_DESCRIPTION[] =
|
||||||
QT_TR_NOOP("Selects what graphics API to use internally.\nThe software renderer is extremely "
|
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 "
|
"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 "
|
"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 "
|
"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.");
|
"choose the one that's less problematic.\n\nIf unsure, select OpenGL.");
|
||||||
#else
|
#else
|
||||||
static const char* TR_BACKEND_DESCRIPTION =
|
static const char TR_BACKEND_DESCRIPTION[] =
|
||||||
QT_TR_NOOP("Selects what graphics API to use internally.\nThe software renderer is extremely "
|
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 "
|
"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.");
|
"want to select OpenGL here.\n\nIf unsure, select OpenGL.");
|
||||||
#endif
|
#endif
|
||||||
static const char* TR_ADAPTER_DESCRIPTION =
|
static const char TR_ADAPTER_DESCRIPTION[] =
|
||||||
QT_TR_NOOP("Selects a hardware adapter to use.\n\nIf unsure, use the first one.");
|
QT_TR_NOOP("Selects a hardware adapter to use.\n\nIf unsure, use the first one.");
|
||||||
static const char* TR_FULLSCREEN_DESCRIPTION = QT_TR_NOOP(
|
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 "
|
"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.");
|
"render window will be created instead.\n\nIf unsure, leave this unchecked.");
|
||||||
static const char* TR_AUTOSIZE_DESCRIPTION =
|
static const char TR_AUTOSIZE_DESCRIPTION[] =
|
||||||
QT_TR_NOOP("Automatically adjusts the window size to your internal resolution.\n\nIf unsure, "
|
QT_TR_NOOP("Automatically adjusts the window size to your internal resolution.\n\nIf unsure, "
|
||||||
"leave this unchecked.");
|
"leave this unchecked.");
|
||||||
|
|
||||||
static const char* TR_RENDER_TO_MAINWINDOW_DESCRIPTION =
|
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 "
|
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.");
|
"a separate render window.\n\nIf unsure, leave this unchecked.");
|
||||||
static const char* TR_ASPECT_RATIO_DESCRIPTION = QT_TR_NOOP(
|
static const char TR_ASPECT_RATIO_DESCRIPTION[] = QT_TR_NOOP(
|
||||||
"Select what aspect ratio to use when rendering:\nAuto: Use the native aspect "
|
"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: "
|
"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 "
|
"Mimic a standard 4:3 analog TV.\nStretch to Window: Stretch the picture to the "
|
||||||
"window size.\n\nIf unsure, select Auto.");
|
"window size.\n\nIf unsure, select Auto.");
|
||||||
static const char* TR_VSYNC_DESCRIPTION =
|
static const char TR_VSYNC_DESCRIPTION[] =
|
||||||
QT_TR_NOOP("Wait for vertical blanks in order to reduce tearing.\nDecreases performance if "
|
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.");
|
"emulation speed is below 100%.\n\nIf unsure, leave this unchecked.");
|
||||||
static const char* TR_SHOW_FPS_DESCRIPTION =
|
static const char TR_SHOW_FPS_DESCRIPTION[] =
|
||||||
QT_TR_NOOP("Show the number of frames rendered per second as a measure of "
|
QT_TR_NOOP("Show the number of frames rendered per second as a measure of "
|
||||||
"emulation speed.\n\nIf unsure, leave this unchecked.");
|
"emulation speed.\n\nIf unsure, leave this unchecked.");
|
||||||
static const char* TR_SHOW_NETPLAY_PING_DESCRIPTION =
|
static const char TR_SHOW_NETPLAY_PING_DESCRIPTION[] =
|
||||||
QT_TR_NOOP("Show the players' maximum Ping while playing on "
|
QT_TR_NOOP("Show the players' maximum Ping while playing on "
|
||||||
"NetPlay.\n\nIf unsure, leave this unchecked.");
|
"NetPlay.\n\nIf unsure, leave this unchecked.");
|
||||||
static const char* TR_LOG_RENDERTIME_DESCRIPTION =
|
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 "
|
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 "
|
"feature when you want to measure the performance of Dolphin.\n\nIf "
|
||||||
"unsure, leave this unchecked.");
|
"unsure, leave this unchecked.");
|
||||||
static const char* TR_SHOW_NETPLAY_MESSAGES_DESCRIPTION =
|
static const char TR_SHOW_NETPLAY_MESSAGES_DESCRIPTION[] =
|
||||||
QT_TR_NOOP("When playing on NetPlay, show chat messages, buffer changes and "
|
QT_TR_NOOP("When playing on NetPlay, show chat messages, buffer changes and "
|
||||||
"desync alerts.\n\nIf unsure, leave this unchecked.");
|
"desync alerts.\n\nIf unsure, leave this unchecked.");
|
||||||
static const char* TR_SHADER_COMPILE_SYNC_DESCRIPTION =
|
static const char TR_SHADER_COMPILE_SYNC_DESCRIPTION[] =
|
||||||
QT_TR_NOOP("Ubershaders are never used. Stuttering will occur during shader "
|
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 "
|
"compilation, but GPU demands are low. Recommended for low-end hardware.\n\nIf "
|
||||||
"unsure, select this mode.");
|
"unsure, select this mode.");
|
||||||
static const char* TR_SHADER_COMPILE_UBER_ONLY_DESCRIPTION = QT_TR_NOOP(
|
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 "
|
"Ubershaders will always be used. Provides a near stutter-free experience at the cost of "
|
||||||
"high GPU performance requirements. Only recommended for high-end systems.");
|
"high GPU performance requirements. Only recommended for high-end systems.");
|
||||||
static const char* TR_SHADER_COMPILE_ASYNC_UBER_DESCRIPTION =
|
static const char TR_SHADER_COMPILE_ASYNC_UBER_DESCRIPTION[] =
|
||||||
QT_TR_NOOP("Ubershaders will be used to prevent stuttering during shader compilation, but "
|
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. In the "
|
"specialized shaders will be used when they will not cause stuttering. In the "
|
||||||
"best case it eliminates shader compilation stuttering while having minimal "
|
"best case it eliminates shader compilation stuttering while having minimal "
|
||||||
"performance impact, but results depend on video driver behavior.");
|
"performance impact, but results depend on video driver behavior.");
|
||||||
static const char* TR_SHADER_COMPILE_ASYNC_SKIP_DESCRIPTION = QT_TR_NOOP(
|
static const char TR_SHADER_COMPILE_ASYNC_SKIP_DESCRIPTION[] = QT_TR_NOOP(
|
||||||
"Prevents shader compilation stuttering by not rendering waiting objects. Can work in "
|
"Prevents shader compilation stuttering by not rendering waiting objects. Can work in "
|
||||||
"scenarios where Ubershaders doesn't, at the cost of introducing visual glitches and broken "
|
"scenarios where Ubershaders doesn't, at the cost of introducing visual glitches and broken "
|
||||||
"effects. Not recommended, only use if the other options give poor results on your system.");
|
"effects. Not recommended, only use if the other options give poor results on your system.");
|
||||||
static const char* TR_SHADER_COMPILE_BEFORE_START_DESCRIPTION =
|
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 "
|
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 "
|
"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 "
|
"started, at the cost of a longer delay before the game starts. For systems with "
|
||||||
|
|
|
@ -190,50 +190,50 @@ void HacksWidget::SaveSettings()
|
||||||
|
|
||||||
void HacksWidget::AddDescriptions()
|
void HacksWidget::AddDescriptions()
|
||||||
{
|
{
|
||||||
static const char* TR_SKIP_EFB_CPU_ACCESS_DESCRIPTION =
|
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 "
|
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 "
|
"performance in some games, but might disable some gameplay-related features or "
|
||||||
"graphical effects.\n\nIf unsure, leave this unchecked.");
|
"graphical effects.\n\nIf unsure, leave this unchecked.");
|
||||||
static const char* TR_IGNORE_FORMAT_CHANGE_DESCRIPTION = QT_TR_NOOP(
|
static const char TR_IGNORE_FORMAT_CHANGE_DESCRIPTION[] = QT_TR_NOOP(
|
||||||
"Ignore any changes to the EFB format.\nImproves performance in many games without "
|
"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 "
|
"any negative effect. Causes graphical defects in a small number of other "
|
||||||
"games.\n\nIf unsure, leave this checked.");
|
"games.\n\nIf unsure, leave this checked.");
|
||||||
static const char* TR_STORE_EFB_TO_TEXTURE_DESCRIPTION = QT_TR_NOOP(
|
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 "
|
"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 "
|
"in a small number of games.\n\nEnabled = EFB Copies to Texture\nDisabled = EFB Copies to "
|
||||||
"RAM "
|
"RAM "
|
||||||
"(and Texture)\n\nIf unsure, leave this checked.");
|
"(and Texture)\n\nIf unsure, leave this checked.");
|
||||||
static const char* TR_ACCUARCY_DESCRIPTION = QT_TR_NOOP(
|
static const char TR_ACCUARCY_DESCRIPTION[] = QT_TR_NOOP(
|
||||||
"The \"Safe\" setting eliminates the likelihood of the GPU missing texture updates "
|
"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 "
|
"from RAM.\nLower accuracies cause in-game text to appear garbled in certain "
|
||||||
"games.\n\nIf unsure, use the rightmost value.");
|
"games.\n\nIf unsure, use the rightmost value.");
|
||||||
|
|
||||||
static const char* TR_STORE_XFB_TO_TEXTURE_DESCRIPTION = QT_TR_NOOP(
|
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 "
|
"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 "
|
"in a small number of games that need to readback from memory.\n\nEnabled = XFB Copies to "
|
||||||
"Texture\nDisabled = XFB Copies to RAM "
|
"Texture\nDisabled = XFB Copies to RAM "
|
||||||
"(and Texture)\n\nIf unsure, leave this checked.");
|
"(and Texture)\n\nIf unsure, leave this checked.");
|
||||||
|
|
||||||
static const char* TR_IMMEDIATE_XFB_DESCRIPTION =
|
static const char TR_IMMEDIATE_XFB_DESCRIPTION[] =
|
||||||
QT_TR_NOOP("Displays the XFB copies as soon as they are created, without waiting for "
|
QT_TR_NOOP("Displays the XFB copies as soon as they are created, without waiting for "
|
||||||
"scanout. Can cause graphical defects "
|
"scanout. Can cause graphical defects "
|
||||||
"in some games if the game doesn't expect all XFB copies to be displayed. "
|
"in some games if the game doesn't expect all XFB copies to be displayed. "
|
||||||
"However, turning this setting on reduces latency."
|
"However, turning this setting on reduces latency."
|
||||||
"\n\nIf unsure, leave this unchecked.");
|
"\n\nIf unsure, leave this unchecked.");
|
||||||
|
|
||||||
static const char* TR_GPU_DECODING_DESCRIPTION =
|
static const char TR_GPU_DECODING_DESCRIPTION[] =
|
||||||
QT_TR_NOOP("Enables texture decoding using the GPU instead of the CPU. This may result in "
|
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 "
|
"performance gains in some scenarios, or on systems where the CPU is the "
|
||||||
"bottleneck.\n\nIf unsure, leave this unchecked.");
|
"bottleneck.\n\nIf unsure, leave this unchecked.");
|
||||||
|
|
||||||
static const char* TR_FAST_DEPTH_CALC_DESCRIPTION = QT_TR_NOOP(
|
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 "
|
"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 "
|
"games, but can give a decent speedup depending on the game and/or your GPU.\n\nIf "
|
||||||
"unsure, leave this checked.");
|
"unsure, leave this checked.");
|
||||||
static const char* TR_DISABLE_BOUNDINGBOX_DESCRIPTION =
|
static const char TR_DISABLE_BOUNDINGBOX_DESCRIPTION[] =
|
||||||
QT_TR_NOOP("Disable the bounding box emulation.\nThis may improve the GPU performance a lot, "
|
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.");
|
"but some games will break.\n\nIf unsure, leave this checked.");
|
||||||
static const char* TR_VERTEX_ROUNDING_DESCRIPTION =
|
static const char TR_VERTEX_ROUNDING_DESCRIPTION[] =
|
||||||
QT_TR_NOOP("Rounds 2D vertices to whole pixels. Fixes graphical problems in some games at "
|
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 "
|
"higher internal resolutions. This setting has no effect when native internal "
|
||||||
"resolution is used.\n\nIf unsure, leave this unchecked.");
|
"resolution is used.\n\nIf unsure, leave this unchecked.");
|
||||||
|
|
|
@ -147,21 +147,26 @@ void SoftwareRendererWidget::SaveSettings()
|
||||||
|
|
||||||
void SoftwareRendererWidget::AddDescriptions()
|
void SoftwareRendererWidget::AddDescriptions()
|
||||||
{
|
{
|
||||||
static const char* TR_BACKEND_DESCRIPTION =
|
static const char TR_BACKEND_DESCRIPTION[] =
|
||||||
QT_TR_NOOP("Selects what graphics API to use internally.\nThe software renderer is extremely "
|
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 "
|
"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 "
|
"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 "
|
"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.");
|
"choose the one that's less problematic.\n\nIf unsure, select OpenGL.");
|
||||||
|
|
||||||
static const char* TR_SHOW_STATISTICS_DESCRIPTION =
|
static const char TR_SHOW_STATISTICS_DESCRIPTION[] =
|
||||||
QT_TR_NOOP("Show various rendering statistics.\n\nIf unsure, leave this unchecked.");
|
QT_TR_NOOP("Show various rendering statistics.\n\nIf unsure, leave this unchecked.");
|
||||||
|
|
||||||
static const char* TR_DUMP_TEXTURES_DESCRIPTION =
|
static const char TR_DUMP_TEXTURES_DESCRIPTION[] =
|
||||||
QT_TR_NOOP("Dump decoded game textures to User/Dump/Textures/<game_id>/.\n\nIf unsure, leave "
|
QT_TR_NOOP("Dump decoded game textures to User/Dump/Textures/<game_id>/.\n\nIf unsure, leave "
|
||||||
"this unchecked.");
|
"this unchecked.");
|
||||||
|
|
||||||
|
static const char TR_DUMP_OBJECTS_DESCRIPTION[] =
|
||||||
|
QT_TR_NOOP("Dump objects to User/Dump/Objects/.\n\nIf unsure, leave "
|
||||||
|
"this unchecked.");
|
||||||
|
|
||||||
AddDescription(m_backend_combo, TR_BACKEND_DESCRIPTION);
|
AddDescription(m_backend_combo, TR_BACKEND_DESCRIPTION);
|
||||||
AddDescription(m_show_statistics, TR_SHOW_STATISTICS_DESCRIPTION);
|
AddDescription(m_show_statistics, TR_SHOW_STATISTICS_DESCRIPTION);
|
||||||
AddDescription(m_dump_textures, TR_DUMP_TEXTURES_DESCRIPTION);
|
AddDescription(m_dump_textures, TR_DUMP_TEXTURES_DESCRIPTION);
|
||||||
|
AddDescription(m_dump_objects, TR_DUMP_OBJECTS_DESCRIPTION);
|
||||||
}
|
}
|
||||||
|
|
|
@ -50,13 +50,13 @@ namespace UICommon
|
||||||
{
|
{
|
||||||
static void CreateDumpPath(const std::string& path)
|
static void CreateDumpPath(const std::string& path)
|
||||||
{
|
{
|
||||||
if (path.empty())
|
if (!path.empty())
|
||||||
return;
|
|
||||||
File::SetUserPath(D_DUMP_IDX, path + '/');
|
File::SetUserPath(D_DUMP_IDX, path + '/');
|
||||||
File::CreateFullPath(File::GetUserPath(D_DUMPAUDIO_IDX));
|
File::CreateFullPath(File::GetUserPath(D_DUMPAUDIO_IDX));
|
||||||
File::CreateFullPath(File::GetUserPath(D_DUMPDSP_IDX));
|
File::CreateFullPath(File::GetUserPath(D_DUMPDSP_IDX));
|
||||||
File::CreateFullPath(File::GetUserPath(D_DUMPSSL_IDX));
|
File::CreateFullPath(File::GetUserPath(D_DUMPSSL_IDX));
|
||||||
File::CreateFullPath(File::GetUserPath(D_DUMPFRAMES_IDX));
|
File::CreateFullPath(File::GetUserPath(D_DUMPFRAMES_IDX));
|
||||||
|
File::CreateFullPath(File::GetUserPath(D_DUMPOBJECTS_IDX));
|
||||||
File::CreateFullPath(File::GetUserPath(D_DUMPTEXTURES_IDX));
|
File::CreateFullPath(File::GetUserPath(D_DUMPTEXTURES_IDX));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -200,7 +200,7 @@ void OnObjectEnd()
|
||||||
{
|
{
|
||||||
if (g_ActiveConfig.bDumpObjects && stats.thisFrame.numDrawnObjects >= g_ActiveConfig.drawStart &&
|
if (g_ActiveConfig.bDumpObjects && stats.thisFrame.numDrawnObjects >= g_ActiveConfig.drawStart &&
|
||||||
stats.thisFrame.numDrawnObjects < g_ActiveConfig.drawEnd)
|
stats.thisFrame.numDrawnObjects < g_ActiveConfig.drawEnd)
|
||||||
DumpEfb(StringFromFormat("%sobject%i.png", File::GetUserPath(D_DUMPFRAMES_IDX).c_str(),
|
DumpEfb(StringFromFormat("%sobject%i.png", File::GetUserPath(D_DUMPOBJECTS_IDX).c_str(),
|
||||||
stats.thisFrame.numDrawnObjects));
|
stats.thisFrame.numDrawnObjects));
|
||||||
|
|
||||||
for (int i = 0; i < NUM_OBJECT_BUFFERS; i++)
|
for (int i = 0; i < NUM_OBJECT_BUFFERS; i++)
|
||||||
|
@ -209,7 +209,7 @@ void OnObjectEnd()
|
||||||
{
|
{
|
||||||
DrawnToBuffer[i] = false;
|
DrawnToBuffer[i] = false;
|
||||||
std::string filename =
|
std::string filename =
|
||||||
StringFromFormat("%sobject%i_%s(%i).png", File::GetUserPath(D_DUMPFRAMES_IDX).c_str(),
|
StringFromFormat("%sobject%i_%s(%i).png", File::GetUserPath(D_DUMPOBJECTS_IDX).c_str(),
|
||||||
stats.thisFrame.numDrawnObjects, ObjectBufferName[i], i - BufferBase[i]);
|
stats.thisFrame.numDrawnObjects, ObjectBufferName[i], i - BufferBase[i]);
|
||||||
|
|
||||||
TextureToPng((u8*)ObjectBuffer[i], EFB_WIDTH * 4, filename, EFB_WIDTH, EFB_HEIGHT, true);
|
TextureToPng((u8*)ObjectBuffer[i], EFB_WIDTH * 4, filename, EFB_WIDTH, EFB_HEIGHT, true);
|
||||||
|
|
Loading…
Reference in New Issue