| Commit message (Collapse) | Author | Age |
|
|
|
|
|
|
|
|
|
|
|
|
| |
add special virtuals to device, in preparation for using them instead of bitmap for imagefilters
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2155933002
patch from issue 2155933002 at patchset 20001 (http://crrev.com/2155933002#ps20001)
use specialimages instead of bitmaps for imagefiltering
Review-Url: https://codereview.chromium.org/2155063002
|
|
|
|
|
|
|
| |
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2161233002
Review-Url: https://codereview.chromium.org/2161233002
|
|
|
|
|
|
|
|
| |
Split out of https://codereview.chromium.org/2163483002/ (Use SkFont in GrStencilAndCoverTextContext)
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2163633002
Review-Url: https://codereview.chromium.org/2163633002
|
|
|
|
|
|
|
|
|
|
| |
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2146333004
NOTRY=True
win failure seems unrelated
Review-Url: https://codereview.chromium.org/2146333004
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
SkPDFUtils now has a special function (SkPDFUtils::AppendColorComponent)
just for writing out (color/255) as a decimal with three digits of
precision.
SkPDFUnion now has a type to represent a color component. It holds a
utint_8, but calls into AppendColorComponent to serialize.
Added a unit test that tests all possible input values.
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2151863003
Review-Url: https://codereview.chromium.org/2151863003
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When N sequential positioned glyphs differ in positions by exactly the
advances of the first (N-1) glyphs, join the glyphs into a string
rather than changing the text matrix between each glyph draw.
Decreases PDF output size by about ~1.4%. Potentially more on
text-heavy pages.
A single-typeface PDF of an 27kB ASCII document shaped with harfbuzz:
before: 187743 Bytes
after: 65513 Bytes
difference: -65.1%
Before:
BT
/F0 13 Tf
1 0 0 -1 143.5 61 Tm
<0029> Tj
1 0 0 -1 150.634765 61 Tm
<004C> Tj
1 0 0 -1 154.602050 61 Tm
<0055> Tj
1 0 0 -1 160.245117 61 Tm
<0048> Tj
1 0 0 -1 167.925781 61 Tm
<004B> Tj
1 0 0 -1 176.469726 61 Tm
<0052> Tj
1 0 0 -1 184.518554 61 Tm
<0056> Tj
1 0 0 -1 190.980468 61 Tm
<0048> Tj
ET
After:
BT
/F0 13 Tf
1 0 0 -1 0 0 Tm
143.5 -61 Td <0029004C0055> Tj
16.7451171 0 Td <0048004B005200560048> Tj
ET
Also: update the Text matrix with the `Td` operator, instead of
overwriting it with the the `Tm` operator. In the worst case, when
every glyph is positioned differently than it's advance, this still
makes the command stream smaller:
Before:
...
1 0 0 -1 58.328125 660 Tm <0055> Tj
1 0 0 -1 61.609375 660 Tm <004C> Tj
1 0 0 -1 63.828125 660 Tm <0056> Tj
...
After:
...
3.140625 0 Td <0055> Tj
3.28125 0 Td <004C> Tj
2.21875 0 Td <0056> Tj
...
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2150393002
Review-Url: https://codereview.chromium.org/2150393002
|
|
|
|
|
|
|
|
|
|
| |
Prior to this we assumed the default default was 0. It is
actually 1000, according to the spec.
fixes BUG=skia:5321
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2146403005
Review-Url: https://codereview.chromium.org/2146403005
|
|
|
|
|
|
|
|
|
| |
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2153173002
NOTRY=True
Review-Url: https://codereview.chromium.org/2153173002
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
In ToUnicode table, write unicode codepoints as one or two UTF16BE
values, rather than a single hex, as the standard requires.
Factor out uint16 -> big-endian hex code.
SkUtils is now a namespace.
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2120533002
Review-Url: https://codereview.chromium.org/2120533002
|
|
|
|
| |
Review-Url: https://codereview.chromium.org/2119883002
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Instead of having a fFontGlyphUsage on each device and one on each
document, just have the one on the document, and never merge.
Make fGlyphUsage accesible on SkPDFDocument.
Remove SkPDFGlyphSetMap::merge, ::reset, and SkPDFGlyphSet::merge.
SkPDFGlyphSetMap has an TArray of SkPDFGlyphSet, not TDArray of
SkPDFGlyphSet pointers. SkPDFGlyphSet and SkPDFBitset get move
constructors.
All tests produce exactly identical output PDFs.
BUG=skia:5434
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2112943002
Review-Url: https://codereview.chromium.org/2112943002
|
|
|
|
|
|
|
|
|
|
|
|
| |
I recommend not using this functionality.
Also, some documentation.
BUG=skia:5436
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2074583003
Review-Url: https://codereview.chromium.org/2074583003
|
|
|
|
|
|
| |
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2104223003
Review-Url: https://codereview.chromium.org/2104223003
|
|
|
|
|
|
|
|
|
| |
This is possible since https://crrev.com/869763002. Later, I'll clean
up the logic and class constructors. For now, I assert everywhere I
expect a SkStreamAsset to be well-behaved (duplcate, hasLength).
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2098393002
Review-Url: https://codereview.chromium.org/2098393002
|
|
|
|
|
|
|
|
|
| |
Use forward declaration more.
BUG=None
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2110033002
Review-Url: https://codereview.chromium.org/2110033002
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
before:
micros bench
250.98 WritePDFText nonrendering
after:
micros bench
107.10 WritePDFText nonrendering
Also, be slightly more space-efficient in encoding strings.
Also, add a bench.
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2099463002
Review-Url: https://codereview.chromium.org/2099463002
|
|
|
|
|
|
|
| |
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1925233003
Review-Url: https://codereview.chromium.org/1925233003
|
|
|
|
|
|
|
| |
.
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2037083002
Review-Url: https://codereview.chromium.org/2037083002
|
|
|
|
|
|
|
| |
.
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2012133003
Review-Url: https://codereview.chromium.org/2012133003
|
|
|
|
|
|
|
| |
Committed: https://skia.googlesource.com/skia/+/6296da736fbf40aae881650c239420f64e576c3f
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1933393002
Review-Url: https://codereview.chromium.org/1933393002
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
https://codereview.chromium.org/1933393002/ )
Reason for revert:
fontmgr_iterAndroid failing to draw emoji. E.g. https://gold.skia.org/search2?blame=6296da736fbf40aae881650c239420f64e576c3f&unt=true&head=true&query=source_type%3Dgm
Original issue's description:
> Move SkTypeface to sk_sp.
>
> Committed: https://skia.googlesource.com/skia/+/6296da736fbf40aae881650c239420f64e576c3f
TBR=reed@google.com,fmalita@chromium.org,tomhudson@google.com,bungeman@google.com
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
Review-Url: https://codereview.chromium.org/1974783002
|
|
|
|
| |
Review-Url: https://codereview.chromium.org/1933393002
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
+ use SkSinglyLinkedList<T>
+ move SkSinglyLinkedList.h to core
+ remove SkHackyAutoTDelete
+ getAdvanceData() -> setGlyphWidths()
+ finishRange no longer templated
+ remove unused templated functions
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1953153004
Review-Url: https://codereview.chromium.org/1953153004
|
|
|
|
|
|
|
|
|
| |
Manually unwind linked list.
BUG=567031
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1955033002
Review-Url: https://codereview.chromium.org/1955033002
|
|
|
|
|
|
| |
TBR=stephana@google.com
Review-Url: https://codereview.chromium.org/1929593002
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Most call-sites that used it just took its bounds, so it was trivial to convert them
to get the bounds of the RasterClip. Two clients wanted the actual region:
1. layeriter for android
2. pdf
Android already only has BW clips, so should be safe.
PDF now overrides its clip methods to ensure that all clips are BW.
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1925693002
Review URL: https://codereview.chromium.org/1925693002
|
|
|
|
|
|
|
|
|
|
| |
has a pdf/a switch.
sets metadata in factory.
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1916093002
Review URL: https://codereview.chromium.org/1916093002
|
|
|
|
|
|
|
|
| |
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1403803002
Committed: https://skia.googlesource.com/skia/+/606cadd5aac62299ef2e277709b3684cae2bf96c
Review URL: https://codereview.chromium.org/1403803002
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
static buffer (patchset #5 id:80001 of https://codereview.chromium.org/1403803002/ )
Reason for revert:
breaking something
Original issue's description:
> SkStringPrintf and SkString::printf now are no longer limted by a static buffer
>
> GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1403803002
>
> Committed: https://skia.googlesource.com/skia/+/606cadd5aac62299ef2e277709b3684cae2bf96c
TBR=tomhudson@google.com,reed@google.com
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
Review URL: https://codereview.chromium.org/1908423002
|
|
|
|
|
|
| |
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1403803002
Review URL: https://codereview.chromium.org/1403803002
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
TODO: remove gyp variable and modify API in SkDocument.h
SkMD5 now moved into core as pdf depends on it now.
BUG=skia:3110
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1891873002
Committed: https://skia.googlesource.com/skia/+/570f18b43417d73c3fbd113cc0b4258e08b14c82
Review URL: https://codereview.chromium.org/1891873002
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
https://codereview.chromium.org/1891873002/ )
Reason for revert:
breaking something.
Original issue's description:
> SkPDF: PDF/A runtime switch
>
> TODO: remove gyp variable and modify API in SkDocument.h
>
> BUG=skia:3110
> GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1891873002
>
> Committed: https://skia.googlesource.com/skia/+/570f18b43417d73c3fbd113cc0b4258e08b14c82
TBR=tomhudson@google.com
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=skia:3110
Review URL: https://codereview.chromium.org/1892203002
|
|
|
|
|
|
|
|
|
| |
TODO: remove gyp variable and modify API in SkDocument.h
BUG=skia:3110
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1891873002
Review URL: https://codereview.chromium.org/1891873002
|
|
|
|
|
|
|
|
|
|
|
| |
See:
https://github.com/veraPDF/veraPDF-validation-profiles/wiki/PDFA-Parts-2-and-3-rules#rule-632-1
https://github.com/veraPDF/veraPDF-validation-profiles/wiki/PDFA-Parts-2-and-3-rules#rule-632-2
BUG=skia:3010
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1867003004
Review URL: https://codereview.chromium.org/1867003004
|
|
|
|
|
|
| |
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1863393004
Review URL: https://codereview.chromium.org/1863393004
|
|
|
|
|
|
|
|
|
|
|
| |
Some produced PDFs are recognized by veraPDF 0.13.2
(http://verapdf.org/software/) as valid PDF/A-2B.
BUG=skia:4535
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1864173004
Review URL: https://codereview.chromium.org/1864173004
|
|
|
|
|
|
|
|
|
| |
TODO: get a bot to start testing this.
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1864163004
Review URL: https://codereview.chromium.org/1864163004
|
|
|
|
|
|
|
| |
BUG=skia:5161
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1848383002
Review URL: https://codereview.chromium.org/1848383002
|
|
|
|
|
|
|
|
| |
motivation: measurable memory savings.
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1851123002
Review URL: https://codereview.chromium.org/1851123002
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Turn this on all the time. Remove the SK_PDF_USE_PATHOPS_CLIPPING
define that used to hide this functionality.
All rendering tests are the same or improved by this.
Also, remove non-functional SK_ALLOW_LARGE_PDF_SCALARS.
TBR=reed@google.com
removing dead #defines from SkUserConfig.h
BUG=591805
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1845623002
Review URL: https://codereview.chromium.org/1845623002
|
|
|
|
|
|
| |
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1849453004
Review URL: https://codereview.chromium.org/1849453004
|
|
|
|
|
|
|
|
|
| |
Speculative fix for hard-to-reproduce bug.
BUG=163892
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1842163002
Review URL: https://codereview.chromium.org/1842163002
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Motivation: as we implement more features in PDF, it would be nice to more easily see what is happening in the output. This change serializes page content as plain text rather than compressed text, but it has to be explicitly enabled with a GYP_DEFINE change:
export GYP_DEFINES='skia_pdf_less_compression=1'
bin/sync-and-gyp
ninja -C out/Debug dm
out/Debug/dm --config pdf --src gm -w /tmp
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1840103002
Review URL: https://codereview.chromium.org/1840103002
|
|
|
|
|
|
|
|
| |
TBR=reed@google.com
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1823753002
Review URL: https://codereview.chromium.org/1823753002
|
|
|
|
|
|
| |
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1842753002
Review URL: https://codereview.chromium.org/1842753002
|
|
|
|
|
|
|
|
|
|
| |
add SkSinglyLinkedList<T> class
no change in SkPDF output.
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1839633003
Review URL: https://codereview.chromium.org/1839633003
|
|
|
|
|
|
| |
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1837553002
Review URL: https://codereview.chromium.org/1837553002
|
|
|
|
|
|
| |
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1837453003
Review URL: https://codereview.chromium.org/1837453003
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
overflow.
The following are currently unused in Android, Google3, Chromium, and Mozilla:
- SkEvent
- SkTime::GetMSecs
- SK_TIME_FACTOR (also unused in Skia)
- SkAutoTime
I left uses of SkMSec more-or-less intact for SkEvent, SkAnimator, and SkInterpolator. SkInterpolator is used in Chromium, so I did not want to change the API. The views/ and animator/ code is crufty, so it didn't seem worthwhile to refactor it. Instead, I added SkEvent::GetMSecsSinceStartup, which is likely to be adequate for use in SampleApp.
I also left SkMSec where it is used to measure a duration rather than a timestamp. With the exception of SkMovie, which is used in Android, all of the uses appear to measure the execution time of a piece of code, which I would hope does not exceed 2^31 milliseconds.
Added skiatest::Timer to support a common idiom in tests where we want to measure the wallclock time in integer milliseconds. (Not used in tests/PathOpsSkpClipTest.cpp because it redefines things in Test.h.)
Removed tabs in tests/StrokerTest.cpp.
BUG=skia:4632
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1811613004
Review URL: https://codereview.chromium.org/1811613004
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Before this change, the PDFCanon held a map from BitmapKeys
to SkImages for de-duping bitmaps. Even if the PDFDocument
serialized images early, the Canon still held a ref to that
image inside the map. With this change, the Canon holds a
single map from BitmapKeys to PDFObjects. Now, Images are
only held by the PDFObject, which the document serializes
and drops early.
This change also:
- Moves SkBitmapKey into its own header (for possible
reuse); it now can operate with images as well as
bitmaps.
- Creates SkImageBitmap, which wraps a pointer to a bitmap
or an image and abstracts out some common tasks so that
drawBitmap and drawImage behave the same.
- Modifies SkPDFCreateBitmapObject to take and return a
sk_sp<T>, not a T*.
- Refactors SkPDFDevice::internalDrawImage to use bitmaps
or images (via a SkImageBitmap).
- Turns on pre-serialization of all images.
BUG=skia:5087
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1829693002
Review URL: https://codereview.chromium.org/1829693002
|