SkQP: ResourceFactory

Change-Id: Ic57a86ec115e3ace52615c0b8e9a22a915988850
Reviewed-on: https://skia-review.googlesource.com/101320
Reviewed-by: Derek Sollenberger <djsollen@google.com>
Commit-Queue: Hal Canary <halcanary@google.com>
diff --git a/tools/Resources.cpp b/tools/Resources.cpp
index 9d54026..002d411 100644
--- a/tools/Resources.cpp
+++ b/tools/Resources.cpp
@@ -42,8 +42,17 @@
 }
 
 #ifdef SK_EMBED_RESOURCES
+
+#include "ResourceFactory.h"
+
+sk_sp<SkData> (*gResourceFactory)(const char*) = nullptr;
+
 extern BinaryAsset gResources[];
+
 sk_sp<SkData> GetResourceAsData(const char* resource) {
+    if (gResourceFactory) {
+        return gResourceFactory(resource);
+    }
     for (const BinaryAsset* ptr = gResources; ptr->name; ++ptr) {
         if (0 == strcmp(resource, ptr->name)) {
             return SkData::MakeWithoutCopy(ptr->data, ptr->len);