aboutsummaryrefslogtreecommitdiffhomepage
path: root/tools/Resources.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tools/Resources.cpp')
-rw-r--r--tools/Resources.cpp13
1 files changed, 12 insertions, 1 deletions
diff --git a/tools/Resources.cpp b/tools/Resources.cpp
index 606c5c4968..50c08922fa 100644
--- a/tools/Resources.cpp
+++ b/tools/Resources.cpp
@@ -6,8 +6,10 @@
*/
#include "Resources.h"
-
+#include "SkBitmap.h"
#include "SkCommandLineFlags.h"
+#include "SkData.h"
+#include "SkDecodingImageGenerator.h"
#include "SkOSFile.h"
DEFINE_string2(resourcePath, i, "resources", "Directory with test resources: images, fonts, etc.");
@@ -19,3 +21,12 @@ SkString GetResourcePath(const char* resource) {
void SetResourcePath(const char* resource) {
FLAGS_resourcePath.set(0, resource);
}
+
+bool GetResourceAsBitmap(const char* resource, SkBitmap* dst) {
+ SkString resourcePath = GetResourcePath(resource);
+ SkAutoTUnref<SkData> resourceData(
+ SkData::NewFromFileName(resourcePath.c_str()));
+ return resourceData && SkInstallDiscardablePixelRef(
+ SkDecodingImageGenerator::Create(
+ resourceData, SkDecodingImageGenerator::Options()), dst);
+}