65 Commits

Author SHA1 Message Date
Xavier Ducrohet
63fd87113c LayoutLib: Misc rendering fixes.
- always set up the stroke. Paint may not have the proper
  style when drawing lines. stroke should still be setup.

- Fixed vertical linear gradient. Old code generated
  a gradient ratio of NaN

- Fixed alpha rendering when using shaders. In that
  case the alpha channel from the paint color should be
  used in conjunction with the shader.

- Fixed miter limit. Java expects the value to be multiplied
  by the stroke width

- Fixed support for drawing ALPHA_8 bitmaps. Java2D doesn't
  have bitmaps with only alpha channels, so we keep using
  ARGB bitmaps but when drawing them into a bitmap we erase
  the color information.

Change-Id: I4f04341fc843e3f7dadd1fdbf709b11a4f1e24b9
2010-12-21 10:43:18 -08:00
Xavier Ducrohet
d348b6eaa9 LayoutLib: support for Path and BitmapShader using delegates.
Also created delegates for all missing shader, xfermode
and patheffect classes. Moved the logic of the xfermode,
and patheffects that was in Canvas_Delegate into the
xfermode/patheffect classes, and added support (in all
3 clases) for knowing if the shader/xfermode/patheffect
is actually supported or not. Make use of fidelityWarning
in LayoutLog if they are not.
2010-12-21 10:43:18 -08:00
Romain Guy
b146b1214e Fix text shadow rendering issue.
Change-Id: Ic9eb0d38ad684d2f2c95a4f586f865db911cb872
2010-12-15 17:28:30 -08:00
Xavier Ducrohet
ec31a7f119 Create some layout files for HwAccelerationTest
The goal is use the app to test layout lib, so layout
files are needed, and custom views must be instantiable
(ie public)

Change-Id: I46bb3d8af6e4d7973d041aa618f1c7762efd93d0
2010-12-14 14:58:59 -08:00
Romain Guy
a957eea785 New, better line drawing implementation.
Bug #3207544
Bug #3225875

Change-Id: Ibdd1dfc64e01625d5c441f39eb0aa3ee647f6ff5
2010-12-08 19:06:58 -08:00
Romain Guy
5ec9924d24 Fix rendering issue with layers.
Change-Id: I1d511ab2707000762a942d32c300a9944ab38603
2010-11-03 16:19:08 -07:00
Romain Guy
8164c2d338 Don't change textures wrap modes on every draw.
Change-Id: If6d3f313778cc7f3e803a063338539c8b3e165e3
2010-10-25 18:03:28 -07:00
Romain Guy
e5ebcb0107 Fix clipping issue in StackView.
Change-Id: I7ec28f25c3993a2bd7ef6399ba1923839d239905
2010-10-15 13:57:28 -07:00
Romain Guy
14830948d0 Add 3D transforms support to all gradients.
Change-Id: I61409edd00dab3a11684a3f5e4f7df0afc734758
2010-10-07 15:07:45 -07:00
Romain Guy
e3095e0c1e Apply 3D transformations to gradient shaders.
This fixes only linear gradients. Sweep and radial gradients, as well as
bitmap shaders, will be fixed in a future commit.

Change-Id: I4eee4ff62e9bbf3b9339fc111a780167449ecfef
2010-10-06 16:57:29 -07:00
Romain Guy
469b1dbeaf Code cleanup and disable display lists for now.
Change-Id: I681213036b5279339cb96a016d1dfb15d74dafc8
2010-10-05 13:42:35 -07:00
Romain Guy
7975fb6d12 Apply bilinear filtering to text.
Change-Id: I2c81ad657ee2a11a2139e0b11ae3749db54c0749
2010-10-01 16:36:14 -07:00
Romain Guy
0bb5667b4e Fix INVALID_OPERATION error with layers rendering.
This change is a workaround for a driver bug that causes an INVALID_OPERATION
to be thrown on every glCopyTexSubImage() call. This change also adds a new
test for gradients local matrices.

Change-Id: I41b7437481026702d0a3a9677f099b4557c0a84e
2010-10-01 00:25:02 -07:00
Romain Guy
ddb80bebb0 Add support for circular gradients to the GL renderer.
This change also adds full support for local transformation matrices on
sweep and radial gradients.

