1 /*
2  *  Copyright (C) 2005-2018 Team Kodi
3  *  This file is part of Kodi - https://kodi.tv
4  *
5  *  SPDX-License-Identifier: GPL-2.0-or-later
6  *  See LICENSES/README.md for more information.
7  */
8 
9 #pragma once
10 
11 #include "WinSystemGbmEGLContext.h"
12 #include "rendering/gles/RenderSystemGLES.h"
13 #include "utils/EGLUtils.h"
14 
15 #include <memory>
16 
17 class CVaapiProxy;
18 
19 namespace KODI
20 {
21 namespace WINDOWING
22 {
23 namespace GBM
24 {
25 
26 class CWinSystemGbmGLESContext : public CWinSystemGbmEGLContext, public CRenderSystemGLES
27 {
28 public:
29   CWinSystemGbmGLESContext();
30   ~CWinSystemGbmGLESContext() override = default;
31 
32   static void Register();
33   static std::unique_ptr<CWinSystemBase> CreateWinSystem();
34 
35   // Implementation of CWinSystemBase via CWinSystemGbm
GetRenderSystem()36   CRenderSystemBase *GetRenderSystem() override { return this; }
37   bool InitWindowSystem() override;
38   bool SetFullScreen(bool fullScreen, RESOLUTION_INFO& res, bool blankOtherDisplays) override;
39   void PresentRender(bool rendered, bool videoLayer) override;
40 protected:
SetVSyncImpl(bool enable)41   void SetVSyncImpl(bool enable) override {}
PresentRenderImpl(bool rendered)42   void PresentRenderImpl(bool rendered) override {};
43   bool CreateContext() override;
44 };
45 
46 }
47 }
48 }
49