11 #include "VideoLayerBridge.h" 12 #include "drm/DRMUtils.h" 13 #include "threads/CriticalSection.h" 14 #include "threads/SystemClock.h" 15 #include "windowing/WinSystem.h" 17 #include "platform/linux/input/LibInputHandler.h" 38 const std::string GetName()
override {
return "gbm"; }
40 bool InitWindowSystem()
override;
41 bool DestroyWindowSystem()
override;
43 bool ResizeWindow(
int newWidth,
int newHeight,
int newLeft,
int newTop)
override;
44 bool SetFullScreen(
bool fullScreen,
RESOLUTION_INFO& res,
bool blankOtherDisplays)
override;
45 bool DisplayHardwareScalingEnabled()
override;
48 void FlipPage(
bool rendered,
bool videoLayer);
50 bool CanDoWindowed()
override {
return false; }
51 void UpdateResolutions()
override;
53 bool UseLimitedColor()
override;
56 bool Show(
bool raise =
true)
override;
63 std::shared_ptr<CVideoLayerBridge> GetVideoLayerBridge()
const {
return m_videoLayerBridge; }
64 void RegisterVideoLayerBridge(std::shared_ptr<CVideoLayerBridge> bridge)
66 m_videoLayerBridge = std::move(bridge);
70 std::shared_ptr<CDRMUtils> GetDrm()
const {
return m_DRM; }
72 std::vector<std::string> GetConnectedOutputs()
override;
77 std::unique_ptr<CVideoSync> GetVideoSync(
void* clock)
override;
79 std::shared_ptr<CDRMUtils> m_DRM;
80 std::unique_ptr<CGBMUtils> m_GBM;
81 std::shared_ptr<CVideoLayerBridge> m_videoLayerBridge;
83 CCriticalSection m_resourceSection;
84 std::vector<IDispResource*> m_resources;
86 bool m_dispReset =
false;
88 std::unique_ptr<CLibInputHandler> m_libinput;
91 uint32_t m_hdr_blob_id = 0;
void UpdateDisplayHardwareScaling(const RESOLUTION_INFO &resInfo) override
Definition: WinSystemGbm.cpp:225
Definition: WinSystemGbm.h:32
Definition: WinSystem.h:44
Definition: SystemClock.h:31
bool SetHDR(const VideoPicture *videoPicture) override
Set the HDR metadata.
Definition: WinSystemGbm.cpp:316
Definition: DispResource.h:14
Provide info of a resolution.
Definition: Resolution.h:66
Controller configuration window.
Definition: AudioDecoder.h:18
bool IsHDRDisplay() override
Definition: WinSystemGbm.cpp:432
Definition: DVDVideoCodec.h:36
A wrapper for gbm_device to allow OOP and RAII.
Definition: GBMUtils.h:48