OLD | NEW |
1 #ifndef __DEFINED__SkPdfFont | 1 #ifndef __DEFINED__SkPdfFont |
2 #define __DEFINED__SkPdfFont | 2 #define __DEFINED__SkPdfFont |
3 | 3 |
4 #include "SkPdfHeaders_autogen.h" | 4 #include "SkPdfHeaders_autogen.h" |
5 #include "SkPdfMapper_autogen.h" | 5 #include "SkPdfMapper_autogen.h" |
6 | 6 |
7 #include <map> | 7 #include <map> |
8 #include <string> | 8 #include <string> |
9 | 9 |
10 #include "SkTypeface.h" | 10 #include "SkTypeface.h" |
(...skipping 154 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
165 SkPdfFont() : fBaseFont(NULL), fEncoding(SkPdfDefaultEncoding::instance()),
fToUnicode(NULL) {} | 165 SkPdfFont() : fBaseFont(NULL), fEncoding(SkPdfDefaultEncoding::instance()),
fToUnicode(NULL) {} |
166 | 166 |
167 virtual ~SkPdfFont() { | 167 virtual ~SkPdfFont() { |
168 // TODO(edisonn): NYI (will leak for now) | 168 // TODO(edisonn): NYI (will leak for now) |
169 } | 169 } |
170 | 170 |
171 const SkPdfEncoding* encoding() const {return fEncoding;} | 171 const SkPdfEncoding* encoding() const {return fEncoding;} |
172 | 172 |
173 void drawText(const SkDecodedText& text, SkPaint* paint, PdfContext* pdfCont
ext, SkCanvas* canvas) { | 173 void drawText(const SkDecodedText& text, SkPaint* paint, PdfContext* pdfCont
ext, SkCanvas* canvas) { |
174 for (int i = 0 ; i < text.size(); i++) { | 174 for (int i = 0 ; i < text.size(); i++) { |
| 175 canvas->setMatrix(pdfContext->fGraphicsState.fMatrixTm); |
| 176 #ifdef PDF_TRACE |
| 177 SkPoint point = SkPoint::Make(SkDoubleToScalar(0), SkDoubleToScalar(
0)); |
| 178 pdfContext->fGraphicsState.fMatrixTm.mapPoints(&point, 1); |
| 179 printf("DrawText at (%f, %f)\n", SkScalarToDouble(point.x()), SkScal
arToDouble(point.y())); |
| 180 #endif // PDF_TRACE |
175 double width = drawOneChar(text[i], paint, pdfContext, canvas); | 181 double width = drawOneChar(text[i], paint, pdfContext, canvas); |
176 pdfContext->fGraphicsState.fMatrixTm.preTranslate(SkDoubleToScalar(w
idth), SkDoubleToScalar(0.0)); | 182 pdfContext->fGraphicsState.fMatrixTm.preTranslate(SkDoubleToScalar(w
idth), SkDoubleToScalar(0.0)); |
177 canvas->translate(SkDoubleToScalar(width), SkDoubleToScalar(0.0)); | |
178 } | 183 } |
179 } | 184 } |
180 | 185 |
181 void ToUnicode(const SkDecodedText& textIn, SkUnicodeText* textOut) const { | 186 void ToUnicode(const SkDecodedText& textIn, SkUnicodeText* textOut) const { |
182 if (fToUnicode) { | 187 if (fToUnicode) { |
183 textOut->text = new uint16_t[textIn.len]; | 188 textOut->text = new uint16_t[textIn.len]; |
184 textOut->len = textIn.len; | 189 textOut->len = textIn.len; |
185 for (int i = 0; i < textIn.len; i++) { | 190 for (int i = 0; i < textIn.len; i++) { |
186 textOut->text[i] = fToUnicode->fCMapEncoding[textIn.text[i]]; | 191 textOut->text[i] = fToUnicode->fCMapEncoding[textIn.text[i]]; |
187 } | 192 } |
(...skipping 227 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
415 SkDoubleToScalar(0.0)); | 420 SkDoubleToScalar(0.0)); |
416 return fChars[ch - fFirstChar].fWidth; | 421 return fChars[ch - fFirstChar].fWidth; |
417 } | 422 } |
418 | 423 |
419 virtual void afterWord(SkPaint* paint, SkMatrix* matrix) { | 424 virtual void afterWord(SkPaint* paint, SkMatrix* matrix) { |
420 | 425 |
421 } | 426 } |
422 }; | 427 }; |
423 | 428 |
424 #endif // __DEFINED__SkPdfFont | 429 #endif // __DEFINED__SkPdfFont |
OLD | NEW |