Commit Graph

1289 Commits

Author SHA1 Message Date
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
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
John Reck
00799f760d Fix NDK access to recycle'd bitmaps
Also kills off one user of GraphicsJNI.h!

Change-Id: Icbf979e485b3b6ec2f37e18ff654b8ff1e44fb35
Fixes: 34712423
Test: cts CtsGraphicsTestCases --test android.graphics.cts.BitmapTest#testNdkAccessAfterRecycle passes
2017-03-01 18:11:04 -08:00
sergeyv
656117bed2 Fix premultiplied flag for hardware bitmaps
Test: android.uirendering.cts.testclasses.HardwareBitmapTests
bug:35752428
Change-Id: I2d21822e13c007c760f2fb42370aeb9240fcb5fa
2017-02-28 17:48:14 -08:00
Seigo Nonaka
194f375979 Merge "Follow Minikin's signature changes." 2017-02-27 04:30:31 +00:00
Seigo Nonaka
c7064146f9 Follow Minikin's signature changes.
Minikin now uses shared_ptr instead of MinikinRefCounted.

Bug: 28119474
Test: manually tested
Test: hwui_unit_tests passed.
Change-Id: Ie0564851a8a798af112679e15f7a07db000a977e
2017-02-27 11:15:19 +09:00
Matt Sarett
3a8ded5955 Merge "BitmapFactory: Remove legacy premultiply hacks" 2017-02-23 15:24:23 +00:00
Matt Sarett
327c7207a0 BitmapFactory: Remove legacy premultiply hacks
Skia now has a mode that will perform color correction,
but still do the premultiply on gamma encoded bytes.

Test: Flashed device, ran cts.

Change-Id: Ib1d1ea1074b5e6d1a49ecfc45e25552643dc04bc
2017-02-22 17:38:28 -05:00
Mike Reed
b216c21acd underline is now only tracked by android
Change-Id: I189c57dd47ad413b8964d7e5805dfd6d4af11982
2017-02-22 10:49:51 -05:00
TreeHugger Robot
a231eb1410 Merge "Implement getAxes() method." 2017-02-22 09:35:13 +00:00
TreeHugger Robot
0df2b375a3 Merge "BitmapFactory: Leave the P3 color space on wide gamut bitmaps" 2017-02-22 01:46:19 +00:00
Matt Sarett
6c382572e3 BitmapFactory: Leave the P3 color space on wide gamut bitmaps
Test: Built, flashed, cts

Change-Id: I242952cf690b821056dd5c13ec13f59120f573b5
2017-02-21 17:42:45 -05:00
Andreas Gampe
a7993241a9 Graphics: Make SurfaceTexture compile-time initializable
Ensure that all static initializer code can be executed in the
compiler. Move native field caching into the native method
registration function.

Bug: 34956610
Test: m
Test: Device boots (Pixel)
Change-Id: Icf68c8fbadcaaa133a152942a3a7ba7aba84a1df
2017-02-20 16:18:24 -08:00
Mathias Agopian
f1cb02e7b5 fallout of splitting rect.h out of libandroid.
- Main goal here: libandroid now links against 
libarect and export its includes.

- Also fix some wrongful makefiles that included 
headers without proper dependency list.

Test: built and booted device
Bug: 35164655
Change-Id: Iae17b966bba00fe53424486a75eebff468873787
2017-02-17 12:25:26 -08:00
Clara Bayarri
b44abf2901 Use weight & style data for fonts from xml source
Bug: 34916944
Test: manual tests
Change-Id: I1d6e1c4c52859c5e9d7a8b0a247e4d0581935833
2017-02-16 18:21:23 +00:00
Seigo Nonaka
7a18b79961 Implement getAxes() method.
getAxes() is necessary for calling hb_font_set_variations.

Test: None
Change-Id: Iec4759189b0653aa483ba85682d10b2b81beaab8
2017-02-13 18:33:28 +09:00
TreeHugger Robot
3b75a82306 Merge "Report bitmap config when decoding only metadata" 2017-02-10 21:52:30 +00:00
Romain Guy
e8d2ebb5c2 Report bitmap config when decoding only metadata
With the introduction of support for 16 bit images, bitmaps returned
by BitmapFactory may be using the RGBA_F16 configuration. Some apps
and libraries assume the returned configuration is always ARGB_8888
and make assumptions based on that to compute cache sizes, etc.

This changes extract the output config when BitmapFactory is invoked
with the inJustDecodeBounds option. Despite its name, this option
is already used (and documented!) to decode more than bounds as it
also decodes the MIME type.

Bug: 35108998
Test: CtsGraphicsTestCases
Change-Id: If71959751458816678e42b21ab26c889aba5dea0
2017-02-10 11:37:54 -08:00
Matt Sarett
89ddb1f164 Update framework to use new SkColorSpace API
Test: This compiles with SK_USE_LEGACY_NAMED_COLOR_SPACE
turned off.