Change-Id: Id8773bc0766575190e3f3d51984fc5e57b266c3f
2010-09-21 16:48:50 -07:00
Romain Guy
ee916f14cb Add support for SweepGradient in the GL renderer.
Change-Id: I7aa397ed4e34655ead9ba1f5b4ce087665e0f022
2010-09-20 17:54:17 -07:00
Romain Guy
759ea80dca Add support for drawLines(), with anti-aliasing
Change-Id: I16c0593c5671490909dec13a85df601e1428a1a6
2010-09-16 20:49:46 -07:00
Romain Guy
6820ac8b14 Fix 9patch rendering.
Change-Id: Ic4c18ff483cca95fbabcb10843f7714efe488adb
2010-09-15 18:11:50 -07:00
Romain Guy
8411f336c7 Fix rendering issue with layers intersecting the clip rect.
Change-Id: Icbe35194fa219ef13ce639d33631235f8d7df3d7
2010-09-13 17:27:57 -07:00
Romain Guy
8694230ff2 Optimize calls to glCopyTexImage2D().
Change-Id: I34ee87bd4472864f440916e03a2894fae24bbe4a
2010-09-12 13:02:16 -07:00
Romain Guy
f607bdc167 Correct implementation of saveLayer().
Change-Id: I5375126636913e0a84f2d6bbd0ebe40d2e4f2763
2010-09-12 12:24:12 -07:00
Romain Guy
a5aed0d589 Add support for advanced blend modes with the framebuffer.
This adds the ability to blend with the framebuffer using Darken,
Lighten, Add, Multiply, Overlay and Screen.

Change-Id: Iae01a53797d4ad39c373cba6ff2a42293129da1a
2010-09-09 14:42:43 -07:00
Romain Guy
53389bdcdf Correctly set the viewport on window resize.
Change-Id: Idec325264d85feda76d4cda00fa511aaac82cf64
2010-09-07 17:16:32 -07:00
Romain Guy
4299c0f242 Add test for gamma correction.
Change-Id: Id2a311bc116438d3627a943cb5fb1ba8dc121bb0
2010-08-27 16:56:50 -07:00
Romain Guy
fb8b763f76 Use only one GL context per process, share chaches.
Change-Id: Ieabaa25338d2f4b8d4fd90e7401ad6e7452eae11
2010-08-24 17:18:14 -07:00
Romain Guy
a80d32f7b6 Add support for textScaleX.
This will not look great because we render fonts using bitmaps, not
paths.

Change-Id: I01b87b81bfbdbfa28460a5d5309d38e2a65e77c4
2010-08-20 18:42:37 -07:00
Romain Guy
29378192f7 Test setTextScaleX()
Change-Id: Iafa421def64a8f9a83b320b6cf3cc5286515c355
2010-08-20 15:49:27 -07:00
Romain Guy
e9e7fd0813 Update OpenGLRenderer test to test opaque ARGB8888 bitmaps.
Change-Id: I7159825f4b1d6f5a1cd09ec091994801b52b6bda
2010-08-19 14:45:42 -07:00
Romain Guy
2542d19974 Layers were using an extra Snapshot causing extra clipping.
Bug #2919310

Change-Id: I72ccd44bba7a3f3db72f581aa96198b6226e4478
2010-08-18 11:47:12 -07:00
Romain Guy
8fb954263d Fix save()/restore() issues in the OpenGL renderer.
The save stack now behaves exactly like in Skia.

Change-Id: If7e642f41f2c8f693f6e8c26cba81507d466562e
2010-08-17 18:40:21 -07:00
Romain Guy
1d83e1981c Correctly set the viewport in layers.
Bug #2919295

Change-Id: I16ce79ab0d5747cb01c6c1abe531da3dfd93fb54
2010-08-17 11:37:00 -07:00
Romain Guy
0a41749953 Cleanup, better code reuse.
Change-Id: Ib86a7309ae579cce3b7cf464782c34e70a74c616
2010-08-16 20:26:20 -07:00
Romain Guy
1e45aae5de Add drop shadows.
Change-Id: Ic6a72409d4785968d1fbdff229f17ee5c00b240b
2010-08-13 19:41:14 -07:00
Romain Guy
48daa54d31 Add extra blending modes.
This change adds the following blending modes for shaders and color filters:
Add
Multiply
Screen
Overlay
Darken
Lighten

