kodi
BaseRenderBuffer.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 "IRenderBuffer.h"
12 
13 #include <atomic>
14 #include <memory>
15 
16 namespace KODI
17 {
18 namespace RETRO
19 {
21 {
22 public:
24  ~CBaseRenderBuffer() override = default;
25 
26  // Partial implementation of IRenderBuffer
27  void Acquire() override;
28  void Acquire(std::shared_ptr<IRenderBufferPool> pool) override;
29  void Release() override;
30  IRenderBufferPool* GetPool() override { return m_pool.get(); }
31  DataAccess GetMemoryAccess() const override;
32  DataAlignment GetMemoryAlignment() const override;
33 
34 protected:
35  // Reference counting
36  std::atomic_int m_refCount;
37 
38  // Pool callback
39  std::shared_ptr<IRenderBufferPool> m_pool;
40 };
41 } // namespace RETRO
42 } // namespace KODI
Definition: IRenderBuffer.h:27
Definition: AudioDecoder.h:18
Definition: IRenderBufferPool.h:30
Definition: BaseRenderBuffer.h:20