1318 Commits

Author SHA1 Message Date
Romain Guy
908370bb27 Merge "Add BitmapFactory.Options.inColorSpace" into oc-dev am: c99bcc69f7
am: f713a1960e

Change-Id: Ie1d361e946cf68ba97352ef6946f9d82ed5b784b
2017-04-14 21:19:25 +00:00
Romain Guy
c99bcc69f7 Merge "Add BitmapFactory.Options.inColorSpace" into oc-dev 2017-04-14 21:08:42 +00:00
Matt Sarett
00ce770070 Merge "Bug fix: use legacy SkCanvas regardless of color space tag" into oc-dev am: 101dc265a8
am: 7e92ac449b

Change-Id: Ic50bd5fe0358390024bdb9a34e14906dba669f25
2017-04-14 19:02:54 +00:00
Seigo Nonaka
24c6464663 Merge "Use provided style for fallback font selection" into oc-dev am: 43112fd26e
am: 83c52e0a40

Change-Id: Ia42f6a377c2617c8da9a84cb8bd7781326e464a1
2017-04-14 18:09:55 +00:00
Romain Guy
95648b8a59 Add BitmapFactory.Options.inColorSpace
This allows applications to load bitmap in a preferred
target color space, similar to inPreferredConfig for
configurations.

This change also applies recent changes made to BitmapFactory
to BitmapRegionDecoder: support for outColorSpace, inColorSpace
and outConfig.

Bug: 32984164, 36905374
Test: CtsGraphicsTestCase (BitmapColorSpaceTest/BitmapRegionDecoderTest)
Change-Id: I4eded9190d1aa9c7f3033f9bb78a6854cc48a3ef
2017-04-14 10:14:27 -07:00
Matt Sarett
ca9b703b88 Bug fix: use legacy SkCanvas regardless of color space tag
Test: Added unit test. CtsGraphicsModule.

Bug: 32984164

Change-Id: If72e1e31c98e01f97f3a05d763f5d4c71cf88313
2017-04-14 16:26:50 +00:00
Seigo Nonaka
659c9cfac3 Merge "Introduce setFallbackTypeface" into oc-dev am: 729a515e5e
am: 17452ee553

Change-Id: I66fe816727aae3fdf617c41796b25478090704fe
2017-04-14 15:31:25 +00:00
Seigo Nonaka
d154829cb1 Use provided style for fallback font selection
If the developer gives some weight/italic to the Typeface.Builder
the fallback used the metadata in the font file. We should use
provided data instead.

This CL also adjusts upper and lower limits on weight, from 100..900 to
1..1000

Bug: 37257745
Bug: 37251569
Test: android.graphics.cts.TypefaceTest passes
Change-Id: I7cf390d96b49afcce359928373698b0c9a9babd8
2017-04-14 00:54:46 +00:00
Seigo Nonaka
5b6347a6af Introduce setFallbackTypeface
setFallbackTypeface is returned by Builder.build() method when the
provided font is not loaded due to some reasons.
The fallback family is resolved with width/italic passed to Builder.

Bug: 36794225
Test: android.graphics.cts.TypefaceTest passes
Change-Id: I65e220aca823fd815a52437b11c8e6dc952de8e2
2017-04-13 10:12:27 -07:00
Romain Guy
0246a298f9 Merge "Color management, the missing pieces" into oc-dev am: 7dfa16c2ef
am: 3eafcb2d8b

Change-Id: I079d8d17982eecc022f2a53e1e6ca193dc7a3ace
2017-04-07 18:48:57 +00:00
Romain Guy
8242656f49 Color management, the missing pieces
Implement missing color management pieces for bitmaps:

- Bitmap.createBitmap(Bitmap src, ...) now creates a bitmap
  in the same color space as the source bitmap
- Bitmap.createScaledBitmap() now creates a bitmap in the
  same color space as the source bitmap
- Bitmap.createBitmap(..., ColorSpace colorSpace) to create
  bitmaps in a specific color space
- Fix copy from A8 to F16
- Copying bitmaps in F16 or with a color space does not work,
  it's currently a limitation in Skia

