Plumb the use of GrBackendRenderTarget throughout Skia
Bug: skia:
Change-Id: Ib99a58d9552f5c7b8d77c09dcc72fa88326c26aa
Reviewed-on: https://skia-review.googlesource.com/14148
Reviewed-by: Brian Salomon <bsalomon@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Greg Daniel <egdaniel@google.com>
diff --git a/src/gpu/GrBackendSurface.cpp b/src/gpu/GrBackendSurface.cpp
index 97b3b6e..6a1448e 100644
--- a/src/gpu/GrBackendSurface.cpp
+++ b/src/gpu/GrBackendSurface.cpp
@@ -70,14 +70,14 @@
int height,
int sampleCnt,
int stencilBits,
- const GrVkImageInfo* vkInfo)
+ const GrVkImageInfo& vkInfo)
: fWidth(width)
, fHeight(height)
, fSampleCnt(sampleCnt)
, fStencilBits(stencilBits)
, fConfig(
#ifdef SK_VULKAN
- GrVkFormatToPixelConfig(vkInfo->fFormat)
+ GrVkFormatToPixelConfig(vkInfo.fFormat)
#else
kUnknown_GrPixelConfig
#endif
@@ -90,7 +90,7 @@
int sampleCnt,
int stencilBits,
GrPixelConfig config,
- const GrGLTextureInfo* glInfo)
+ const GrGLFramebufferInfo& glInfo)
: fWidth(width)
, fHeight(height)
, fSampleCnt(sampleCnt)
@@ -105,26 +105,33 @@
, fHeight(desc.fHeight)
, fSampleCnt(desc.fSampleCnt)
, fStencilBits(desc.fStencilBits)
- , fConfig(kVulkan_GrBackend == backend
+ , fConfig(desc.fConfig)
+ , fBackend(backend) {
+ if (kOpenGL_GrBackend == backend) {
+ fGLInfo = *reinterpret_cast<const GrGLFramebufferInfo*>(desc.fRenderTargetHandle);
+ } else {
+ SkASSERT(kVulkan_GrBackend == backend);
#ifdef SK_VULKAN
- ? GrVkFormatToPixelConfig(((GrVkImageInfo*)desc.fRenderTargetHandle)->fFormat)
+ const GrVkImageInfo* vkInfo =
+ reinterpret_cast<const GrVkImageInfo*>(desc.fRenderTargetHandle);
+ fConfig = GrVkFormatToPixelConfig(vkInfo->fFormat);
+ fVkInfo = *vkInfo;
#else
- ? kUnknown_GrPixelConfig
+ fConfig = kUnknown_GrPixelConfig;
#endif
- : desc.fConfig)
- , fBackend(backend)
- , fHandle(desc.fRenderTargetHandle) {}
+ }
+}
const GrVkImageInfo* GrBackendRenderTarget::getVkImageInfo() const {
if (kVulkan_GrBackend == fBackend) {
- return fVkInfo;
+ return &fVkInfo;
}
return nullptr;
}
-const GrGLTextureInfo* GrBackendRenderTarget::getGLTextureInfo() const {
+const GrGLFramebufferInfo* GrBackendRenderTarget::getGLFramebufferInfo() const {
if (kOpenGL_GrBackend == fBackend) {
- return fGLInfo;
+ return &fGLInfo;
}
return nullptr;
}