The "zeroPath" and emptystroke GMs capture this issue.
This CL changes the following PDF GMs: emptystroke dashing4
lineclosepath dashing3 zeroPath linepath
complexclip3_complex complexclip3_simple roundrects
degeneratesegments filltypes strokerect pathfill
inverse_paths desk_chalkboard.skp
After this change, all PDF GMs look better (closer to 8888).
The dashing4, emptystroke, and zeroPath GMs still need a lot
of work to make them look right.
BUG=538726
Review URL: https://codereview.chromium.org/1374383004
These are quite rare, causing us to miss a few bugs in how
we deal with these images.
Additionally, there is a behavior change. If the imageSize
is not large enough to contain the frame, we will "fix" the
image by increasing the image size.
SkScaledCodec is still buggy with regard to these gifs.
See skbug.com/4421. We will fix that after 1332053002
lands.
BUG=skia:
Review URL: https://codereview.chromium.org/1386973002
This CL moves the allocation and storage of the GrTextContexts into the DrawingManager. The GrDrawContexts now just get their GrTextContext from the DrawingManager.
Review URL: https://codereview.chromium.org/1375153007
Reason for revert:
Suspect this is the cause of regressions in crbug.com/527445. It's triggering on Windows and Linux, where getting advances does less than getting full metrics. It's not triggering on Mac, where this CL was a no-op.
Original issue's description:
> Stop using SkScalerContext::getAdvance() in SkGlyphCache.
>
> We think it'll simplify things to just always get the full metrics.
> On most platforms, it's no different, and we think the platforms that
> do differ (FreeType) will be nearly just as cheap.
>
> Removing this distinction helps us make SkGlyphCaches concurrent by
> removing a state (we-have-only-advances) from its logical state machine.
>
> We see no significant changes running SKPs before and after this CL.
> That makes sense, of course, because the SKPs bake some of this into drawPosText.
>
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/518a2923f11b819fa44ed5cff54155326959540fTBR=reed@google.com,bungeman@google.com,herb@google.com,mtklein@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=skia:
Review URL: https://codereview.chromium.org/1383403003
Requires the caller to explicitly preload paths within a range before
calling drawPaths. This allows us to remove the implicit lazy load,
thereby eliminating a redundant check on every redraw of a text blob.
BUG=skia:
Review URL: https://codereview.chromium.org/1382013002
Adds a TextRun object that defines a resolution-independent, paint-
indepent draw for a string of nvpr text.
BUG=skia:
Review URL: https://codereview.chromium.org/1375353004
- Drops device-space glyphs in favor of perf/simplicity.
- Removes residual complexities that would flip glyphs vertically for
compatibility with nvpr glyph loading, which is no longer used.
- Drops hairline support since they required new paths for every draw
matrix, and could only be supported under certain circumstances.
- Quits checking for color bitmap fonts in canDrawText since the
normal color emoji fallback will handle them anyway.
BUG=skia:
Review URL: https://codereview.chromium.org/1380973002
jpeg_finish_decompress() does several things:
(1) Reads to the end of the image stream.
(2) Calls term_src(), a client provided function that
indicates we are done with the memory stream. Our current
implementation of term_src() does nothing.
(3) Calls jpeg_abort() which aborts the decode and cleans
up some memory.
I don't think we need to call this anymore.
(1) seems irrelevant.
It seems a little dangerous to get rid of (2), but it is
fine while our implementation of term_src() does nothing.
(3) We will call jpeg_destroy() on destruction of the
JpegDecoderManager. This should free all the memory,
making it unnecessary to call jpeg_abort() beforehand.
BUG=skia:4040
Review URL: https://codereview.chromium.org/1370323004
Prior to this CL, each SkCodec subclass that allows sampling does an
extra check in onStartScanlineDecode to determine whether the X dimension
is supported for sampling. Remove this check, and provide a way for
SkScaledCodec to directly access the SkSwizzler, and update it to do
sampling. This way, the SkCodec knows nothing of sampling, but we can
still save the extra step of sampling afterwards.
FIXME: SkBmpRLECodec still calls SkScaledCodec::DimensionsSupported. It
seems like it could directly support sampling, rather than dealing with
SkScaledCodec (partially).
Add a new base class for SkSwizzler. It allows updating the swizzler
after it was created, which is done by SkScaledCodec. Modify SkSwizzler's
constructor/factory function to stop taking any info about sampling,
assume the sample size is one, and move modifying that into a virtual
function overridden from the base class.
BUG=skia:4284
Review URL: https://codereview.chromium.org/1372973002
Changes:
- Rebuild argc and argv so we can process command line arguments
- Remove unnecessary SimpleiOSApp files
- Add support for reading files from the app bundle
- Add gpu flag so we can start up directly into OpenGL
Review URL: https://codereview.chromium.org/1382943004
- This updates to r10e / API v21 everywhere.
- This has each host machine fetch the NDK,
run make-standalone-toolchain.sh, and copy gdbserver itself.
(It will do all this once per $ARCH, which is a little inefficient, but it
washes out in steady state.)
BUG=skia:
Review URL: https://codereview.chromium.org/1385463002
The font name can contain special characters in some OS that is
considered as delimiters ('/') by the traces. This causes error in the
dump name. This CL strips the fone name obtained before adding it to
traces.
This also adds discardable memory size for resources in cache.
BUG=532838
Review URL: https://codereview.chromium.org/1346993006
To further consolidate the various unique owning classes, this bases
SkAutoTUnref on skstd::unique_ptr. Users are updated because of two
breaking changes, swap now takes a reference and reset no longer
returns its argument.
Review URL: https://codereview.chromium.org/1370803002