diff options
author | Brian Salomon <bsalomon@google.com> | 2017-07-07 12:56:11 -0400 |
---|---|---|
committer | Skia Commit-Bot <skia-commit-bot@chromium.org> | 2017-07-07 20:47:38 +0000 |
commit | 8fe24272fa6d2fa9eb2458221ed9852d6ec16f56 (patch) | |
tree | 85277ea7a49b36a18243768d7a2f27e44742aa84 /src/gpu/GrBackendSurface.cpp | |
parent | a531f2502846c4d4eed42b91589d70525c8de0d2 (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.cpp | 48 |
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 |