Skip to content

Commit

Permalink
VR: Add option to toggle desktop recording fix
Browse files Browse the repository at this point in the history
  • Loading branch information
praydog committed May 16, 2022
1 parent 5185531 commit 8219ac0
Show file tree
Hide file tree
Showing 4 changed files with 11 additions and 6 deletions.
1 change: 1 addition & 0 deletions src/mods/VR.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -3884,6 +3884,7 @@ void VR::on_draw_ui() {
m_force_lensflares_settings->draw("Force Disable Lens Flares");
m_force_dynamic_shadows_settings->draw("Force Enable Dynamic Shadows");
m_allow_engine_overlays->draw("Allow Engine Overlays");
m_desktop_fix->draw("Desktop Recording Fix");

ImGui::Separator();
ImGui::Text("Debug info");
Expand Down
4 changes: 3 additions & 1 deletion src/mods/VR.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -517,6 +517,7 @@ class VR : public Mod {
const ModToggle::Ptr m_force_lensflares_settings{ ModToggle::create(generate_name("ForceLensFlares"), true) };
const ModToggle::Ptr m_force_dynamic_shadows_settings{ ModToggle::create(generate_name("ForceDynamicShadows"), true) };
const ModToggle::Ptr m_allow_engine_overlays{ ModToggle::create(generate_name("AllowEngineOverlays"), true) };
const ModToggle::Ptr m_desktop_fix{ ModToggle::create(generate_name("DesktopRecordingFix"), true) };

bool m_disable_projection_matrix_override{ false };
bool m_disable_gui_camera_projection_matrix_override{ false };
Expand Down Expand Up @@ -548,7 +549,8 @@ class VR : public Mod {
*m_ui_distance_option,
*m_world_ui_scale_option,
*m_allow_engine_overlays,
*m_resolution_scale
*m_resolution_scale,
*m_desktop_fix,
};

bool m_use_rotation{true};
Expand Down
2 changes: 1 addition & 1 deletion src/mods/vr/D3D11Component.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -112,7 +112,7 @@ vr::EVRCompositorError D3D11Component::on_frame(VR* vr) {
vr->m_submitted = true;
}

if (runtime->ready()) {
if (runtime->ready() && vr->m_desktop_fix->value()) {
hook->ignore_next_present();
}
}
Expand Down
10 changes: 6 additions & 4 deletions src/mods/vr/D3D12Component.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -148,10 +148,12 @@ vr::EVRCompositorError D3D12Component::on_frame(VR* vr) {
}

// Allows the desktop window to be recorded.
if (runtime->ready() && m_prev_backbuffer != backbuffer && m_prev_backbuffer != nullptr) {
m_generic_copiers[frame_count % 3].wait(INFINITE);
m_generic_copiers[frame_count % 3].copy(m_prev_backbuffer.Get(), backbuffer.Get(), D3D12_RESOURCE_STATE_PRESENT, D3D12_RESOURCE_STATE_PRESENT);
m_generic_copiers[frame_count % 3].execute();
if (vr->m_desktop_fix->value()) {
if (runtime->ready() && m_prev_backbuffer != backbuffer && m_prev_backbuffer != nullptr) {
m_generic_copiers[frame_count % 3].wait(INFINITE);
m_generic_copiers[frame_count % 3].copy(m_prev_backbuffer.Get(), backbuffer.Get(), D3D12_RESOURCE_STATE_PRESENT, D3D12_RESOURCE_STATE_PRESENT);
m_generic_copiers[frame_count % 3].execute();
}
}
}

Expand Down

0 comments on commit 8219ac0

Please sign in to comment.