Change-Id: Iff22f5ce6041b43c71b1857d73013f5010ab3413
2010-08-10 21:42:40 -07:00
Romain Guy
a674ab74e3 Add support for text underline and strikethru.
Change-Id: I3a0e6643d7cafbdd06d9a908c8cf9347dcaba146
2010-08-10 17:26:42 -07:00
Romain Guy
61c8c9c5b2 Fix tons of bugs and add new text rendering support.
Change-Id: I326c66b10784006f6df2f12d38e120cef94cd0d7
2010-08-10 12:22:01 -07:00
Romain Guy
ba7186e082 Add 3d transformation test.
Change-Id: Ia163af802e5a320490196461a97d5f797b71abb4
2010-08-05 19:08:32 -07:00
Romain Guy
7fbcc0492f Add support for paths.
Rendering is implementing by rasterizing the paths into A8 textures.
This cna be extremely inefficient if the path changes often.

Change-Id: I609343f304ae38e0d319359403ee73b9b5b3c93a
2010-08-05 17:23:49 -07:00
Romain Guy
529b60a3b1 Add android:hardwareAccelerated to Activity.
Hardware acceleration can now be enabled/disabled locally on each activity
declared in the manifest. It can also be enabled/disabled directly on a
window through the WindowManager.LayoutParams.

Change-Id: I91dd0b26c4e7eb8cd7288e523ed6b7bda6d0990b
2010-08-04 10:55:46 -07:00
Romain Guy
db1938e0e6 Add support for ColorFilters.
Color filters are fully supported and can be used with shaders.

Change-Id: Id90ccf1c81cb462f2431f366f3f8f710d7971e04
2010-08-02 18:50:56 -07:00
Romain Guy
06f96e2652 Refactor Skia shaders handling.
With this change, Skia shaders can easily be applied to any mesh. This change also
supports ComposeShader. For instance, this can be used to blend a gradient and a
bitmap togehter and paint a string of text with the result.

Change-Id: I701c2f9cf7f89b2ff58005e8a1d0d80ccf4a4aea
2010-07-30 19:18:16 -07:00
Romain Guy
b82da65cb1 Fix improper clipping after a save()
Change-Id: I13426a67f20d77e2710bd500d82884098f4be97c
2010-07-30 11:40:21 -07:00
Romain Guy
ae5575b342 Fix gradients rendering and destructor crashes.
This changes binds all textures to GL_TEXTURE0, this will have
to be changed when combining shader capabilities.

Change-Id: I02df4f5ba41e9b01ffa52fd7c26b41477c7ed18f
2010-07-29 18:48:04 -07:00
Romain Guy
889f8d1403 Moved all the rendering code to the new shader generator.
The generator supports features that are not yet implement in the
renderer: color matrix, lighting, porterduff color blending and
composite shaders.

This change also adds support for repeated/mirrored non-power of 2
bitmap shaders.

Change-Id: I903a11a070c0eb9cc8850a60ef305751e5b47234
2010-07-29 14:37:42 -07:00
Romain Guy
e8e62a4a03 Add text alignment support to drawText().
This change also integrates better support for RTL text.

Change-Id: I6da8f5cf5dc28ca7cf1b22e27b0d853c919e8481
2010-07-23 18:55:21 -07:00
Romain Guy
09147fbdc8 Add support for text culling.
Change-Id: Ibf0adacdc5c64d40a8000b21d7cb0797d63efe29
2010-07-22 13:08:20 -07:00
Romain Guy
694b519ac6 Add text rendering.
Change-Id: Ibe5a9fa844d531b31b55e43de403a98d49f659b9
2010-07-21 21:33:20 -07:00
Romain Guy
c0ac193b94 Add support for linear gradients.
Change-Id: Id15329da065045b3f06fdaed615f33cd57608496
2010-07-19 18:44:05 -07:00
Romain Guy
d27977d1a9 Add support for BitmapShader.
This change also fixes an issue with the clip and layers.

Change-Id: I5fd9832098d8cf7ae8eb781ff9bffe7defaea279
2010-07-15 14:44:42 -07:00
Romain Guy
3d58c03de0 Do not apply transforms when using drawColor().
This fixes an issue in the way the clip transformations were applied.

Change-Id: I91e7b5d15baf244d1280e48938282bb33609081d
2010-07-14 16:35:43 -07:00
Romain Guy
266e05179c Prevent crash in ListView when changing cache hint. 2010-07-14 11:08:02 -07:00