Add query for whether or not we have compressedTexSubImage
authorkrajcevski <krajcevski@google.com>
Wed, 30 Jul 2014 18:25:44 +0000 (11:25 -0700)
committerCommit bot <commit-bot@chromium.org>
Wed, 30 Jul 2014 18:25:44 +0000 (11:25 -0700)
R=robertphillips@google.com

Author: krajcevski@google.com

Review URL: https://codereview.chromium.org/430773004

src/gpu/GrDrawTarget.cpp
src/gpu/GrDrawTargetCaps.h
src/gpu/gl/GrGLCaps.cpp

index 28369fd..10fa6b2 100644 (file)
@@ -1022,6 +1022,7 @@ void GrDrawTargetCaps::reset() {
     fDiscardRenderTargetSupport = false;
     fReuseScratchTextures = true;
     fGpuTracingSupport = false;
+    fCompressedTexSubImageSupport = false;
 
     fMapBufferFlags = kNone_MapFlags;
 
@@ -1047,6 +1048,7 @@ GrDrawTargetCaps& GrDrawTargetCaps::operator=(const GrDrawTargetCaps& other) {
     fDiscardRenderTargetSupport = other.fDiscardRenderTargetSupport;
     fReuseScratchTextures = other.fReuseScratchTextures;
     fGpuTracingSupport = other.fGpuTracingSupport;
+    fCompressedTexSubImageSupport = other.fCompressedTexSubImageSupport;
 
     fMapBufferFlags = other.fMapBufferFlags;
 
@@ -1096,6 +1098,7 @@ SkString GrDrawTargetCaps::dump() const {
     r.appendf("Discard Render Target Support: %s\n", gNY[fDiscardRenderTargetSupport]);
     r.appendf("Reuse Scratch Textures       : %s\n", gNY[fReuseScratchTextures]);
     r.appendf("Gpu Tracing Support          : %s\n", gNY[fGpuTracingSupport]);
+    r.appendf("Compressed Update Support    : %s\n", gNY[fCompressedTexSubImageSupport]);
     r.appendf("Max Texture Size             : %d\n", fMaxTextureSize);
     r.appendf("Max Render Target Size       : %d\n", fMaxRenderTargetSize);
     r.appendf("Max Sample Count             : %d\n", fMaxSampleCount);
index b979b53..1a3a84c 100644 (file)
@@ -40,6 +40,7 @@ public:
     bool dstReadInShaderSupport() const { return fDstReadInShaderSupport; }
     bool discardRenderTargetSupport() const { return fDiscardRenderTargetSupport; }
     bool gpuTracingSupport() const { return fGpuTracingSupport; }
+    bool compressedTexSubImageSupport() const { return fCompressedTexSubImageSupport; }
 
     /**
      * Indicates whether GPU->CPU memory mapping for GPU resources such as vertex buffers and
@@ -90,6 +91,7 @@ protected:
     bool fDiscardRenderTargetSupport: 1;
     bool fReuseScratchTextures      : 1;
     bool fGpuTracingSupport         : 1;
+    bool fCompressedTexSubImageSupport : 1;
 
     uint32_t fMapBufferFlags;
 
index 8474873..f332957 100644 (file)
@@ -502,6 +502,9 @@ void GrGLCaps::initConfigTexturableTable(const GrGLContextInfo& ctxInfo, const G
     // however, it is only available on standard OpenGL after version 1.3
     bool hasCompressTex2D = (kGL_GrGLStandard != standard || version >= GR_GL_VER(1, 3));
 
+    fCompressedTexSubImageSupport =
+        hasCompressTex2D && (NULL != gli->fFunctions.fCompressedTexSubImage2D);
+
     // Check for ETC1
     bool hasETC1 = false;