[videodb] remove unused seasons table from episode_view
[xbmc.git] / xbmc / windowing / gbm / WinSystemGbmEGLContext.h
blobe8b0a76d4407fafab77fac034d82b56f0558aae7
1 /*
2 * Copyright (C) 2005-2018 Team Kodi
3 * This file is part of Kodi - https://kodi.tv
5 * SPDX-License-Identifier: GPL-2.0-or-later
6 * See LICENSES/README.md for more information.
7 */
9 #pragma once
11 #include "WinSystemGbm.h"
12 #include "utils/EGLFence.h"
13 #include "utils/EGLUtils.h"
14 #include "windowing/linux/WinSystemEGL.h"
16 #include <memory>
18 namespace KODI
20 namespace WINDOWING
22 namespace GBM
25 class CVaapiProxy;
27 class CWinSystemGbmEGLContext : public KODI::WINDOWING::LINUX::CWinSystemEGL, public CWinSystemGbm
29 public:
30 ~CWinSystemGbmEGLContext() override = default;
32 bool DestroyWindowSystem() override;
33 bool CreateNewWindow(const std::string& name,
34 bool fullScreen,
35 RESOLUTION_INFO& res) override;
36 bool DestroyWindow() override;
38 bool BindTextureUploadContext() override;
39 bool UnbindTextureUploadContext() override;
40 bool HasContext() override;
42 protected:
43 CWinSystemGbmEGLContext(EGLenum platform, std::string const& platformExtension)
44 : CWinSystemEGL{platform, platformExtension}
47 /**
48 * Inheriting classes should override InitWindowSystem() without parameters
49 * and call this function there with appropriate parameters
51 bool InitWindowSystemEGL(EGLint renderableType, EGLint apiType);
52 virtual bool CreateContext() = 0;
54 std::unique_ptr<KODI::UTILS::EGL::CEGLFence> m_eglFence;
56 struct delete_CVaapiProxy
58 void operator()(CVaapiProxy *p) const;
60 std::unique_ptr<CVaapiProxy, delete_CVaapiProxy> m_vaapiProxy;