aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/gpu/GrBackendSurface.cpp
diff options
context:
space:
mode:
authorGravatar Brian Salomon <bsalomon@google.com>2017-07-07 12:56:11 -0400
committerGravatar Skia Commit-Bot <skia-commit-bot@chromium.org>2017-07-07 20:47:38 +0000
commit8fe24272fa6d2fa9eb2458221ed9852d6ec16f56 (patch)
tree85277ea7a49b36a18243768d7a2f27e44742aa84 /src/gpu/GrBackendSurface.cpp
parenta531f2502846c4d4eed42b91589d70525c8de0d2 (diff)
Add mock config to tools and run through gms and benchs without crashing.
Change-Id: I7e2474129ef2b15899ad2baeb8d18f39d05da98c Reviewed-on: https://skia-review.googlesource.com/21820 Commit-Queue: Brian Salomon <bsalomon@google.com> Reviewed-by: Greg Daniel <egdaniel@google.com>
Diffstat (limited to 'src/gpu/GrBackendSurface.cpp')
-rw-r--r--src/gpu/GrBackendSurface.cpp48
1 files changed, 36 insertions, 12 deletions
diff --git a/src/gpu/GrBackendSurface.cpp b/src/gpu/GrBackendSurface.cpp
index 6c715228b2..bc6f9a2c02 100644
--- a/src/gpu/GrBackendSurface.cpp
+++ b/src/gpu/GrBackendSurface.cpp
@@ -33,29 +33,46 @@ GrBackendTexture::GrBackendTexture(int width,
, fBackend(kOpenGL_GrBackend)
, fGLInfo(glInfo) {}
+GrBackendTexture::GrBackendTexture(int width,
+ int height,
+ GrPixelConfig config,
+ const GrMockTextureInfo& mockInfo)
+ : fWidth(width)
+ , fHeight(height)
+ , fConfig(config)
+ , fBackend(kMock_GrBackend)
+ , fMockInfo(mockInfo) {}
+
GrBackendTexture::GrBackendTexture(const GrBackendTextureDesc& desc, GrBackend backend)
: fWidth(desc.fWidth)
, fHeight(desc.fHeight)
, fConfig(desc.fConfig)
, fBackend(backend) {
- if (kOpenGL_GrBackend == backend) {
- fGLInfo = *reinterpret_cast<const GrGLTextureInfo*>(desc.fTextureHandle);
- } else {
- SkASSERT(kVulkan_GrBackend == backend);
+ switch (backend) {
+ case kOpenGL_GrBackend:
+ fGLInfo = *reinterpret_cast<const GrGLTextureInfo*>(desc.fTextureHandle);
+ break;
#ifdef SK_VULKAN
- const GrVkImageInfo* vkInfo =
- reinterpret_cast<const GrVkImageInfo*>(desc.fTextureHandle);
- fConfig = GrVkFormatToPixelConfig(vkInfo->fFormat);
- fVkInfo = *vkInfo;
-#else
- fConfig = kUnknown_GrPixelConfig;
+ case kVulkan_GrBackend: {
+ const GrVkImageInfo* vkInfo =
+ reinterpret_cast<const GrVkImageInfo*>(desc.fTextureHandle);
+ fConfig = GrVkFormatToPixelConfig(vkInfo->fFormat);
+ fVkInfo = *vkInfo;
+ break;
+ }
#endif
+ case kMock_GrBackend:
+ fMockInfo = *reinterpret_cast<const GrMockTextureInfo*>(desc.fTextureHandle);
+ break;
+ default:
+ fConfig = kUnknown_GrPixelConfig;
+ break;
}
}
#ifdef SK_VULKAN
const GrVkImageInfo* GrBackendTexture::getVkImageInfo() const {
- if (kVulkan_GrBackend == fBackend) {
+ if (this->isValid() && kVulkan_GrBackend == fBackend) {
return &fVkInfo;
}
return nullptr;
@@ -63,12 +80,19 @@ const GrVkImageInfo* GrBackendTexture::getVkImageInfo() const {
#endif
const GrGLTextureInfo* GrBackendTexture::getGLTextureInfo() const {
- if (kOpenGL_GrBackend == fBackend) {
+ if (this->isValid() && kOpenGL_GrBackend == fBackend) {
return &fGLInfo;
}
return nullptr;
}
+const GrMockTextureInfo* GrBackendTexture::getMockTextureInfo() const {
+ if (this->isValid() && kMock_GrBackend == fBackend) {
+ return &fMockInfo;
+ }
+ return nullptr;
+}
+
////////////////////////////////////////////////////////////////////////////////////////////////////
#ifdef SK_VULKAN