diff options
Diffstat (limited to 'tools/Resources.cpp')
-rw-r--r-- | tools/Resources.cpp | 13 |
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) { |