Bug: 36905374
Test: BitmapColorSpaceTest
Change-Id: I0092fe4432511db50daa3a9393389a9db05e0c2a
2017-04-07 07:56:14 -07:00
Matt Sarett
7c9fb6076e Merge "Xform bitmaps to sRGB on SW and PDF canvases" into oc-dev am: c29dffed16
am: fd5d5425ee

Change-Id: If960ccd900ebc2b841c2f13ca4f25820a48a950f
2017-04-06 22:16:49 +00:00
Matt Sarett
ea70d22dc8 Xform bitmaps to sRGB on SW and PDF canvases
For picture-backed canvases, we will defer the xform
until playback.

Test: Unit tests and cts test.
Bug: 32984164
Change-Id: Ib74663bcb688b74b6ba8792b403b0475126732af
2017-04-06 15:14:00 +00:00
Tenghui Zhu
e3d9992a0c Merge "Make sure we handle the matrix separately for non-invertable matrix" into oc-dev am: 399dba4ab0
am: a5485359c9

Change-Id: I8fffb0894d04b0b72ff95e0b87c9f40f22113568
2017-04-05 22:09:55 +00:00
ztenghui
b244fb528b Make sure we handle the matrix separately for non-invertable matrix
b/36895991
Test: added CTS tests and Run spotify

Change-Id: I2786e612494530405dad5c3edb2bc53915a1c2dc
2017-04-05 11:08:10 -07:00
Mike Reed
826deefda5 switch over to SkVertices object, and stop using deprecated methods.
This allows Skia to remove
  SK_SUPPORT_LEGACY_CANVAS_VERTICES
  SK_SUPPORT_LEGACY_BITMAP_SETPIXELREF
  SK_SUPPORT_LEGACY_PIXELREFFACTORY

Test: Existing CTS cover these changes

Running CtsGraphicsTestCases, there were 6 failures w/ and w/o this CL.
None of the 6 seems related to this CL.

Change-Id: I724082357d9f6cb699770df3c0b9ef555b957697
2017-04-05 14:20:38 +00:00
TreeHugger Robot
46f847fb76 Merge "Need to return false if addSkTypeface fails." into oc-dev 2017-04-04 22:11:32 +00:00
TreeHugger Robot
f9340ca491 Merge "Fix HWUI/Skia Gradients to premultiply the colors prior to interpolation" into oc-dev 2017-04-04 19:06:32 +00:00
Derek Sollenberger
669b15a935 Fix HWUI/Skia Gradients to premultiply the colors prior to interpolation
This is fixed in Skia by passing the appropriate flag when the shader is
generated.  The fix in HWUI is to reverse the premultiplication and
interpolation steps.

Test: bit CtsUiRenderingTestCases:.testclasses.ShaderTests
Bug: 34323783
Change-Id: I3417141949f62fcc696b6d8213a4b446d7d0cbf8
2017-04-04 12:07:28 -04:00
Seigo Nonaka
d5d6561f25 Need to return false if addSkTypeface fails.
Bug: 36809770
Test: android.content.res.cts.ResourcesTest#testGetFont_invalidFontFiles
Change-Id: I89438805b9232b1f789af5f70ef1f773589ecd3a
2017-04-03 15:51:02 -07:00
Seigo Nonaka
ff55115121 Reorganize font enumeration API.
This CL cleans up APIs around font variation settings.
- Remove FontConfig and FontManager public API.
- Remove FontManagerService from system service.
- Extract inner class FontConfig.Axis as top-level class FontVariationAxis.
  This is used by Typeface.Builder public API to create new Typeface.
- Introduce and expose FontVariationAxis utility functions from/to string.
- Throws if the invalid font variation settings is passed.

Test: android.text.cts.FontVariationAxisTest passes
Test: android.graphics.cts.TypefaceTest passes
Test: android.graphics.cts.PaintTest passes
Change-Id: I9ccafe7a53935960566243e2856e166878ca59ae
2017-04-03 13:55:07 -07:00
Romain Guy
90fc43b33d Query color space before decoding a bitmap
This follows the pattern established by other "out" fields
in BitmapFactory.Options

Bug: 32984164
Test: CtsGraphicsTestCases

