13 #include "system_gl.h"    15 #include "BaseRenderer.h"    16 #include "cores/VideoPlayer/DVDCodecs/Video/DVDVideoCodec.h"    17 #include "cores/VideoSettings.h"    18 #include "FrameBufferObject.h"    19 #include "guilib/Shader.h"    20 #include "RenderFlags.h"    21 #include "RenderInfo.h"    22 #include "windowing/GraphicContext.h"    25 #include <libavutil/mastering_display_metadata.h>    36 class BaseYUV2RGBGLSLShader;
    37 class BaseVideoFilterShader;
    65   static bool Register();
    68   bool Configure(
const VideoPicture& picture, 
float fps, 
unsigned int orientation) 
override;
    69   bool IsConfigured()
 override { 
return m_bConfigured; }
    70   void AddVideoPicture(
const VideoPicture& picture, 
int index) 
override;
    71   void UnInit() 
override;
    72   bool Flush(
bool saveBuffers) 
override;
    73   void SetBufferSize(
int numBuffers)
 override { m_NumYV12Buffers = numBuffers; }
    74   bool IsGuiLayer() 
override;
    75   void ReleaseBuffer(
int idx) 
override;
    76   void RenderUpdate(
int index, 
int index2, 
bool clear, 
unsigned int flags, 
unsigned int alpha) 
override;
    77   void Update() 
override;
    80   bool ConfigChanged(
const VideoPicture& picture) 
override;
    83   bool SupportsMultiPassRendering() 
override;
    84   bool Supports(ERENDERFEATURE feature) 
const override;
    85   bool Supports(ESCALINGMETHOD method) 
const override;
    90   static const int FIELD_FULL{0};
    91   static const int FIELD_TOP{1};
    92   static const int FIELD_BOT{2};
    94   virtual void Render(
unsigned int flags, 
int index);
    95   virtual void RenderUpdateVideo(
bool clear, 
unsigned int flags = 0, 
unsigned int alpha = 255);
    97   int NextYV12Texture();
    98   virtual bool ValidateRenderTarget();
    99   virtual void LoadShaders(
int field=FIELD_FULL);
   100   virtual void ReleaseShaders();
   101   void SetTextureFilter(GLenum method);
   102   void UpdateVideoFilter();
   103   AVColorPrimaries GetSrcPrimaries(AVColorPrimaries srcPrimaries, 
unsigned int width, 
unsigned int height);
   106   virtual bool UploadTexture(
int index);
   107   virtual void DeleteTexture(
int index);
   108   virtual bool CreateTexture(
int index);
   110   bool UploadYV12Texture(
int index);
   111   void DeleteYV12Texture(
int index);
   112   bool CreateYV12Texture(
int index);
   113   virtual bool SkipUploadYV12(
int index) { 
return false; }
   115   bool UploadNV12Texture(
int index);
   116   void DeleteNV12Texture(
int index);
   117   bool CreateNV12Texture(
int index);
   119   void CalculateTextureSourceRects(
int source, 
int num_planes);
   122   void RenderToFBO(
int index, 
int field);
   123   void RenderFromFBO();
   124   void RenderSinglePass(
int index, 
int field); 
   127   virtual bool LoadShadersHook() { 
return false; }
   128   virtual bool RenderHook(
int idx) { 
return false; }
   129   virtual void AfterRenderHook(
int idx) {}
   138   int m_iYV12RenderBuffer{0};
   139   int m_NumYV12Buffers{0};
   141   bool m_bConfigured{
false};
   142   bool m_bValidated{
false};
   143   GLenum m_textureTarget = GL_TEXTURE_2D;
   144   int m_renderMethod{RENDER_GLSL};
   145   RenderQuality m_renderQuality{RQ_SINGLEPASS};
   148   int m_currentField{FIELD_FULL};
   149   int m_reloadShaders{0};
   151   GLenum m_pixelStoreKey{0};
   156     CRect rect{0, 0, 0, 0};
   161     unsigned texwidth{0};
   162     unsigned texheight{0};
   165     unsigned pixpertex_x{0};
   166     unsigned pixpertex_y{0};
   171     CYuvPlane fields[MAX_FIELDS][YuvImage::MAX_PLANES];
   177     AVColorPrimaries m_srcPrimaries;
   178     AVColorSpace m_srcColSpace;
   180     int m_srcTextureBits{8};
   183     bool hasDisplayMetadata{
false};
   184     AVMasteringDisplayMetadata displayMetadata;
   185     bool hasLightMetadata{
false};
   186     AVContentLightMetadata lightMetadata;
   193   void LoadPlane(
CYuvPlane& plane, 
int type,
   194                  unsigned width,  
unsigned height,
   195                  int stride, 
int bpp, 
void* data);
   200   ESCALINGMETHOD m_scalingMethod{VS_SCALINGMETHOD_LINEAR};
   201   ESCALINGMETHOD m_scalingMethodGui{VS_SCALINGMETHOD_MAX};
   203   AVColorPrimaries m_srcPrimaries;
   204   bool m_toneMap = 
false;
   205   ETONEMAPMETHOD m_toneMapMethod = VS_TONEMAPMETHOD_OFF;
   206   bool m_passthroughHDR = 
false;
   207   unsigned char* m_planeBuffer = 
nullptr;
   208   size_t m_planeBufferSize = 0;
   211   float m_clearColour{0.0f};
   215   void DrawBlackBars();
 This is an Event class built from a ConditionVariable. 
Definition: Event.h:35
Definition: VideoBuffer.h:85
Definition: RenderCapture.h:23
Definition: RenderInfo.h:19
Definition: RenderSystemGLES.h:73
Definition: LinuxRendererGLES.h:169
Definition: VideoFilterShaderGLES.h:20
Definition: VideoBuffer.h:24
Definition: LinuxRendererGL.h:30
Base texture class, subclasses of which depend on the render spec (DX, GL etc.) 
Definition: Texture.h:34
Definition: DVDVideoCodec.h:36
Definition: LinuxRendererGLES.h:153
Definition: LinuxRendererGLES.h:57
Definition: BaseRenderer.h:48
Definition: FrameBufferObject.h:32
Definition: YUV2RGBShaderGLES.h:26