mirror of
https://github.com/spice2x/spice2x.github.io.git
synced 2026-10-04 17:28:12 -07:00
graphics: exclude overlay from screenshots (#865)
## Link to GitHub Issue or related Pull Request, if one exists #0 ## Description of change Adds the `-screenshotoverlay` option. By default, file screenshots exclude the Spice overlay. Enabling this option captures screenshots after the overlay is rendered. Also updates DX11 backend to allow screenshots even when overlay is disabled. ## Testing
This commit is contained in:
@@ -1489,6 +1489,13 @@ void graphics_d3d9_on_present(
|
||||
SurfaceHook(device);
|
||||
}
|
||||
|
||||
graphics_poll_screenshot_hotkey();
|
||||
|
||||
// before the overlay render so the screenshot excludes it
|
||||
if (!GRAPHICS_SCREENSHOT_INCLUDE_OVERLAY) {
|
||||
graphics_d3d9_process_screenshot(device, SUB_SWAP_CHAIN);
|
||||
}
|
||||
|
||||
// Do overlay init as many d3d9 hooks create a dummy instance to get vtable offsets and never
|
||||
// call `Present`. This avoids race conditions on `IDirect3D9::CreateDevice` like with
|
||||
// `dx9osd.dll` for pfreepanic.
|
||||
@@ -1508,6 +1515,11 @@ void graphics_d3d9_on_present(
|
||||
device->EndScene();
|
||||
}
|
||||
|
||||
// after the overlay render so the screenshot includes toasts / menus
|
||||
if (GRAPHICS_SCREENSHOT_INCLUDE_OVERLAY) {
|
||||
graphics_d3d9_process_screenshot(device, SUB_SWAP_CHAIN);
|
||||
}
|
||||
|
||||
// for IIDX TDJ / SDVX UFC, handle subscreen
|
||||
const bool is_vm = games::sdvx::is_valkyrie_model();
|
||||
const bool is_tdj = avs::game::is_model("LDJ") && games::iidx::TDJ_MODE;
|
||||
@@ -1522,8 +1534,8 @@ void graphics_d3d9_on_present(
|
||||
wintouchemu::update();
|
||||
}
|
||||
|
||||
graphics_poll_screenshot_hotkey();
|
||||
graphics_d3d9_process_screenshot_and_capture(device, SUB_SWAP_CHAIN);
|
||||
// API capture always includes the overlay
|
||||
graphics_d3d9_process_capture(device, SUB_SWAP_CHAIN);
|
||||
}
|
||||
|
||||
void update_backbuffer_dimensions(D3DPRESENT_PARAMETERS *params) {
|
||||
|
||||
Reference in New Issue
Block a user