Change-Id: Ie72e47338b578b41c550453e2698d2d49eddf6da
2017-03-31 09:09:57 -07:00
Matt Sarett
7f60d4a894 Merge "Support Alpha8->RGBA bitmap copying" 2017-03-23 22:05:14 +00:00
Matt Sarett
5320a72a88 Support Alpha8->RGBA bitmap copying
Skia recently dropped support for this conversion.  So this adds
an implementation to the framework.

This also unifies framework behavior to treat Alpha8 as
implicitly black when it must be converted to a color.

Test: CTS

BUG:36202415

Change-Id: Ia141733387e80f7e61bae472e632cdfbac67b2e0
2017-03-22 15:05:35 -04:00
Philip P. Moltmann
6a4486e1c5 Merge "Use only official pdfium APIs" 2017-03-22 16:20:41 +00:00
Seigo Nonaka
20e5d91739 Expose Typeface creation APIs with ttc and font variation.
Introduce Builder class for creating Typeface from various
sources with optional TTC index and font variation settings.

Bug: 33062398
Test: Manually verified new Builder create Typeface.
Change-Id: Ia23ee6a73516707d854c7387fe75fbb22f80673d
2017-03-21 13:27:33 -07:00
Philip P. Moltmann
d55f20d301 Use only official pdfium APIs
Fixes: 28051413
Test: cts-tradefed run cts-dev -m CtsGraphicsTestCases -t android.graphics.pdf.cts
      cts-tradefed run cts-dev -m Print -t android.print.pdf.cts
Change-Id: Iab52463ba225d3cddb1e97fe52cb9f56318cce68
2017-03-20 12:31:30 -07:00
TreeHugger Robot
7d50ff11db Merge "Notify caller if none of settings are effective." 2017-03-20 17:37:15 +00:00
Chris Craik
6097eca721 Expose color filter mutate methods
Bug: 36025103
Test: cts-tradefed run singleCommand cts-dev --module CtsGraphicsTestCases

Now, similar to Shaders, we defer native creation until Paint is being
used, and ensure that we have an up to date filter when drawing.

Also implements ColorMatrix#equals to behave like Matrix#equals.

Change-Id: I5f74addd97f5662800802e6f660fead58d518725
2017-03-16 15:45:43 -07:00
Seigo Nonaka
0763650a13 Notify caller if none of settings are effective.
Now setFontVariationSettings returns false if the given settings is not
effective.

Bug:35764323
Test: ran TextViewTest and PaintTest in cts
Change-Id: Ic31d9e47ec006c8e7bb2c907ff0ea2936bd71d01
2017-03-15 14:05:37 -07:00
TreeHugger Robot
2bd530e156 Merge "Pass advances to Minikin for calculating getTextRunCursor" 2017-03-15 19:53:16 +00:00
TreeHugger Robot
498697d905 Merge "Don't apply the sRGB OETF twice on RGBAF16 bitmaps" 2017-03-15 19:32:44 +00:00
Romain Guy
d70532d123 Don't apply the sRGB OETF twice on RGBAF16 bitmaps
Bug: 36250591
Test: BitmapRGBAF16Test
Change-Id: I39ca9e4bb666ab85066b5d45934f5f10210f6999
2017-03-15 11:04:33 -07:00
Seigo Nonaka
ac873c9f25 Clean up public FontConfig APIs
This CL contains following clean up:

- Hide unnecessary constructors.
- Change List<XX> to XX[] since actually all fields are immutable.
- Change font's variant type from String to int.
- Decouple resource related members to FontResourcesParser.
- Add NonNull/Nullable to all fields.

Test: ran android.content.res.FontResourcesParserTest

Change-Id: If456266ffff86d41342572a19662cc8f3cd13181
2017-03-15 10:16:55 -07:00
Roozbeh Pournader
5d74b1c76f Pass advances to Minikin for calculating getTextRunCursor
Previously, the getTextRunCursor() implementation in Minikin ignored
the font and just used the characters in the buffer in order to
determine cursor positions. Now we calculate the advances beforehand
in order to find potential Indic clusters.

