Closes #34374 This is a leftover issue from #34374. Back in #34374, I wanted to use DirectX to handle vsync, after all, that’s how 99% of Windows apps do it. But after discussing with @maxbrunsfeld , we decided to stick with the original vsync approach given gpui’s architecture. In my tests, there’s no noticeable performance difference between this PR’s approach and DirectX vsync. That said, this PR’s method does have a theoretical advantage, it doesn’t block the main thread while waiting for vsync. The only difference is that in this PR, on Windows 11 we use a newer API instead of `DwmFlush`, since Chrome’s tests have shown that `DwmFlush` has some problems. This PR also removes the use of `MsgWaitForMultipleObjects`. Release Notes: - N/A --------- Co-authored-by: Max Brunsfeld <maxbrunsfeld@gmail.com>
39 lines
915 B
Rust
39 lines
915 B
Rust
mod clipboard;
|
|
mod destination_list;
|
|
mod direct_write;
|
|
mod directx_atlas;
|
|
mod directx_renderer;
|
|
mod dispatcher;
|
|
mod display;
|
|
mod events;
|
|
mod keyboard;
|
|
mod platform;
|
|
mod system_settings;
|
|
mod util;
|
|
mod vsync;
|
|
mod window;
|
|
mod wrapper;
|
|
|
|
pub(crate) use clipboard::*;
|
|
pub(crate) use destination_list::*;
|
|
pub(crate) use direct_write::*;
|
|
pub(crate) use directx_atlas::*;
|
|
pub(crate) use directx_renderer::*;
|
|
pub(crate) use dispatcher::*;
|
|
pub(crate) use display::*;
|
|
pub(crate) use events::*;
|
|
pub(crate) use keyboard::*;
|
|
pub(crate) use platform::*;
|
|
pub(crate) use system_settings::*;
|
|
pub(crate) use util::*;
|
|
pub(crate) use vsync::*;
|
|
pub(crate) use window::*;
|
|
pub(crate) use wrapper::*;
|
|
|
|
pub(crate) use windows::Win32::Foundation::HWND;
|
|
|
|
#[cfg(feature = "screen-capture")]
|
|
pub(crate) type PlatformScreenCaptureFrame = scap::frame::Frame;
|
|
#[cfg(not(feature = "screen-capture"))]
|
|
pub(crate) type PlatformScreenCaptureFrame = ();
|