If SkPDFDevice::drawText is called with glyph encoding and a font with
cubic outlines (CFF or Type1) and a glyph code > 255 then it was
mutating the in(const) glyph codes in place. Instead, a copy is made.
BUG=skia:3019
Review URL: https://codereview.chromium.org/656143002
You can also click on the errors in the parsed output to jump directly to the offending location in the editor.
BUG=skia:
NOTRY=true
Review URL: https://codereview.chromium.org/660573003
Reason for revert:
A large number of GMs on Ubuntu12 are failing. The text layout on GPU is visibly different than that for 8888.
Original issue's description:
> Change drawText() to generate positions and send to drawPosText()
>
> The idea here is to have a central place that does layout for drawText(), and
> then always feed text through drawPosText(). This both makes all of the
> GrTextContexts consistent in drawText() output, and does a better job of
> stressing drawPosText().
>
> Because of the effect of matrices on hinting and approximation error, the
> generated text is not 100% identical to that produced by the raster pipeline.
>
> BUG=skia:2778
>
> Committed: https://skia.googlesource.com/skia/+/7851a56895c9c076f73a835a7dd51d3c6180c16fTBR=cdalton.nvidia@gmail.com,bungeman@google.com,reed@google.com
NOTREECHECKS=true
NOTRY=true
BUG=skia:2778
Review URL: https://codereview.chromium.org/659993003
The idea here is to have a central place that does layout for drawText(), and
then always feed text through drawPosText(). This both makes all of the
GrTextContexts consistent in drawText() output, and does a better job of
stressing drawPosText().
Because of the effect of matrices on hinting and approximation error, the
generated text is not 100% identical to that produced by the raster pipeline.
BUG=skia:2778
Review URL: https://codereview.chromium.org/653133004
Image subsets were always showing the same tile and were causing an image to be fully YUV decoded once per tile, which was both slow and wrong.
BUG=413001, 419718
Review URL: https://codereview.chromium.org/661483002
Refactor SkGLContext to be actually extendable. Before, non-trivial subclass
would need to destroy the GL connection upon running the destructor. However,
the base class would run GL commands in its own destructor (with destroyed GL
connection)
Refactor so that SkGLContext subclass object creation is completely done by
the factory function. If the factory function returns a non-NULL ptr, it means the context
is usable.
The destruction is done with the destructor instead of virtual function called
upon destruction. Make the destructors not to call virtual functions, for
clarity.
Remove custom 1x1 FBO setup code from the base class. It appears not to be used
anymore.
BUG=skia:2992
Review URL: https://codereview.chromium.org/640283004
The net effect is that two "+1" instructions are removed from insert().
search() nets no change: two +1 removed, two +1 added.
When vectorized, this removes the need to add in userToGrid() at all and
so the need to read an awkward {0, 0, 1, 1} constant from memory. Mostly
the benefit is less vector code to look at and think about.
BUG=skia:
Review URL: https://codereview.chromium.org/659823004
A careful reading of the preprocessor specification indicates that
any use of the 'defined' operator outside the form of 'defined X' or
'defined ( X )' directly in the constant expression of a '#if' or
'#elif' may cause undefined behavior.
In particular, msvc is very unpredictable. The 'defined X' and
'defined ( X )' forms behave differently when created from marco
expansion, with 'defined ( X )' generally evaluating to '0L'. The
'defined X' form generally behaves more the way one would expect,
but still has a number of quirks which should simply be considered
undefined behavior.
BUG=chromium:419245
Review URL: https://codereview.chromium.org/657183002
It was used to check to see if an SkPaint had mutable fields on it.
Now that all the fields are immutable, this function is no longer
used. Remove it.
BUG=skia:2097
Review URL: https://codereview.chromium.org/661543002
all its commands interleaved in contiguous memory. GrTRecorder also
supports extra data associated with objects, so we can store arrays
inline without having to call malloc().
Review URL: https://codereview.chromium.org/628453002
Got to keep our precious data in event of a crash.
With --flushEvery 10 I'm not seeing this cost any wall time.
BUG=skia:
Review URL: https://codereview.chromium.org/653083003