Test: Manually tested some Tamil sequences
Bug: 35721792
Change-Id: I2500bd4c2c9d07bb6c965b2d41e04853886a7391
2017-03-14 13:11:40 -07:00
Matt Sarett
2ecdfc2a33 Use SkColorSpace::isSRGB() in place of pointer comparison
Test: Refactor

Change-Id: I26301339fb964c6feca8c92f058524f8b83156ff
2017-03-13 13:53:02 -04:00
Leon Scroggins III
dd3c06ce7e Stop explicitly using kCallerPasses_Ownership
Test: No change in behavior, no new tests.

This enum is going away in https://skia-review.googlesource.com/c/9498,
and this method is using the default anyway.

Change-Id: I928a72851f90e84f45ce2fa49560f8ba894a8058
2017-03-10 10:54:36 -05:00
Chris Craik
b20f320954 Merge "Support for shader mutation" 2017-03-10 01:46:08 +00:00
Chris Craik
b581e6704f Support for shader mutation
Bug: 36025103

Test: cts-tradefed run singleCommand cts-dev --module CtsGraphicsTestCases
Test: cts-tradefed run singleCommand cts-dev --module CtsUiRenderingTestCases
Test: manually inspected for leaks via SK_TRACK_SHADER_LIFETIME and forcing a GC after ComposeShaderTest

Change-Id: Ib5d33a80d2f9f468705806b05832e753508143cc
2017-03-09 15:19:46 -08:00
TreeHugger Robot
917de8577f Merge "switch to new SkPathEffect factories for Compose and Sum" 2017-03-09 12:29:15 +00:00
TreeHugger Robot
7cf9be0246 Merge "Make Bitmap.get/setPixel[s] color space aware" 2017-03-09 02:06:10 +00:00
Romain Guy
ce217faddb Make Bitmap.get/setPixel[s] color space aware
Bug: 32984164
Test: cts-tradefed run singleCommand cts-dev --module CtsGraphicsTestCases --test android.graphics.cts.BitmapColorSpaceTest
Change-Id: Iee8c4abb264f0d2a44bae59788fbf4dcb2d0fdf7
2017-03-08 16:45:20 -08:00
Mathias Agopian
2bd7d98fe8 fallout from getting rid of IGraphicBufferAlloc
Test: compiled & run
Bug: cleanup
Change-Id: I1590105d3abef985c2ae7c1a03cdf5fd2ec4bef9
2017-03-08 23:12:06 +00:00
Mike Reed
97fa22998f switch to new SkPathEffect factories for Compose and Sum
Test: existing Paint tests exercise these factories

Change-Id: I38abd91203b06b1141dcb4fd96478f9e0a1d18ba
2017-03-08 21:47:14 +00:00
TreeHugger Robot
dfcebf672d Merge "Write Bitmap's color space in parcel" 2017-03-08 02:06:49 +00:00
Romain Guy
5acc476878 Write Bitmap's color space in parcel
This change also resets the cached color space field in Bitmap.java
when reconfigure() is called or when a bitmap is reused by the
bitmap factory.

Bug: 32072280
Test: CtsGraphicsTestCases.BitmapColorSpaceTest
Change-Id: I232b729b7a29e65bfff21dc749570c3c80adf855
2017-03-07 15:41:07 -08:00
TreeHugger Robot
7ef25b7894 Merge "Add ColorSpace information on Bitmap" 2017-03-07 18:37:13 +00:00
Romain Guy
efb4b06493 Add ColorSpace information on Bitmap
This is the first step toward interpreting color spaces at render time.

Bug: 32984164
Test: BitmapColorSpaceTest in CtsGraphicsTestCases

Change-Id: I0164a18f1ed74a745874fe5229168042afe27a04
2017-03-06 19:33:25 -08:00
Mathias Agopian
df7707cb4f fallout of cleaning-up libutils includes
Test: run & compile
Bug: n/a
Change-Id: I0f6a0be03f4b120b1b5876aae0c0618c025d9f2b
2017-03-03 12:37:54 -08:00
TreeHugger Robot
53fc3cdd5c Merge "Fix NDK access to recycle'd bitmaps" 2017-03-02 20:28:29 +00:00