kodi
GUIRenderHandle.h
1 /*
2  * Copyright (C) 2017-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 namespace KODI
12 {
13 namespace RETRO
14 {
15 class CGameWindowFullScreen;
16 class CGUIGameControl;
17 class CGUIGameRenderManager;
18 
19 enum class RENDER_HANDLE
20 {
21  CONTROL,
22  WINDOW,
23 };
24 
25 // --- CGUIRenderHandle ------------------------------------------------------
26 
28 {
29 public:
30  CGUIRenderHandle(CGUIGameRenderManager& renderManager, RENDER_HANDLE type);
31  virtual ~CGUIRenderHandle();
32 
33  RENDER_HANDLE Type() const { return m_type; }
34 
35  void Render();
36  void RenderEx();
37  bool IsDirty();
38  void ClearBackground();
39 
40 private:
41  // Construction parameters
42  CGUIGameRenderManager& m_renderManager;
43  const RENDER_HANDLE m_type;
44 };
45 
46 // --- CGUIRenderControlHandle -----------------------------------------------
47 
49 {
50 public:
52  ~CGUIRenderControlHandle() override = default;
53 
54  CGUIGameControl& GetControl() { return m_control; }
55 
56 private:
57  // Construction parameters
58  CGUIGameControl& m_control;
59 };
60 
61 // --- CGUIRenderFullScreenHandle --------------------------------------------
62 
64 {
65 public:
67  ~CGUIRenderFullScreenHandle() override = default;
68 
69  CGameWindowFullScreen& GetWindow() { return m_window; }
70 
71 private:
72  // Construction parameters
73  CGameWindowFullScreen& m_window;
74 };
75 } // namespace RETRO
76 } // namespace KODI
Definition: GUIRenderHandle.h:27
Definition: GUIRenderHandle.h:63
Definition: GUIGameControl.h:29
Definition: GUIRenderHandle.h:48
Definition: AudioDecoder.h:18
Definition: GameWindowFullScreen.h:22
Class to safely route commands between the GUI and RetroPlayer.
Definition: GUIGameRenderManager.h:69