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

          Line data    Source code
       1             : /*
       2             :  * Copyright 2013 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             : 
       9             : #ifndef GrGLContext_DEFINED
      10             : #define GrGLContext_DEFINED
      11             : 
      12             : #include "gl/GrGLExtensions.h"
      13             : #include "gl/GrGLInterface.h"
      14             : #include "GrGLCaps.h"
      15             : #include "GrGLUtil.h"
      16             : 
      17             : struct GrContextOptions;
      18             : namespace SkSL {
      19             :     class Compiler;
      20             : }
      21             : 
      22             : /**
      23             :  * Encapsulates information about an OpenGL context including the OpenGL
      24             :  * version, the GrGLStandard type of the context, and GLSL version.
      25             :  */
      26             : class GrGLContextInfo : public SkRefCnt {
      27             : public:
      28           0 :     GrGLStandard standard() const { return fInterface->fStandard; }
      29           0 :     GrGLVersion version() const { return fGLVersion; }
      30           0 :     GrGLSLGeneration glslGeneration() const { return fGLSLGeneration; }
      31           0 :     GrGLVendor vendor() const { return fVendor; }
      32           0 :     GrGLRenderer renderer() const { return fRenderer; }
      33             :     /** What driver is running our GL implementation? This is not necessarily related to the vendor.
      34             :         (e.g. Intel GPU being driven by Mesa) */
      35           0 :     GrGLDriver driver() const { return fDriver; }
      36           0 :     GrGLDriverVersion driverVersion() const { return fDriverVersion; }
      37           0 :     const GrGLCaps* caps() const { return fGLCaps.get(); }
      38           0 :     GrGLCaps* caps() { return fGLCaps.get(); }
      39           0 :     bool hasExtension(const char* ext) const {
      40           0 :         return fInterface->hasExtension(ext);
      41             :     }
      42             : 
      43           0 :     const GrGLExtensions& extensions() const { return fInterface->fExtensions; }
      44             : 
      45           0 :     virtual ~GrGLContextInfo() {}
      46             : 
      47             : protected:
      48             :     struct ConstructorArgs {
      49             :         const GrGLInterface*                fInterface;
      50             :         GrGLVersion                         fGLVersion;
      51             :         GrGLSLGeneration                    fGLSLGeneration;
      52             :         GrGLVendor                          fVendor;
      53             :         GrGLRenderer                        fRenderer;
      54             :         GrGLDriver                          fDriver;
      55             :         GrGLDriverVersion                   fDriverVersion;
      56             :         const  GrContextOptions*            fContextOptions;
      57             :     };
      58             : 
      59             :     GrGLContextInfo(const ConstructorArgs& args);
      60             : 
      61             :     sk_sp<const GrGLInterface> fInterface;
      62             :     GrGLVersion                fGLVersion;
      63             :     GrGLSLGeneration           fGLSLGeneration;
      64             :     GrGLVendor                 fVendor;
      65             :     GrGLRenderer               fRenderer;
      66             :     GrGLDriver                 fDriver;
      67             :     GrGLDriverVersion          fDriverVersion;
      68             :     sk_sp<GrGLCaps>            fGLCaps;
      69             : };
      70             : 
      71             : /**
      72             :  * Extension of GrGLContextInfo that also provides access to GrGLInterface and SkSL::Compiler.
      73             :  */
      74             : class GrGLContext : public GrGLContextInfo {
      75             : public:
      76             :     /**
      77             :      * Creates a GrGLContext from a GrGLInterface and the currently
      78             :      * bound OpenGL context accessible by the GrGLInterface.
      79             :      */
      80             :     static GrGLContext* Create(const GrGLInterface* interface, const GrContextOptions& options);
      81             : 
      82           0 :     const GrGLInterface* interface() const { return fInterface.get(); }
      83             : 
      84             :     SkSL::Compiler* compiler() const;
      85             : 
      86             :     ~GrGLContext() override;
      87             : 
      88             : private:
      89           0 :     GrGLContext(const ConstructorArgs& args) 
      90           0 :     : INHERITED(args)
      91           0 :     , fCompiler(nullptr) {}
      92             : 
      93             :     mutable SkSL::Compiler* fCompiler;
      94             : 
      95             :     typedef GrGLContextInfo INHERITED;
      96             : };
      97             : 
      98             : #endif

Generated by: LCOV version 1.13