kodi
RenderBufferManager.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 #include "cores/GameSettings.h"
12 #include "cores/RetroPlayer/RetroPlayerTypes.h"
13 #include "threads/CriticalSection.h"
14 
15 #include <memory>
16 #include <vector>
17 
18 namespace KODI
19 {
20 namespace RETRO
21 {
22 class IRendererFactory;
23 class IRenderBufferPools;
24 
26 {
27 public:
28  CRenderBufferManager() = default;
30 
31  void RegisterPools(IRendererFactory* factory, RenderBufferPoolVector pools);
32  RenderBufferPoolVector GetPools(IRendererFactory* factory);
33  std::vector<IRenderBufferPool*> GetBufferPools();
34  void FlushPools();
35 
36  std::string GetRenderSystemName(IRenderBufferPool* renderBufferPool) const;
37 
38  bool HasScalingMethod(SCALINGMETHOD scalingMethod) const;
39 
40 protected:
42  {
43  IRendererFactory* factory;
44  RenderBufferPoolVector pools;
45  };
46 
47  std::vector<RenderBufferPools> m_pools;
48  mutable CCriticalSection m_critSection;
49 };
50 } // namespace RETRO
51 } // namespace KODI
Definition: RenderBufferManager.h:25
Definition: AudioDecoder.h:18
Definition: IRenderBufferPool.h:30
Rendering factory.
Definition: RPProcessInfo.h:46
Definition: RenderBufferManager.h:41