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, 13 insertions, 0 deletions
diff --git a/tools/Resources.cpp b/tools/Resources.cpp
index 0c6e4b4adf..aa81d341b4 100644
--- a/tools/Resources.cpp
+++ b/tools/Resources.cpp
@@ -57,6 +57,19 @@ SkStreamAsset* GetResourceAsStream(const char* resource) {
return stream.release();
}
+sk_sp<SkData> GetResourceAsData(const char* resource) {
+ SkString resourcePath = GetResourcePath(resource);
+ std::unique_ptr<SkFILEStream> stream(new SkFILEStream(resourcePath.c_str()));
+ if (!stream->isValid()) {
+ SkDebugf("Resource %s not found.\n", resource);
+ return nullptr;
+ }
+ size_t bytes = stream->getLength();
+ sk_sp<SkData> data = SkData::MakeUninitialized(bytes);
+ stream->read(data->writable_data(), bytes);
+ return data;
+}
+
sk_sp<SkTypeface> MakeResourceAsTypeface(const char* resource) {
std::unique_ptr<SkStreamAsset> stream(GetResourceAsStream(resource));
if (!stream) {