implemented getting format from texture as virtual in gpu caps

Bug: skia:
Change-Id: If6bbbd212ff472ea322d2bbed61995fe7ba85df7
Reviewed-on: https://skia-review.googlesource.com/138240
Commit-Queue: Timothy Liang <timliang@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
Reviewed-by: Greg Daniel <egdaniel@google.com>
diff --git a/tools/DDLPromiseImageHelper.cpp b/tools/DDLPromiseImageHelper.cpp
index 586c233..cc543f9 100644
--- a/tools/DDLPromiseImageHelper.cpp
+++ b/tools/DDLPromiseImageHelper.cpp
@@ -20,6 +20,10 @@
     }
 }
 
+const GrCaps* DDLPromiseImageHelper::PromiseImageCallbackContext::caps() const {
+    return fContext->contextPriv().caps();
+}
+
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 
 sk_sp<SkData> DDLPromiseImageHelper::deflateSKP(const SkPicture* inputPicture) {
@@ -104,7 +108,9 @@
     }
     SkASSERT(curImage.fIndex == *indexPtr);
 
-    GrBackendFormat backendFormat = curImage.fCallbackContext->backendTexture().format();
+    const GrCaps* caps = curImage.fCallbackContext->caps();
+    const GrBackendTexture& backendTex = curImage.fCallbackContext->backendTexture();
+    GrBackendFormat backendFormat = caps->createFormatFromBackendTexture(backendTex);
 
     // Each DDL recorder gets its own ref on the promise callback context for the
     // promise images it creates.