Required for a merge in external/skia
(I88b4d5cc81c357a8e223bd7860b1029590265200).
Includes two cherry-picks:
I456df543e1925b280f785c7b3bb81370157f9b09:
replace SkRasterizer* with NativeRasterizer* in JNI
I98adb200e023369d3ee75f21927fa98f23095a77:
Fix Paint.getFlags,setFlags wrt FILTER_BITMAP_FLAG
In Paint.setFlags(), turn FILTER_BITMAP_FLAG into a call to
SkPaint::setFilterLevel().
In Paint.getFlags(), read SkPaint::getFilterLevel() to determine
whether to include FILTER_BITMAP_FLAG in the result.
Fixes CTS tests with ToT Skia.
Change-Id: I2736f3f68683651574d79a169ff0ab563e0a469e
We need to render PDF documents for two main use cases. First,
for print preview. Second, for resterizing the PDF document by
a print service before passing it to a printer which does not
natively support PDF (most consumer ones).
Adding PDF rendering APIs improves guarantees for print quality
as the same library is used for preview and rasterization. Also
print vendors do not have to license third-party rendering engines.
Last but not least as the platform uses PDF as its main print
format it should also be able to natively render it.
Change-Id: I57004a435db147663cafea40cf3296465aba7f99
This patch plumbs the bidiFlags for the various text drawing and
measurement functions down to Minikin, so that the latter can do layout
in a BiDi-aware manner. With the corresponding changes to Minikin, it
is sufficient to correctly display RTL text in TextViews.
Change-Id: Ie904f297373b9ad418050a474506605c7c127b0f
This patch introduces proper lifecycle maintenance (based on reference
counting) for Minkin objects, particularly FontFamily and
FontCollection. The patch depends on the corresponding Ref and Unref
methods being available in Minikin.
Change-Id: I91935e953d5a522e1adc496f2ce3a598be35de2b
This patch improves Minikin-based font handling, to deal with error
conditions (missing fonts and so on), and also moves the parsing of
fallback_fonts.xml and system_fonts.xml into Java code.
Change-Id: Ib0debdbd56ad3b0196be6d2a35668d711c98f1e5
This is the current state of the Minikin integration. All changes are
hidden behind USE_MINIKIN #ifdef, so it should be safe to apply. To
play with the Minikin branch, set this in your BoardConfig.mk .
This change also merges in 64-bit changes that were happenening in
parallel.
Change-Id: Idd94553bcbe324c5875d0ff06495c966c3e95b7f
Allow the client of a SurfaceTexture to specify the Handler to
which the update callback should be directed to avoid unnecessary
scheduling ping-pong between threads.
Fixed an invalid assumption in TextureView that it is attached
to the main looper which could result in a crash under certain
circumstances. In normal app processes, it is true that TextureViews
must be created on the main looper since hardware rendering is
currently only supported on the main looper. However, in the
system server, UI components run a different thread. Although
hardware rendering is normally disabled in the system server,
it may be enabled for certain developer features.
Bug: 14445309
Change-Id: I5ae17ad018b9ef05ba87ec2f972c7c82e2bca70a
This patch adds an elegantTextHeight text appearance attribute and
plumbs it through to the paint. This attribute selects the elegant
variant of fonts (when appropriate, which is typically Arabic and indic
scripts), and also specifies larger vertical metrics, to avoid clipping.
The intent is for this to be the default for quantum themes, but this
patch doesn't change any default behavior, just adds the attribute.
The larger vertical metrics are applied to top and bottom, but should
not affect line spacing in the common case. Also, with the setting,
metrics are no longer dependent on the font, so setting a custom font
will preserve layout and spacing.
Change-Id: If3b7d41f141deff50ca078f479ca90c2aa07829a
It is invalid to call SkShader::getFlags() before calling
SkShader::setContext() - it will always return 0. Instead, call
SkShader::isOpaque().
Change-Id: If35108dc7f0eca55d2ec8466b8a50fd54dfb13a2
Now that SkScalar is always float (it may someday be double, but
float to double is trivial), remove callers of SkFloatToScalar,
which is deprecated in Skia.
BUG:13694396
Change-Id: I524a9bb6f7702bc810bac55fb9d2cd5361a01cf7
I816129d49c0118453222916f3c818eccac33663d merges a new version of
Skia that updates various APIs. Call the new ones.
SkBitmap::copyTo now takes an SkColorType instead of an
SkBitmap::Config, so do the conversion with
SkBitmapConfigToColorType or use the enum when it makes sense.
Call SkImageDecoder::decodeSubset instead of (deprecated)
SkImageDecoder::decodeRegion.
Override SkCanvas::ClipVisitor::clipRRect in ClipCopier.
In Canvas::clip calls, call SkCanvas::isClipEmpty(), which was
previously called inside the clip call, to determine the return value.
For various SkPaint effects, call the new factories (as the constructors
have been made protected).
Implement SkJavaOutputStream::bytesWritten(), overriding a new pure
virtual function on SkWStream.
Update Matrix calls to always return true (since SkMatrix calls no
longer return a value).
Depends on I816129d49c0118453222916f3c818eccac33663d (skia).
Change-Id: I5cdcea827ebff587df0bbddc0965e3e0fbf48002
These changes are needed due to changes in the Skia API.
Depends on https://googleplex-android-review.git.corp.google.com/#/c/439626/1
(Ic3cf846b74d6f10ec30c477b50fd774cc30ad52c)
BitmapFactory.cpp:
Use SkColorType instead of SkBitmap::Config, where possible.
Call SkBitmap::info() instead of deprecated SkBitmap::asImageInfo().
Remove calls to deprecated SkBitmap::getSize64().
Canvas.cpp:
ColorFilter.cpp:
Matrix.cpp
Remove the deprecated SK_SCALAR_IS_FIXED path. Leave in an else case for
SK_SCALAR_IS_FLOAT, to allow for eventual SK_SCALAR_IS_DOUBLE path.
Graphics.cpp:
Like in BitmapFactory.cpp, use new methods for determining the size of
pixels.
Paint.cpp:
Use more precise SkScalar_ToInt versions of macros.
TextLayoutCache.cpp:
Fix bug in macro definition for HB_SurrogateToUcs4.
Use the new name for SkCreateTypefaceForScriptNG.
android_view_SurfaceControl.cpp:
Replace ScreenshotPixelRef with a Skia pixel ref.
This is a merge from master-skia branch:
https://googleplex-android-review.git.corp.google.com/#/c/430554/
(Ie11503bcefd3883c466279fde5ce147c8a72b452)
Change-Id: Idf15746f93dabeb7862ac02cc6bd925f0dcc68ba
Changes in this patch include
[x] Use %zu for size_t, %zd for ssize_t
[x] Some minor changes have been done to conform with
standard JNI practice (e.g. use of jint instead of int
in JNI function prototypes)
Change-Id: Id1aaa7894a7d0b85ac7ecd7b2bfd8cc40374261f
Signed-off-by: Ashok Bhat <ashok.bhat@arm.com>
Signed-off-by: Craig Barber <craig.barber@arm.com>
Signed-off-by: Kévin PETIT <kevin.petit@arm.com>
Signed-off-by: Marcus Oakland <marcus.oakland@arm.com>
Use yDivs for yDivs, and not xDivs.
bug: 13394494
(cherry picked from commit 42a51ae8812bccde7ff370cc2688f7955e489ad4)
Change-Id: Ia0a7d701a170945216ab247a483e7f972b6fe17e