LCOV - code coverage report
Current view: top level - gfx/gl - TextureImageEGL.h (source / functions) Hit Total Coverage
Test: output.info Lines: 0 6 0.0 %
Date: 2017-07-14 16:53:18 Functions: 0 2 0.0 %
Legend: Lines: hit not hit

          Line data    Source code
       1             : /* -*- Mode: C++; tab-width: 20; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
       2             : /* This Source Code Form is subject to the terms of the Mozilla Public
       3             :  * License, v. 2.0. If a copy of the MPL was not distributed with this
       4             :  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
       5             : 
       6             : #ifndef TEXTUREIMAGEEGL_H_
       7             : #define TEXTUREIMAGEEGL_H_
       8             : 
       9             : #include "GLTextureImage.h"
      10             : 
      11             : namespace mozilla {
      12             : namespace gl {
      13             : 
      14             : class TextureImageEGL final
      15             :     : public TextureImage
      16             : {
      17             : public:
      18             :     TextureImageEGL(GLuint aTexture,
      19             :                     const gfx::IntSize& aSize,
      20             :                     GLenum aWrapMode,
      21             :                     ContentType aContentType,
      22             :                     GLContext* aContext,
      23             :                     Flags aFlags = TextureImage::NoFlags,
      24             :                     TextureState aTextureState = Created,
      25             :                     TextureImage::ImageFormat aImageFormat = SurfaceFormat::UNKNOWN);
      26             : 
      27             :     virtual ~TextureImageEGL();
      28             : 
      29             :     virtual bool DirectUpdate(gfx::DataSourceSurface* aSurf, const nsIntRegion& aRegion, const gfx::IntPoint& aFrom = gfx::IntPoint(0,0));
      30             : 
      31             :     virtual void BindTexture(GLenum aTextureUnit);
      32             : 
      33           0 :     virtual GLuint GetTextureID()
      34             :     {
      35             :         // Ensure the texture is allocated before it is used.
      36           0 :         if (mTextureState == Created) {
      37           0 :             Resize(mSize);
      38             :         }
      39           0 :         return mTexture;
      40             :     };
      41             : 
      42             :     virtual void Resize(const gfx::IntSize& aSize);
      43             : 
      44             :     bool BindTexImage();
      45             : 
      46             :     bool ReleaseTexImage();
      47             : 
      48           0 :     virtual bool CreateEGLSurface(gfxASurface* aSurface)
      49             :     {
      50           0 :         return false;
      51             :     }
      52             : 
      53             :     virtual void DestroyEGLSurface(void);
      54             : 
      55             : protected:
      56             :     typedef gfxImageFormat ImageFormat;
      57             : 
      58             :     GLContext* mGLContext;
      59             : 
      60             :     gfx::SurfaceFormat mUpdateFormat;
      61             :     EGLImage mEGLImage;
      62             :     GLuint mTexture;
      63             :     EGLSurface mSurface;
      64             :     EGLConfig mConfig;
      65             :     TextureState mTextureState;
      66             : 
      67             :     bool mBound;
      68             : };
      69             : 
      70             : already_AddRefed<TextureImage>
      71             : CreateTextureImageEGL(GLContext* gl,
      72             :                       const gfx::IntSize& aSize,
      73             :                       TextureImage::ContentType aContentType,
      74             :                       GLenum aWrapMode,
      75             :                       TextureImage::Flags aFlags,
      76             :                       TextureImage::ImageFormat aImageFormat);
      77             : 
      78             : already_AddRefed<TextureImage>
      79             : TileGenFuncEGL(GLContext* gl,
      80             :                const gfx::IntSize& aSize,
      81             :                TextureImage::ContentType aContentType,
      82             :                TextureImage::Flags aFlags,
      83             :                TextureImage::ImageFormat aImageFormat);
      84             : 
      85             : } // namespace gl
      86             : } // namespace mozilla
      87             : 
      88             : #endif // TEXTUREIMAGEEGL_H_

Generated by: LCOV version 1.13