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

          Line data    Source code
       1             : /*
       2             :  * Copyright 2015 Google Inc.
       3             :  *
       4             :  * Use of this source code is governed by a BSD-style license that can be
       5             :  * found in the LICENSE file.
       6             :  */
       7             : 
       8             : #ifndef GrYUVProvider_DEFINED
       9             : #define GrYUVProvider_DEFINED
      10             : 
      11             : #include "GrTypes.h"
      12             : #include "SkImageInfo.h"
      13             : #include "SkYUVSizeInfo.h"
      14             : 
      15             : class GrContext;
      16             : class GrTexture;
      17             : class GrTextureProxy;
      18             : 
      19             : /**
      20             :  *  There are at least 2 different ways to extract/retrieve YUV planar data...
      21             :  *  - SkPixelRef
      22             :  *  - SkImageGeneartor
      23             :  *
      24             :  *  To share common functionality around using the planar data, we use this abstract base-class
      25             :  *  to represent accessing that data.
      26             :  */
      27           0 : class GrYUVProvider {
      28             : public:
      29           0 :     virtual ~GrYUVProvider() {}
      30             : 
      31             :     /**
      32             :      *  On success, this returns a texture proxy that has converted the YUV data from the provider
      33             :      *  into a form that is supported by the GPU (typically transformed into RGB). If useCache
      34             :      *  is true, then the texture will automatically have a key added, so it can be retrieved
      35             :      *  from the cache (assuming it is requested by a provider w/ the same genID).
      36             :      *
      37             :      *  On failure (e.g. the provider had no data), this returns NULL.
      38             :      */
      39             :     sk_sp<GrTextureProxy> refAsTextureProxy(GrContext*, const GrSurfaceDesc&, bool useCache);
      40             : 
      41             :     virtual uint32_t onGetID() = 0;
      42             : 
      43             :     // These are not meant to be called by a client, only by the implementation
      44             : 
      45             :     /**
      46             :      *  If decoding to YUV is supported, this returns true.  Otherwise, this
      47             :      *  returns false and does not modify any of the parameters.
      48             :      *
      49             :      *  @param sizeInfo   Output parameter indicating the sizes and required
      50             :      *                    allocation widths of the Y, U, and V planes.
      51             :      *  @param colorSpace Output parameter.
      52             :      */
      53             :     virtual bool onQueryYUV8(SkYUVSizeInfo* sizeInfo, SkYUVColorSpace* colorSpace) const = 0;
      54             : 
      55             :     /**
      56             :      *  Returns true on success and false on failure.
      57             :      *  This always attempts to perform a full decode.  If the client only
      58             :      *  wants size, it should call onQueryYUV8().
      59             :      *
      60             :      *  @param sizeInfo   Needs to exactly match the values returned by the
      61             :      *                    query, except the WidthBytes may be larger than the
      62             :      *                    recommendation (but not smaller).
      63             :      *  @param planes     Memory for each of the Y, U, and V planes.
      64             :      */
      65             :     virtual bool onGetYUV8Planes(const SkYUVSizeInfo& sizeInfo, void* planes[3]) = 0;
      66             : };
      67             : 
      68             : #endif

Generated by: LCOV version 1.13