Add Truetype and Type 1 font embedding support

Sorry this is such a large CL.  It was very exploratory for me to make this
work.

- Add an interface to SkFontHost to retrieve font information and provide NULL implementations on all platforms except Linux.
- Segment large Type 1 fonts into fonts with shared resources with 255 glyphs each.
- Convert the various Type 1 formats to the form PDF wants.
- Update font as we draw text instead of as part of the graphical state.
- Remove built-in font support, we can't really use it.

Other changes I can pull out to a separate CL if you like.

- Add SkTScopedPtr class.
- Fix double free of resources.
- Fix bug in resource unique-ifying code.
- Don't print anything for any empty clip path.
- Fix copy paste error - MiterLimit.
- Fix sign extension bug in SkPDFString
- Fix FlateTest rename that was missed on a previous commit.

Review URL: http://codereview.appspot.com/4082042

git-svn-id: http://skia.googlecode.com/svn/trunk@728 2bbb7eff-a529-9590-31e7-b0007b416f81
diff --git a/tests/FlateTest.cpp b/tests/FlateTest.cpp
index b9befe0..f8e0921 100644
--- a/tests/FlateTest.cpp
+++ b/tests/FlateTest.cpp
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2010 The Android Open Source Project
+ * Copyright (C) 2011 Google Inc.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -23,7 +23,7 @@
 
 // A memory stream that reports zero size with the standard call, like
 // an unseekable file stream would.
-class SkSimulatedFileStream : public SkMemoryStream {
+class SkZeroSizeMemStream : public SkMemoryStream {
 public:
     virtual size_t read(void* buffer, size_t size) {
         if (buffer == NULL && size == 0)
@@ -55,7 +55,7 @@
     // Check that the input data wasn't changed.
     size_t inputSize = testStream->getLength();
     if (inputSize == 0)
-        inputSize = testStream->read(NULL, SkSimulatedFileStream::kGetSizeKey);
+        inputSize = testStream->read(NULL, SkZeroSizeMemStream::kGetSizeKey);
     REPORTER_ASSERT(reporter, testData.getLength() == inputSize);
     REPORTER_ASSERT(reporter, memcmp(testData.getMemoryBase(),
                                      testStream->getMemoryBase(),
@@ -75,7 +75,7 @@
     // Check that the input data wasn't changed.
     inputSize = testStream->getLength();
     if (inputSize == 0)
-        inputSize = testStream->read(NULL, SkSimulatedFileStream::kGetSizeKey);
+        inputSize = testStream->read(NULL, SkZeroSizeMemStream::kGetSizeKey);
     REPORTER_ASSERT(reporter, compressed.getOffset() == inputSize);
     REPORTER_ASSERT(reporter, memcmp(testStream->getMemoryBase(),
                                      compressed.getStream(),
@@ -97,7 +97,7 @@
     TestFlate(reporter, &memStream, 512);
     TestFlate(reporter, &memStream, 10240);
 
-    SkSimulatedFileStream fileStream;
+    SkZeroSizeMemStream fileStream;
     TestFlate(reporter, &fileStream, 512);
     TestFlate(reporter, &fileStream, 10240);
 #endif