113 Commits

Author SHA1 Message Date
Romain Guy
8c749f87d2 Fix texture corruption issue, faster re-upload of textures.
Bug #2950691

Change-Id: I57e2bc1d1a23e8683c25de7d09d6f5af2df59f41
2010-09-22 14:13:32 -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
b5ab4173e0 Fix positioning of 1 pixel wide lines (esp. non AA lines.)
Change-Id: Ic155cac72f351edae35dffdfbb236954f57ba7de
2010-09-17 15:36:56 -07:00
Romain Guy
c95c8d6bf8 Add support for non AA lines.
Change-Id: Id5200e94815404d62760437d0d2dbb0a9276c700
2010-09-17 15:31:32 -07:00
Romain Guy
31529ff791 Correctly free memory.
Change-Id: I08fcbfa7d27ae413e0a8e8ca6ea305c8530a72c1
2010-09-17 10:26:31 -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
bf434114cb Snap layer bounds to pixel boundaries.
Change-Id: I272ceebf469a119f01ea9d73cdd68519afdffa99
2010-09-16 14:40:17 -07:00
Romain Guy
b025b9c8b4 Better error handling in the OpenGL renderer.
Add a glGetError() check on every frame
Don't attempt to create textures larger than the maximum size allowed

Change-Id: Iee4afae16089406dbe8bf10fc93b674f1271a0ca
2010-09-16 14:16:48 -07:00
Romain Guy
6820ac8b14 Fix 9patch rendering.
Change-Id: Ic4c18ff483cca95fbabcb10843f7714efe488adb
2010-09-15 18:11:50 -07:00
Romain Guy
87a76578f7 Docs updates.
Change-Id: Iff395e1c6d81a484a2c4ad6e88357c0134971b78
2010-09-13 18:13:52 -07:00
Romain Guy
1c740bce8a Document the implementation of saveLayer().
The implementation is simple but tricky. Leave explanations to my
future self so that I don't invent a time machine to come back to
now and slap my self.

This change also simplifies the way the GL blending function is
chosen when compositing a layer. It reuses existing OpenGLRenderer
APIs and is easier to understand.

Change-Id: I1b9cf8c5d51e09836d85b8cf157a1c284aa65c59
2010-09-13 18:03:21 -07:00
Romain Guy
81ab046a11 Forgot the return value...
Change-Id: Iccf369a613c1cf83f3e948460c567291b084fad2
2010-09-13 17:32:34 -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
58ef7fbf16 Forces windows to draw the first time they show.
Change-Id: I239572ee49bc60f30d957f548104e75844859a93
2010-09-13 12:52:37 -07:00
Romain Guy
2bffd268f1 Fix text rendering issue with text scaling.
Change-Id: I1f3ae40025697e8f8ca0616ee6550fe215cadcc8
2010-09-12 17:59:13 -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
d90f23e24a Do not convert 8888 bitmaps to 565 when doing a copy.
Bug #2988077
This change keeps the 8888 format for new bitmaps and also keeps,
when possible, the opaque flag.

Change-Id: Ia61f2e89936916b329212a4c59a7d815c329f84e
2010-09-09 11:47:54 -07:00
Romain Guy
183f17e7eb A Path can exist in several cache entries.
Change-Id: I742f7425d2b6bef753ed3e04fb39ebb103b2dc00
2010-09-09 10:13:31 -07:00
Romain Guy
a2341a9f6a Purge Skia objects from GL caches as needed.
Change-Id: I754c671cf790ad5ae8bf047ad328034217da4ecc
2010-09-08 18:04:33 -07:00
Romain Guy
9aaa8269a3 Fix possible infinite loop when purging textures.
Change-Id: Ib05b398ae03e734da2dab0496df416fed4570b1c
2010-09-08 15:15:43 -07:00
Romain Guy
8aef54fa17 Add support for Canvas flags on save.
This is required for the rewrite of layers support.

