aboutsummaryrefslogtreecommitdiffhomepage
path: root/include/gpu
diff options
context:
space:
mode:
authorGravatar Greg Daniel <egdaniel@google.com>2017-04-18 17:12:32 -0400
committerGravatar Skia Commit-Bot <skia-commit-bot@chromium.org>2017-04-18 21:55:10 +0000
commit7da62b9059f3c1d31624a0e4da96ee5f908f9c12 (patch)
treefc57f951a4e8c1900311e8a1ffbdbbaf189715c2 /include/gpu
parentb712a85aea212cf5bfe5514a4fefc184545a8d3c (diff)
Plumb GrBackendTexture throughout skia.
Bug: skia: Change-Id: I1bae6768ee7229818a83ba608035a1f7867e6875 Reviewed-on: https://skia-review.googlesource.com/13645 Commit-Queue: Greg Daniel <egdaniel@google.com> Reviewed-by: Robert Phillips <robertphillips@google.com>
Diffstat (limited to 'include/gpu')
-rw-r--r--include/gpu/GrBackendSurface.h32
-rw-r--r--include/gpu/GrExternalTextureData.h1
2 files changed, 21 insertions, 12 deletions
diff --git a/include/gpu/GrBackendSurface.h b/include/gpu/GrBackendSurface.h
index e588b8aa3a..fd99a4312a 100644
--- a/include/gpu/GrBackendSurface.h
+++ b/include/gpu/GrBackendSurface.h
@@ -15,14 +15,18 @@ struct GrGLTextureInfo;
class GrBackendTexture {
public:
+ // The passed in GrVkImageInfo must live until the GrBackendTexture is no longer used in
+ // creation of SkImages or SkSurfaces.
GrBackendTexture(int width,
int height,
- GrVkImageInfo* vkInfo);
+ const GrVkImageInfo* vkInfo);
+ // The passed in GrGLTextureInfo must live until the GrBackendTexture is no longer used in
+ // creation of SkImages or SkSurfaces.
GrBackendTexture(int width,
int height,
GrPixelConfig config,
- GrGLTextureInfo* glInfo);
+ const GrGLTextureInfo* glInfo);
int width() const { return fWidth; }
int height() const { return fHeight; }
@@ -31,11 +35,11 @@ public:
// If the backend API is Vulkan, this returns a pointer to the GrVkImageInfo struct. Otherwise
// it returns nullptr.
- GrVkImageInfo* getVkImageInfo();
+ const GrVkImageInfo* getVkImageInfo() const;
// If the backend API is GL, this returns a pointer to the GrGLTextureInfo struct. Otherwise
// it returns nullptr.
- GrGLTextureInfo* getGLTextureInfo();
+ const GrGLTextureInfo* getGLTextureInfo() const;
private:
// Temporary constructor which can be used to convert from a GrBackendTextureDesc.
@@ -51,26 +55,30 @@ private:
GrBackend fBackend;
union {
- GrVkImageInfo* fVkInfo;
- GrGLTextureInfo* fGLInfo;
+ const GrVkImageInfo* fVkInfo;
+ const GrGLTextureInfo* fGLInfo;
GrBackendObject fHandle;
};
};
class GrBackendRenderTarget {
public:
+ // The passed in GrVkImageInfo must live until the GrBackendTexture is no longer used in
+ // creation of SkImages or SkSurfaces.
GrBackendRenderTarget(int width,
int height,
int sampleCnt,
int stencilBits,
- GrVkImageInfo* vkInfo);
+ const GrVkImageInfo* vkInfo);
+ // The passed in GrGLTextureInfo must live until the GrBackendTexture is no longer used in
+ // creation of SkImages or SkSurfaces.
GrBackendRenderTarget(int width,
int height,
int sampleCnt,
int stencilBits,
GrPixelConfig config,
- GrGLTextureInfo* glInfo);
+ const GrGLTextureInfo* glInfo);
int width() const { return fWidth; }
int height() const { return fHeight; }
@@ -81,11 +89,11 @@ public:
// If the backend API is Vulkan, this returns a pointer to the GrVkImageInfo struct. Otherwise
// it returns nullptr.
- GrVkImageInfo* getVkImageInfo();
+ const GrVkImageInfo* getVkImageInfo() const;
// If the backend API is GL, this returns a pointer to the GrGLTextureInfo struct. Otherwise
// it returns nullptr.
- GrGLTextureInfo* getGLTextureInfo();
+ const GrGLTextureInfo* getGLTextureInfo() const;
private:
// Temporary constructor which can be used to convert from a GrBackendRenderTargetDesc.
@@ -104,8 +112,8 @@ private:
GrBackend fBackend;
union {
- GrVkImageInfo* fVkInfo;
- GrGLTextureInfo* fGLInfo;
+ const GrVkImageInfo* fVkInfo;
+ const GrGLTextureInfo* fGLInfo;
GrBackendObject fHandle;
};
};
diff --git a/include/gpu/GrExternalTextureData.h b/include/gpu/GrExternalTextureData.h
index 0ebc0534f1..b3b0594aa3 100644
--- a/include/gpu/GrExternalTextureData.h
+++ b/include/gpu/GrExternalTextureData.h
@@ -21,6 +21,7 @@ protected:
virtual GrBackendObject getBackendObject() const = 0;
virtual void attachToContext(GrContext*) = 0;
+ friend class SkCrossContextImageData;
friend class SkCCIDBackendTexture;
friend class SkImage;
};