LCOV - code coverage report
Current view: top level - gfx/skia/skia/include/gpu - GrTexture.h (source / functions) Hit Total Coverage
Test: output.info Lines: 0 3 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             : /*
       3             :  * Copyright 2011 Google Inc.
       4             :  *
       5             :  * Use of this source code is governed by a BSD-style license that can be
       6             :  * found in the LICENSE file.
       7             :  */
       8             : 
       9             : #ifndef GrTexture_DEFINED
      10             : #define GrTexture_DEFINED
      11             : 
      12             : #include "GrSurface.h"
      13             : #include "GrSamplerParams.h"
      14             : #include "SkPoint.h"
      15             : #include "SkRefCnt.h"
      16             : 
      17             : class GrExternalTextureData;
      18             : class GrTexturePriv;
      19             : 
      20           0 : class GrTexture : virtual public GrSurface {
      21             : public:
      22           0 :     GrTexture* asTexture() override { return this; }
      23           0 :     const GrTexture* asTexture() const override { return this; }
      24             : 
      25             :     /**
      26             :      *  Return the native ID or handle to the texture, depending on the
      27             :      *  platform. e.g. on OpenGL, return the texture ID.
      28             :      */
      29             :     virtual GrBackendObject getTextureHandle() const = 0;
      30             : 
      31             :     /**
      32             :      * This function indicates that the texture parameters (wrap mode, filtering, ...) have been
      33             :      * changed externally to Skia.
      34             :      */
      35             :     virtual void textureParamsModified() = 0;
      36             : 
      37             : #ifdef SK_DEBUG
      38             :     void validate() const {
      39             :         this->INHERITED::validate();
      40             :         this->validateDesc();
      41             :     }
      42             : #endif
      43             : 
      44             :     /** Access methods that are only to be used within Skia code. */
      45             :     inline GrTexturePriv texturePriv();
      46             :     inline const GrTexturePriv texturePriv() const;
      47             : 
      48             : protected:
      49             :     GrTexture(GrGpu*, const GrSurfaceDesc&, GrSLType samplerType,
      50             :               GrSamplerParams::FilterMode highestFilterMode, bool wasMipMapDataProvided);
      51             : 
      52             :     void validateDesc() const;
      53             :     virtual std::unique_ptr<GrExternalTextureData> detachBackendTexture() = 0;
      54             : 
      55             : private:
      56             :     void computeScratchKey(GrScratchKey*) const override;
      57             :     size_t onGpuMemorySize() const override;
      58             :     void dirtyMipMaps(bool mipMapsDirty);
      59             : 
      60             :     enum MipMapsStatus {
      61             :         kNotAllocated_MipMapsStatus,
      62             :         kAllocated_MipMapsStatus,
      63             :         kValid_MipMapsStatus
      64             :     };
      65             : 
      66             :     GrSLType                      fSamplerType;
      67             :     GrSamplerParams::FilterMode   fHighestFilterMode;
      68             :     MipMapsStatus                 fMipMapsStatus;
      69             :     int                           fMaxMipMapLevel;
      70             :     SkDestinationSurfaceColorMode fMipColorMode;
      71             :     friend class GrTexturePriv;
      72             : 
      73             :     typedef GrSurface INHERITED;
      74             : };
      75             : 
      76             : #endif

Generated by: LCOV version 1.13