blob: b08124815821d6f41139f031435d4d74bf7ee7ef [file] [log] [blame]
// Copyright 2024 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef UI_GL_VSYNC_THREAD_WIN_DCOMP_H_
#define UI_GL_VSYNC_THREAD_WIN_DCOMP_H_
#include "ui/gl/vsync_provider_win_dcomp.h"
#include "ui/gl/vsync_thread_win.h"
namespace gl {
class GL_EXPORT VSyncThreadWinDComp final : public VSyncThreadWin {
public:
VSyncThreadWinDComp();
VSyncThreadWinDComp(const VSyncThreadWinDComp&) = delete;
VSyncThreadWinDComp& operator=(const VSyncThreadWinDComp&) = delete;
// Returns the vsync interval via the Vsync provider.
base::TimeDelta GetVsyncInterval() final;
gfx::VSyncProvider* vsync_provider() final;
protected:
bool WaitForVSyncImpl(base::TimeDelta* vsync_interval) final;
private:
~VSyncThreadWinDComp() final;
// Used on vsync thread only after initialization.
VSyncProviderWinDComp vsync_provider_;
};
} // namespace gl
#endif // UI_GL_VSYNC_THREAD_WIN_DCOMP_H_