Files
AC6_recomp/src/ac6_native_graphics.h
T
salh c2e2fbfbbc Add 60fps cutscene clamp for in-engine cinematics
Suspend the FPS unlock while a demo-manager Exec (DD sub_82184460 / EM sub_821856F8) ticks, so the frame-locked IngameCinematics Sequencer plays at native ~30fps instead of double speed. Adds ac6_cutscene_clamp CVar (default on).
2026-06-15 16:03:43 +03:00

46 lines
1.2 KiB
C++

#pragma once
#include <cstdint>
#include <string>
#include <string_view>
#include <rex/memory.h>
#include "ac6_backend_fixes/ac6_backend_hooks.h"
#include "d3d_state.h"
namespace ac6::graphics {
enum class GraphicsRuntimeMode : uint8_t {
kDisabled,
kAnalysisOnly,
kHybridBackendFixes,
};
std::string_view ToString(GraphicsRuntimeMode mode);
struct NativeGraphicsRuntimeStatus {
bool enabled = false;
GraphicsRuntimeMode mode = GraphicsRuntimeMode::kHybridBackendFixes;
bool capture_enabled = false;
bool authoritative_renderer_active = false;
std::string authoritative_renderer_name;
uint32_t draw_resolution_scale_x = 1;
uint32_t draw_resolution_scale_y = 1;
bool direct_host_resolve = true;
bool draw_resolution_scaled_texture_offsets = true;
uint64_t analysis_frames_observed = 0;
uint64_t latest_capture_frame_index = 0;
uint64_t last_meaningful_capture_frame_index = 0;
ac6::d3d::FrameCaptureSummary capture_summary{};
ac6::backend::BackendDiagnosticsSnapshot backend_diagnostics{};
};
void OnFrameBoundary(rex::memory::Memory* memory);
void Shutdown();
NativeGraphicsRuntimeStatus GetRuntimeStatus();
rex::memory::Memory* GetCapturedMemory();
} // namespace ac6::graphics