kodi
RendererVTBGLES.h
1 /*
2  * Copyright (C) 2007-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/VideoPlayer/VideoRenderers/LinuxRendererGLES.h"
12 
13 #include <CoreVideo/CVOpenGLESTextureCache.h>
14 
15 class CRendererVTB : public CLinuxRendererGLES
16 {
17 public:
18  CRendererVTB();
19  ~CRendererVTB() override;
20 
21  static CBaseRenderer* Create(CVideoBuffer *buffer);
22  static bool Register();
23 
24  // Player functions
25  void ReleaseBuffer(int idx) override;
26  bool NeedBuffer(int idx) override;
27 
28 protected:
29  // hooks for hw dec renderer
30  bool LoadShadersHook() override;
31  void AfterRenderHook(int idx) override;
32  EShaderFormat GetShaderFormat() override;
33 
34  // textures
35  bool UploadTexture(int index) override;
36  void DeleteTexture(int index) override;
37  bool CreateTexture(int index) override;
38 
39  CVOpenGLESTextureCacheRef m_textureCache = nullptr;
41  {
42  CVOpenGLESTextureRef m_textureY;
43  CVOpenGLESTextureRef m_textureUV;
44  CVBufferRef m_videoBuffer;
45  GLsync m_fence;
46  };
47  CRenderBuffer m_vtbBuffers[NUM_BUFFERS];
48  CVEAGLContext m_glContext;
49 };
50 
Definition: VideoBuffer.h:85
Definition: LinuxRendererGLES.h:57
Definition: RendererVTBGL.h:14
Definition: BaseRenderer.h:48
Definition: RendererVTBGLES.h:40