Home | History | Annotate | Download | only in gpu
      1 
      2 /*
      3  * Copyright 2013 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 #include "SkRefCnt.h"
     10 
     11 #ifndef GrDrawTargetCaps_DEFINED
     12 #define GrDrawTargetCaps_DEFINED
     13 
     14 /**
     15  * Represents the draw target capabilities.
     16  */
     17 class GrDrawTargetCaps : public SkRefCnt {
     18 public:
     19     SK_DECLARE_INST_COUNT(Caps)
     20 
     21     GrDrawTargetCaps() { this->reset(); }
     22     GrDrawTargetCaps(const GrDrawTargetCaps& other) : INHERITED() { *this = other; }
     23     GrDrawTargetCaps& operator= (const GrDrawTargetCaps&);
     24 
     25     virtual void reset();
     26     virtual void print() const;
     27 
     28     bool eightBitPaletteSupport() const { return f8BitPaletteSupport; }
     29     bool npotTextureTileSupport() const { return fNPOTTextureTileSupport; }
     30     bool twoSidedStencilSupport() const { return fTwoSidedStencilSupport; }
     31     bool stencilWrapOpsSupport() const { return  fStencilWrapOpsSupport; }
     32     bool hwAALineSupport() const { return fHWAALineSupport; }
     33     bool shaderDerivativeSupport() const { return fShaderDerivativeSupport; }
     34     bool geometryShaderSupport() const { return fGeometryShaderSupport; }
     35     bool dualSourceBlendingSupport() const { return fDualSourceBlendingSupport; }
     36     bool bufferLockSupport() const { return fBufferLockSupport; }
     37     bool pathStencilingSupport() const { return fPathStencilingSupport; }
     38     bool dstReadInShaderSupport() const { return fDstReadInShaderSupport; }
     39     bool reuseScratchTextures() const { return fReuseScratchTextures; }
     40 
     41     int maxRenderTargetSize() const { return fMaxRenderTargetSize; }
     42     int maxTextureSize() const { return fMaxTextureSize; }
     43     // Will be 0 if MSAA is not supported
     44     int maxSampleCount() const { return fMaxSampleCount; }
     45 
     46 protected:
     47     bool f8BitPaletteSupport        : 1;
     48     bool fNPOTTextureTileSupport    : 1;
     49     bool fTwoSidedStencilSupport    : 1;
     50     bool fStencilWrapOpsSupport     : 1;
     51     bool fHWAALineSupport           : 1;
     52     bool fShaderDerivativeSupport   : 1;
     53     bool fGeometryShaderSupport     : 1;
     54     bool fDualSourceBlendingSupport : 1;
     55     bool fBufferLockSupport         : 1;
     56     bool fPathStencilingSupport     : 1;
     57     bool fDstReadInShaderSupport    : 1;
     58     bool fReuseScratchTextures      : 1;
     59 
     60     int fMaxRenderTargetSize;
     61     int fMaxTextureSize;
     62     int fMaxSampleCount;
     63 
     64     typedef SkRefCnt INHERITED;
     65 };
     66 
     67 #endif
     68