| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright 2011 Google Inc. | 2 * Copyright 2011 Google Inc. |
| 3 * | 3 * |
| 4 * Use of this source code is governed by a BSD-style license that can be | 4 * Use of this source code is governed by a BSD-style license that can be |
| 5 * found in the LICENSE file. | 5 * found in the LICENSE file. |
| 6 */ | 6 */ |
| 7 | 7 |
| 8 #include "SkPDFDevice.h" | 8 #include "SkPDFDevice.h" |
| 9 | 9 |
| 10 #include "SkAnnotation.h" | 10 #include "SkAnnotation.h" |
| (...skipping 928 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 939 return; | 939 return; |
| 940 } | 940 } |
| 941 | 941 |
| 942 SkMatrix matrix; | 942 SkMatrix matrix; |
| 943 matrix.setTranslate(SkIntToScalar(x), SkIntToScalar(y)); | 943 matrix.setTranslate(SkIntToScalar(x), SkIntToScalar(y)); |
| 944 internalDrawBitmap(matrix, d.fClipStack, *d.fClip, bitmap, NULL, paint); | 944 internalDrawBitmap(matrix, d.fClipStack, *d.fClip, bitmap, NULL, paint); |
| 945 } | 945 } |
| 946 | 946 |
| 947 void SkPDFDevice::drawText(const SkDraw& d, const void* text, size_t len, | 947 void SkPDFDevice::drawText(const SkDraw& d, const void* text, size_t len, |
| 948 SkScalar x, SkScalar y, const SkPaint& paint) { | 948 SkScalar x, SkScalar y, const SkPaint& paint) { |
| 949 NOT_IMPLEMENTED(paint.getMaskFilter() != NULL, false); |
| 950 if (paint.getMaskFilter() != NULL) { |
| 951 // Don't pretend we support drawing MaskFilters, it makes for artifacts |
| 952 // making text unreadable (e.g. same text twice when using CSS shadows). |
| 953 return; |
| 954 } |
| 949 SkPaint textPaint = calculate_text_paint(paint); | 955 SkPaint textPaint = calculate_text_paint(paint); |
| 950 ScopedContentEntry content(this, d, textPaint, true); | 956 ScopedContentEntry content(this, d, textPaint, true); |
| 951 if (!content.entry()) { | 957 if (!content.entry()) { |
| 952 return; | 958 return; |
| 953 } | 959 } |
| 954 | 960 |
| 955 SkGlyphStorage storage(0); | 961 SkGlyphStorage storage(0); |
| 956 uint16_t* glyphIDs = NULL; | 962 uint16_t* glyphIDs = NULL; |
| 957 size_t numGlyphs = force_glyph_encoding(paint, text, len, &storage, | 963 size_t numGlyphs = force_glyph_encoding(paint, text, len, &storage, |
| 958 &glyphIDs); | 964 &glyphIDs); |
| (...skipping 19 matching lines...) Expand all Loading... |
| 978 content.entry()->fContent.writeText(encodedString.c_str()); | 984 content.entry()->fContent.writeText(encodedString.c_str()); |
| 979 consumedGlyphCount += availableGlyphs; | 985 consumedGlyphCount += availableGlyphs; |
| 980 content.entry()->fContent.writeText(" Tj\n"); | 986 content.entry()->fContent.writeText(" Tj\n"); |
| 981 } | 987 } |
| 982 content.entry()->fContent.writeText("ET\n"); | 988 content.entry()->fContent.writeText("ET\n"); |
| 983 } | 989 } |
| 984 | 990 |
| 985 void SkPDFDevice::drawPosText(const SkDraw& d, const void* text, size_t len, | 991 void SkPDFDevice::drawPosText(const SkDraw& d, const void* text, size_t len, |
| 986 const SkScalar pos[], SkScalar constY, | 992 const SkScalar pos[], SkScalar constY, |
| 987 int scalarsPerPos, const SkPaint& paint) { | 993 int scalarsPerPos, const SkPaint& paint) { |
| 994 NOT_IMPLEMENTED(paint.getMaskFilter() != NULL, false); |
| 995 if (paint.getMaskFilter() != NULL) { |
| 996 // Don't pretend we support drawing MaskFilters, it makes for artifacts |
| 997 // making text unreadable (e.g. same text twice when using CSS shadows). |
| 998 return; |
| 999 } |
| 988 SkASSERT(1 == scalarsPerPos || 2 == scalarsPerPos); | 1000 SkASSERT(1 == scalarsPerPos || 2 == scalarsPerPos); |
| 989 SkPaint textPaint = calculate_text_paint(paint); | 1001 SkPaint textPaint = calculate_text_paint(paint); |
| 990 ScopedContentEntry content(this, d, textPaint, true); | 1002 ScopedContentEntry content(this, d, textPaint, true); |
| 991 if (!content.entry()) { | 1003 if (!content.entry()) { |
| 992 return; | 1004 return; |
| 993 } | 1005 } |
| 994 | 1006 |
| 995 SkGlyphStorage storage(0); | 1007 SkGlyphStorage storage(0); |
| 996 uint16_t* glyphIDs = NULL; | 1008 uint16_t* glyphIDs = NULL; |
| 997 size_t numGlyphs = force_glyph_encoding(paint, text, len, &storage, | 1009 size_t numGlyphs = force_glyph_encoding(paint, text, len, &storage, |
| (...skipping 804 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1802 } | 1814 } |
| 1803 | 1815 |
| 1804 bool SkPDFDevice::onReadPixels(const SkBitmap& bitmap, int x, int y, | 1816 bool SkPDFDevice::onReadPixels(const SkBitmap& bitmap, int x, int y, |
| 1805 SkCanvas::Config8888) { | 1817 SkCanvas::Config8888) { |
| 1806 return false; | 1818 return false; |
| 1807 } | 1819 } |
| 1808 | 1820 |
| 1809 bool SkPDFDevice::allowImageFilter(SkImageFilter*) { | 1821 bool SkPDFDevice::allowImageFilter(SkImageFilter*) { |
| 1810 return false; | 1822 return false; |
| 1811 } | 1823 } |
| OLD | NEW |