Change-Id: Ie573f59e0aa475bab06b38589db3c6158ad82c5a
2017-02-10 13:32:09 -05:00
Seigo Nonaka
9ff994d988 Introduce set/getFontVariationSettings.
This is 2nd attempt of I249d464f8cdaa56017a987588b94ed685aadeb58.
The original CL was reverted due to conflicting with another CL submitted
before.
Nothing has changed except for following class name changes.

Here is the original commit message of reverted change.

This CL enables developers to specify axis values to the underlying
font collection. The specification of the font variation settings is
the same as the CSS font-variation-settings attribute in CSS working
draft as of 2016-11-30.

Code example: Here is an example to set width 100 and weight 1.5.

  TextView tv = (TextView) findViewById(R.id.textView);
  tv.setFontVariationSettings("'wdth' 100, 'wght' 1.5");

Bug: 33062398
Test: Manually done. Ran FrameworksGraphicsTests, CtsGraphicsTestCases
      and CtsWidgetTestCases

Change-Id: I9cdfbdecc87c995d805096883ef2652768c6c21e
2017-01-30 20:22:41 +09:00
Seigo Nonaka
8b48e62445 Follow minikin::FontFamily constructor signature change.
This is 2nd attempt of Id10ca97f6f6f5bbe4999c1ad2736423a204d6e87.
The root caus of crash is due touching null pointer in nUnrefFamily.
After above change, native object may not be created on error case.
In that case, nUnrefFamily can not be called. In addition to this issue
there is also memory leak on error case. This fixes it by introducing
abortCreation method.

Also this contains fix of layout lib breakage done by jgaillard@.
Originally submitted by Ic8872a43993bcb0a157c5e3f0ce423af9b47f606

Here is original commit message of reverted change.

minikin::FontFamily no longer has addFont function, instead it accept
vector of Fonts in its constructor. To follow this signature change,
holding minikin::Font instance in native and build minikin::FontFamily
instance in FontFamily.freeze() method.

Bug: 34042446
Bug: 28119474
Bug: 34378805
Test: hwui test has passed
Test: m layoutlib layoutlib-tests
Change-Id: Ic34ebaa8191273d4c9f49c43124f15a1da5f7b78
2017-01-24 15:10:29 +09:00
TreeHugger Robot
4a65687b85 Merge "Expose fonts.xml via public API with a service" 2017-01-23 19:57:23 +00:00
Clara Bayarri
04d72abde1 Expose fonts.xml via public API with a service
This change creates a new FontManagerService, in charge of providing
font management data. It exposes a public API to retrieve the
information in fonts.xml without accessing it directly. To do this,
it also refactors FontListParser's internal classes into a new public
FontConfig class holding all the font data.

getSystemFonts() returns all the available information in fonts.xml
as well as file descriptors for all the fonts. This allows us to
share the memory consumed by these files between all clients.

Bug: 34190490
Test: See attached CTS change in topic
Change-Id: I0e922f8bcc9a197a1988d04071eb485328d66fb7
2017-01-23 15:02:23 +00:00
Clara Bayarri
18e9f9f377 Expose Resources.getFont
Based on the work already done in aapt2, load a Font from a
resource id.

Test: WIP
Change-Id: Idc06bfbfd16452a328bfcc6ea9dcfb723b633f0c
2017-01-23 11:18:09 +00:00
Siyamed Sinir
c0d685b87a Revert "Follow minikin::FontFamily constructor signature change."
This reverts commit a0a4828614.

Bug: 34378805
Change-Id: Icbdbfbde2efe8eaebbe4334a679e3b3247057388
2017-01-20 02:01:25 +00:00
Siyamed Sinir
24fac986ec Merge "Revert "Introduce set/getFontVariationSettings."" 2017-01-20 01:59:52 +00:00
Siyamed Sinir
a3b9f2e3c6 Revert "Introduce set/getFontVariationSettings."
This reverts commit ba3028c1fc.

Bug: 34378805
Change-Id: I8250c87af5d65fb45789632580be4ae1b8711372
2017-01-20 01:13:23 +00:00
Ben Wagner
1a6cd84d64 Merge "Remove SkDevice.h includes." 2017-01-17 17:10:05 +00:00
Ben Wagner
c2d9470aa9 Remove SkDevice.h includes.
SkDevice.h is being removed from Skia. This removes these already unused
includes which mention this file.

Test: refactoring CL. Existing unit tests still pass.

Change-Id: I8340a5822ad2b75c54fe0dca1303ceab9bbee805
2017-01-13 17:03:13 -05:00
Rob Carr
1ce0793ab4 Merge "Expose SurfaceControl method to screenshot to GraphicBuffer." 2017-01-13 21:29:09 +00:00
TreeHugger Robot
e5bab865b3 Merge "Remove dependence on SkTRegistry" 2017-01-13 11:44:36 +00:00