Change-Id: I5c0867dcf5aeb0392c8d0fbab05febb0eaff70d9
2010-09-01 15:49:25 -07:00
Romain Guy
da8532c6f4 Add hooks for hardware accelerated WebView.
Change-Id: I907cdec8a67594f87749ac46bda85f04af5a2003
2010-08-31 11:50:35 -07:00
Romain Guy
b45c0c9774 Apply gamma correction to font rendering.
Change-Id: I1b05f40e356221b2a5eb9400e67d77ecd98ed6c4
2010-08-27 11:31:24 -07:00
Romain Guy
f6fcac7ce1 Fix passion build
Change-Id: I93322bd36a004ac5aa9a0409d22dbf36a2da1680
2010-08-24 18:17:31 -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
e9e7fd0813 Update OpenGLRenderer test to test opaque ARGB8888 bitmaps.
Change-Id: I7159825f4b1d6f5a1cd09ec091994801b52b6bda
2010-08-19 14:45:42 -07:00
Romain Guy
c4d8eb6fb7 Speedup TextView fades (no more layers required.)
Also fixes a crash in the drop shadows cache and improves
drop shadows caching.

Change-Id: I9c0208a49467f9201d786ae0c129194b8d423923
2010-08-18 20:48:33 -07:00
Romain Guy
8b55f37765 Fix drawing issues with layers.
Prior to this change layers would clip their content incorrectly. They would
also not apply alpha properly.

Change-Id: Id7b3aaa7dbdc51de68fe050e64458f68e40503fd
2010-08-18 17:10:07 -07:00
Romain Guy
1f8c9602ee Fix the build.
Change-Id: I8bd418ba21e3e3f68b793030398d1a5e933dfb19
2010-08-18 12:57:31 -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
0ba681bce1 Fix GC issue, fix local shader transformations.
Change-Id: I208bdf89815dcd18dcadd43df932a77362918435
2010-08-12 15:37:00 -07:00
Romain Guy
af28b51496 Better support for rotation and perspective matrices.
Change-Id: I56b5ae3321735ba5ee42aafc9bc0eb399b9e75b5
2010-08-12 14:34:44 -07:00
Romain Guy
959c91f7f7 Bunch of fixes.
Fixes memory leak, fixes multiple context support, fix 3d transforms.

Change-Id: I7462cfbc57857dbd4de4e76b9d4cba58a1bce77b
2010-08-11 19:35:53 -07:00
Romain Guy
98173a277f Delete shaders after a compile error. Also disable extra logging.
Change-Id: I9b1558b0feac3d9b2cca926feeaf73921664cc73
2010-08-11 16:40:25 -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
a48a1a87ba Fast text selection drawing.
Change-Id: I93fb1312b47bc05345defa9b6cfe47c0658bb329
2010-08-10 14:59:15 -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
1639351139 Make libhwui entirely optional.
The makefile variable USE_OPENGL_RENDERER must be set to true to compile
libhwui and the related code in the JNI layer.

This change also removes obsolete APIs from Canvas that must not be used
and would be confusing if left in. These APIs were remnants of our first
attempt at an OpenGL renderer for the view hierarchy and had not been
taken out before Android 1.0 was released.

Change-Id: I2475ff1307212bab26c926724f3c508681c7dae1
2010-08-08 17:45:07 -07:00
Romain Guy
9cccc2b9bd Enforce maximum texture size.
When an app tries to render a bitmap or path larger than the GPU's maximum
texture size, the drawing command is ignored and a warning is logged. This
change also makes texture drawing more robust by catching potential errors
during texture creation.

This change also fixes a crash in the FontRenderer. The destructor would
sometimes try to free an uninitialized array.

Change-Id: I95ae0939c52192d97b340aa02417bf6d0c962c57
2010-08-07 23:48:29 -07:00
Alex Sakhartchouk
8e3e359e59 Merge "Added drop shadow renderer to the font class." 2010-08-06 15:05:40 -07:00
Alex Sakhartchouk
f18136cb3c Added drop shadow renderer to the font class.
Change-Id: Id243abfbbb58e54f6a05f592a302984b5321e608
2010-08-06 14:49:04 -07:00