| Index: tools/Resources.cpp
|
| diff --git a/tools/Resources.cpp b/tools/Resources.cpp
|
| index 43cc21d20991349871433e81c7347a73cf6acfd9..4767edde5f80f6bc19bac95c3dc45f26a8adc733 100644
|
| --- a/tools/Resources.cpp
|
| +++ b/tools/Resources.cpp
|
| @@ -11,6 +11,8 @@
|
| #include "SkData.h"
|
| #include "SkImageGenerator.h"
|
| #include "SkOSFile.h"
|
| +#include "SkStream.h"
|
| +#include "SkTypeface.h"
|
|
|
| DEFINE_string2(resourcePath, i, "resources", "Directory with test resources: images, fonts, etc.");
|
|
|
| @@ -24,7 +26,29 @@ void SetResourcePath(const char* resource) {
|
|
|
| bool GetResourceAsBitmap(const char* resource, SkBitmap* dst) {
|
| SkString resourcePath = GetResourcePath(resource);
|
| - SkAutoTUnref<SkData> resourceData(
|
| - SkData::NewFromFileName(resourcePath.c_str()));
|
| + SkAutoTUnref<SkData> resourceData(SkData::NewFromFileName(resourcePath.c_str()));
|
| return resourceData && SkInstallDiscardablePixelRef(resourceData, dst);
|
| }
|
| +
|
| +SkStreamAsset* GetResourceAsStream(const char* resource) {
|
| + SkString resourcePath = GetResourcePath(resource);
|
| + SkAutoTDelete<SkFILEStream> stream(new SkFILEStream(resourcePath.c_str()));
|
| + if (stream->isValid()) {
|
| + return stream.detach();
|
| + } else {
|
| + SkDebugf("Resource %s not found.\n", resource);
|
| + return NULL;
|
| + }
|
| +}
|
| +
|
| +SkTypeface* GetResourceAsTypeface(const char* resource) {
|
| + SkAutoTDelete<SkStreamAsset> stream(GetResourceAsStream(resource));
|
| + if (!stream) {
|
| + return NULL;
|
| + }
|
| + SkAutoTUnref<SkTypeface> typeface(SkTypeface::CreateFromStream(stream.detach()));
|
| + if (!typeface) {
|
| + SkDebugf("Resource %s not a valid font.", resource);
|
| + }
|
| + return typeface.detach();
|
| +}
|
|
|