aboutsummaryrefslogtreecommitdiffhomepage
path: root/tools/Resources.cpp
diff options
context:
space:
mode:
authorGravatar bungeman <bungeman@google.com>2015-04-30 17:12:58 -0400
committerGravatar bungeman <bungeman@google.com>2015-04-30 17:12:58 -0400
commit3ffa126066542590dc7430514a1174e49191b875 (patch)
treebe4f38159a515b02340ae6c24a7c253513b52177 /tools/Resources.cpp
parenta09c0461463a5976908af5232b755e1663b972bf (diff)
Move resource fonts to common location.
Move resource fonts to resources/fonts, add a destortable font for testing, and clean up how the tests create fonts from resources. R=joshualitt@google.com Review URL: https://codereview.chromium.org/1120823002
Diffstat (limited to 'tools/Resources.cpp')
-rw-r--r--tools/Resources.cpp28
1 files changed, 26 insertions, 2 deletions
diff --git a/tools/Resources.cpp b/tools/Resources.cpp
index 43cc21d209..4767edde5f 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();
+}