5d923200846ed59e813373bde789d97d4ccc40b5 |
22-Aug-2013 |
Romain Guy <romainguy@google.com> |
Second attempt at avoiding infinite loop in PathCache::trim() Bug #10347089 Change-Id: I70f5a3933e848632473acc6636c88be5dc6ac430
est/hwui/PathsCacheActivity.java
|
b7b93e00893f5c690a96bd3e0e10583bc5721f83 |
02-Aug-2013 |
Romain Guy <romainguy@google.com> |
Fix region clipping bugs See external bug #58344 Change-Id: Iecd6c41fc8076cd76add2335d3442a6dd8878f12
est/hwui/ClipRegion2Activity.java
|
8018c8db8221aa604b3c083e09d173cc27e53d83 |
30-Jul-2013 |
Romain Guy <romainguy@google.com> |
Add path ops API Path ops can be used to combine two paths instances in a single path object. The following operations can be used: - Difference - Reverse difference - Union - XOR - Intersection To use the API: Path p1 = createCircle(); Path p2 = createRect(); Path result = new Path(); result.op(p1, p2, Path.Op.DIFFERENCE); This code will subtract the rectangle from the circle and generate the resulting path in "result." Change-Id: Ic25244665b6691a7df0b0002a09da73d937b553b
est/hwui/PathOpsActivity.java
|
f69913056b8c6000ff0306573a97971702e8d35a |
06-Jun-2013 |
Romain Guy <romainguy@google.com> |
Remove unnecessary allocations Change-Id: Ia561a0a312ca2737d5afa742184f5392bb2f29a3
est/hwui/ListActivity.java
|
3b748a44c6bd2ea05fe16839caf73dbe50bd7ae9 |
18-Apr-2013 |
Romain Guy <romainguy@google.com> |
Pack preloaded framework assets in a texture atlas When the Android runtime starts, the system preloads a series of assets in the Zygote process. These assets are shared across all processes. Unfortunately, each one of these assets is later uploaded in its own OpenGL texture, once per process. This wastes memory and generates unnecessary OpenGL state changes. This CL introduces an asset server that provides an atlas to all processes. Note: bitmaps used by skia shaders are *not* sampled from the atlas. It's an uncommon use case and would require extra texture transforms in the GL shaders. WHAT IS THE ASSETS ATLAS The "assets atlas" is a single, shareable graphic buffer that contains all the system's preloaded bitmap drawables (this includes 9-patches.) The atlas is made of two distinct objects: the graphic buffer that contains the actual pixels and the map which indicates where each preloaded bitmap can be found in the atlas (essentially a pair of x and y coordinates.) HOW IS THE ASSETS ATLAS GENERATED Because we need to support a wide variety of devices and because it is easy to change the list of preloaded drawables, the atlas is generated at runtime, during the startup phase of the system process. There are several steps that lead to the atlas generation: 1. If the device is booting for the first time, or if the device was updated, we need to find the best atlas configuration. To do so, the atlas service tries a number of width, height and algorithm variations that allows us to pack as many assets as possible while using as little memory as possible. Once a best configuration is found, it gets written to disk in /data/system/framework_atlas 2. Given a best configuration (algorithm variant, dimensions and number of bitmaps that can be packed in the atlas), the atlas service packs all the preloaded bitmaps into a single graphic buffer object. 3. The packing is done using Skia in a temporary native bitmap. The Skia bitmap is then copied into the graphic buffer using OpenGL ES to benefit from texture swizzling. HOW PROCESSES USE THE ATLAS Whenever a process' hardware renderer initializes its EGL context, it queries the atlas service for the graphic buffer and the map. It is important to remember that both the context and the map will be valid for the lifetime of the hardware renderer (if the system process goes down, all apps get killed as well.) Every time the hardware renderer needs to render a bitmap, it first checks whether the bitmap can be found in the assets atlas. When the bitmap is part of the atlas, texture coordinates are remapped appropriately before rendering. Change-Id: I8eaecf53e7f6a33d90da3d0047c5ceec89ea3af0
est/hwui/AssetsAtlasActivity.java
|
d4289922ce772ed8e170a27d1c9521672b315698 |
19-Mar-2013 |
Romain Guy <romainguy@google.com> |
Apply ComposeShader's local matrix to children Change-Id: Idf9b8e7d7b30f8fcd8ba1fd4bfe8991e9ca148e2
est/hwui/MoreShadersActivity.java
|
c46d07a29e94807e768f8b162ce9f77a88ba6f46 |
16-Mar-2013 |
Romain Guy <romainguy@google.com> |
Merge all shapes/paths caches to PathCache This change will greatly simplify the multi-threading of all shape types. This change also uses PathTessellator to render convex paths. Change-Id: I4e65bc95c9d24ecae2183b72204de5c2dfb6ada4
est/hwui/ShapesActivity.java
|
5dc7fa709646799a5207a5d217f70aa02bf4a3aa |
12-Mar-2013 |
Romain Guy <romainguy@google.com> |
Add TaskManager API This API can be used to run arbitrary tasks on a pool of worker threads. The number of threads is calculated based on the number of CPU cores available. The API is made of 3 classes: TaskManager Creates and manages the worker threads. Task Describes the work to be done and the type of the output. A task contains a future used to wait for the worker thread to be done computing the result of the task. TaskProcessor The processor dispatches tasks to the TaskManager and is responsible for performing the computation required by each task. A processor will only be asked to process tasks sent to the manager through the processor. A typical use case: class MyTask: Task<MyType> class MyProcessor: TaskProcessor<MyType> TaskManager m = new TaskManager(); MyProcessor p = new MyProcessor(m); MyTask t = new MyTask(); p.add(t); // Waits until the result is available MyType result = t->getResult(); Change-Id: I1fe845ba4c49bb0e1b0627ab147f9a861c8e0749
est/hwui/PathsCacheActivity.java
|
ca89e2a68703bd428e8b66547d033a6ed35b3595 |
09-Mar-2013 |
Romain Guy <romainguy@google.com> |
Precache paths from a worker thread Change-Id: I3e7b53d67e0e03e403beaf55c39350ead7f1e309
est/hwui/PathsCacheActivity.java
|
19d4dd8599cb870923ab349d2ab96cacffd9c6f5 |
04-Mar-2013 |
Romain Guy <romainguy@google.com> |
Take text scale/skew into account only when rendering into a layer 3D rotations can undo scale/skew transforms; since FreeType only accepts 2x2 matrices we can end up generating very large glyphs that are drawn at a 1:1 scale on screen. For instance, if the current transform has a scale of 2000 set on both X and Y axis and a perspective Z factor set to Z, the actual scale factor on screen ends up being 1. We would however generate glyphs with a scale factor of 2000 causing the font renderer to blow up. Change-Id: Ia5c3618d36644e817825cb9c89e2f53aece2074e
est/hwui/Rotate3dTextActivity.java
|
a4adcf0239039eb8f005be252409901c41b28839 |
28-Feb-2013 |
Romain Guy <romainguy@google.com> |
Support 3D rotations when drawing text If a perspective transform is set on the Canvas, drawText() should not attempt to rasterize glyphs in screen space. This change uses the old behavior instead (i.e. rasterize the glyphs at the native font size and apply the transform on the resulting mesh.) This change also adds an optimization: empty glyphs (spaces) do not generate vertices anymore. This saves a lot of vertices in text heavy applications such as Gmail. Change-Id: Ib531384163f5165b5785501612a7b1474f3ff599
est/hwui/Rotate3dTextActivity.java
|
29ce8c98ff1cd2fdf6ccc5127aab466d52367b61 |
28-Feb-2013 |
Romain Guy <romainguy@google.com> |
Reorganize OpenGL renderer tests The new UI works just like ApiDemos. The label of the activities declared in the manifest defines where they go in the UI. For instance Draw/Circles will create an entry called Draw in the first screen of the test app. Click the "Draw" item will launch a new activity containing an item called "Circles". Change-Id: I98a4442ee3d992598af440b2078ae1925214da20
est/hwui/HwTests.java
|
c74f45a334f0e3725c23cdd270cbcb0efac4ea75 |
27-Feb-2013 |
Romain Guy <romainguy@google.com> |
Properly scale text This change does not apply to drawPosText() and drawTextOnPath() yet. Prior to this change, glyphs were always rasterized based on the font size specified in the paint. All transforms were then applied on the resulting texture. This creates rather ugly results when text is scaled and/or rotated. With this change, the font renderer will apply the current transform matrix to the glyph before they are rasterized. This generates much better looking results. Change-Id: I0141b6ff18db35e1213e7a3ab9db1ecaf03d7a9c
est/hwui/ScaledTextActivity.java
|
ff316ec7a76e52572a2e89b691e6b3bba0cafba3 |
14-Feb-2013 |
Romain Guy <romainguy@google.com> |
Implement support for drawBitmapMesh's colors array Change-Id: I3d901f6267c2918771ac30ff55c8d80c3ab5b725
est/hwui/BitmapMeshActivity.java
|
3c099c42fd7ead1429076055990ae39b72c904f4 |
07-Feb-2013 |
Romain Guy <romainguy@google.com> |
Fix Snapshot::resetClip to also reset the clip region Change-Id: I979151e73f64ff9d45f8a5232d8700361b09fbc7
est/hwui/ClipRegion3Activity.java
|
b969a0de65730b071d846f8302e751e2637e6dbe |
05-Feb-2013 |
Romain Guy <romainguy@google.com> |
Add support for non-antialiased text Change-Id: I17c073955ab94abc9b409e5fcfbc675faa07c5ba
est/hwui/NoAATextActivity.java
|
c3fedafc5f50100219449125a000e3138f6fb987 |
30-Jan-2013 |
Romain Guy <romainguy@google.com> |
Fix graphical corruption on QCOM GPU Bug #7146141 The GL_QCOM_tiled_rendering extension requires careful use of start/endTiling when attaching a renderbuffer dynamically. Change-Id: I20036683ed3909ffaf40cc3d57a25257e35b6fa2
est/hwui/ClipRegionActivity.java
|
2055abaa0a590c35e27e1ae2e7d7cfccdfb98b59 |
19-Jan-2013 |
Romain Guy <romainguy@google.com> |
Allow layers with a stencil buffer to be resized on the fly Bug #7146141 This change moves the resizeLayer() from LayerCache (where it should never have been anyway) to Layer. This makes a little more sense. Change-Id: I8b2f9c19c558e738405a58b9e71ec5799fc6be88
est/hwui/ViewLayersActivity5.java
|
8ce00301a023eecaeb8891ce906f67b513ebb42a |
16-Jan-2013 |
Romain Guy <romainguy@google.com> |
Implement clipRect with a transform, clipRegion & clipPath Bug #7146141 When non-rectangular clipping occurs in a layer the render buffer used as the stencil buffer is not cached. If this happens on a View's hardware layer the render buffer will live for as long as the layer is bound to the view. When a stencil buffer is required because of a call to Canvas.saveLayer() it will be allocated on every frame. A future change will address this problem. If "show GPU overdraw" is enabled, non-rectangular clips are not supported anymore and we fall back to rectangular clips instead. This is a limitation imposed by OpenGL ES that cannot be worked around at this time. This change also improves the Matrix4 implementation to easily detect when a rect remains a rect after transform. Change-Id: I0e69fb901792d38bc0c4ca1bf9fdb02d7db415b9
est/hwui/ClipRegion2Activity.java
est/hwui/ClipRegionActivity.java
|
735738c4ddf3229caa5f6e634bf591953ac29944 |
03-Dec-2012 |
Romain Guy <romainguy@google.com> |
Preliminary Support for region clipping Region clipping, using Canvas.clipPath or Canvas.clipRegion, requires a stencil buffer to be always present. In addition, extra wiring is required in JNI and display lists. This change only adds the necessary JNI/C++ APIs and some extra plumbing to start the real work on properly supporting region clipping. A new debug define called DEBUG_CLIP_REGIONS can be used to draw the current clip region. It is off by default, as is region clipping. The default implementation of clipPath() and clipRegion(), now in native, mimics the previous Dalvik implementation to prevent regressions. Change-Id: I7903e7cfd7412b9b9b622566d4dbfce7bdcec00c
est/hwui/ClipRegionActivity.java
|
e3a9b24b5e3f9b2058486814a6d27729e51ad466 |
08-Jan-2013 |
Romain Guy <romainguy@google.com> |
Add plumbing for better text scaling Fonts are now described by a transform matrix. This lead to switching from a vector to a hashmap. This change therefore adds new comparators and hash computations to Font. Change-Id: I2daffa7d6287c18554c606b8bfa06640d28b4530
est/hwui/ScaledTextActivity.java
est/hwui/TextOnPathActivity.java
|
5b4628aeeaa0462cd99256d28b636c06b1845930 |
08-Jan-2013 |
Romain Guy <romainguy@google.com> |
Add more tests for libhwui These tests verify the behavior when scaling paths and text Change-Id: I0f3259175bcee93186e30296759996e0447cba99
est/hwui/ScaledPathsActivity.java
est/hwui/ScaledTextActivity.java
|
886b275e529e44a59c54b933453d9bc902973178 |
04-Jan-2013 |
Romain Guy <romainguy@google.com> |
Properly support ALPHA_8 bitmaps in all drawBitmap() methods Change-Id: I869993c59e0a0d76f369c09acbae711753908f48
est/hwui/Alpha8BitmapActivity.java
|
1b85122bd22c4528679ae8bd67077dfc2fdf1847 |
17-Oct-2012 |
Romain Guy <romainguy@google.com> |
Merge "Add API to enable mipmaps on Bitmap Bug #7353771" into jb-mr1-dev
|
713e1bb9df6bdfc21bd5c40d1a6ecf6c822a4be5 |
17-Oct-2012 |
Romain Guy <romainguy@google.com> |
Add API to enable mipmaps on Bitmap Bug #7353771 This API can be used when scaling large images down to a small size to get nicer looking results. Change-Id: If09087eed36077eee5355f6047a3ca67747d7d9e
est/hwui/MipMapActivity.java
|
a92bb4dc9605c86b8773c929412af2dc242b1fa8 |
16-Oct-2012 |
Romain Guy <romainguy@google.com> |
Support clipping in Canvas.drawBitmapMesh() Bug #7354162 Change-Id: Ifd1d0b365e8a4d88e0ff0629c9ee13f27e1a7331
est/hwui/BitmapMeshActivity.java
|
5c2591e6eff3233c7f9c5bbae0dd20c1320f0854 |
23-Sep-2012 |
Fabrice Di Meglio <fdimeglio@google.com> |
Merge "Fix bug #7206086 NumberPicker widget should use locale digits" into jb-mr1-dev
|
d88e3054d08b1f821bb2e27b2647aa16a60d8742 |
21-Sep-2012 |
Fabrice Di Meglio <fdimeglio@google.com> |
Fix bug #7206086 NumberPicker widget should use locale digits - fix for having the TwoDigitFormatter being able to be recreated if the locale is changed - accept now also the Arabic and Persian digits Change-Id: Ifbf7e274d971008f4a5782402d4b76d9472b68fc
est/hwui/DatePicker.java
|
57b5268708c3b974296c7d4e58a02a957979224a |
21-Sep-2012 |
Romain Guy <romainguy@google.com> |
Optimize tiling management Bug #7186819 Change-Id: Iebc42a6e9c96ad5605fbbe1539aa887695d2e829
est/hwui/MultiLayersActivity.java
|
2b7028eabac80cec170572bc0e945a1d4224e595 |
20-Sep-2012 |
Romain Guy <romainguy@google.com> |
Add support for QCOM_tiled_rendering Bug #7186819 This optional OpenGL extension can be used by tiled renderers to optimize copies from main memory to tiles memory. Change-Id: Id4a5d64e61ad17f50e773e8104b9bf584bb65077
est/hwui/TextFadeActivity.java
est/hwui/ViewLayersActivity.java
|
189ff17caa29e51e3438af59fb33c5cb513018bd |
19-Sep-2012 |
Romain Guy <romainguy@google.com> |
Add test for layer updates optimizations Optimizations are following. Change-Id: I120e1d0c08d8068fcac46515f37a4ae510e5f3a3
est/hwui/MultiLayersActivity.java
|
4aacf93d40b4be82aa35bf164d6fd6536c8b2a50 |
08-Sep-2012 |
Romain Guy <romainguy@google.com> |
Merge "Fix memory corruption in LayerRenderer::copyLayer" into jb-mr1-dev
|
e49d7ec36132f33b7c9e2c044ab9dd3585aa3747 |
08-Sep-2012 |
Romain Guy <romainguy@google.com> |
Fix memory corruption in LayerRenderer::copyLayer The pixel store pack alignment was not set for the source texture, causing a write to occur outside of the destination bitmap's bounds. Change-Id: Iaa5767acf7b5943fbc2765c3810a142f06b1a796
est/hwui/TJunctionActivity.java
|
75040f8a7727f18bb33da23696a32a0760926ff2 |
07-Sep-2012 |
Chris Craik <ccraik@google.com> |
Handle different x, y scales in drawLines AA path bug:7114630 Fixes different x, y scales, and fixes boundaryWidthProportion to be from center, not edge. Also adds drawLine tests that previously drew blurry. Change-Id: I2b648a60361ad3931eac67647b9b27909525ee1e
est/hwui/LinesActivity.java
|
378d131e65348d199db36c21ba7156542bbf0045 |
06-Sep-2012 |
Chris Craik <ccraik@google.com> |
Merge "Varying-based AA rect drawing" into jb-mr1-dev
|
6ebdc114e0d72137394f02bc8ffe9d7a782a65c4 |
01-Sep-2012 |
Chris Craik <ccraik@google.com> |
Varying-based AA rect drawing Instead of calculating opacity from relative position in the shader, use a shader varying to do this computation for us. bug:5045101 Also adds a test to HwAccelerationTest to show incorrect antialiasing in scaled drawAARect / boundarySize calculation. Change-Id: Icdc41acb01dc10ce354834f8389a5aed2f439162
est/hwui/ColoredRectsActivity.java
|
9fc4b356a4552336f661bf4dfaaa19a251194cdb |
04-Sep-2012 |
Romain Guy <romainguy@google.com> |
Add new hw acceleration test Change-Id: Id2b94286cf62ab77d8c843cffaba09b3070a6332
est/hwui/PathOffsetActivity.java
|
e816baea651476aca4407200d4a5e629b9ab8dfa |
09-Aug-2012 |
Chet Haase <chet@google.com> |
Optimize interactions with glyph cache There are two fixes here: - precaching: instead of caching-then-drawing whenever there is a new glyph, we cache at DisplayList record time. Then when we finally draw that DisplayList, we just upload the affected texture(s) once, instead of once per change. This is a huge savings in upload time, especially when there are larger glyphs being used by the app. - packing: Previously, glyphs would line up horizontally on each cache line, leaving potentially tons of space vertically, especially when smaller glyphs got put into cache lines intended for large glyphs (which can happen when an app uses lots of unique glyphs, a common case with, for example, chinese/japanese/korean languages). The new approach packs glyphs vertically as well as horizontally to use the space more efficiently and provide space for more glyphs in these situations. Change-Id: I84338aa25db208c7bf13f3f92b4d05ed40c33527
est/hwui/GlyphCacheActivity.java
|
320d46bf844b84351cb80c5d4a4768d86447ac81 |
09-Aug-2012 |
Romain Guy <romainguy@google.com> |
Reduce gradients textures size whenever possible Change-Id: Ifd58625ee62edac3b5d20b77553cb98b6fa2b46e
est/hwui/TextPathActivity.java
|
33fa1f774c8e7289fd7c39fbc2c65b9361f2c2c4 |
08-Aug-2012 |
Romain Guy <romainguy@google.com> |
Draw an empty border around glyphs to avoid sampling issues Bug #6942209 The font renderer was preserving a 1 px border around each glyph to ensure bilinear filtering would work nicely. Unfortunately, this border was not set to 0 when glyphs were added in the cache to replace old evicted glyphs. Change-Id: Ib85afca7ebad5cb63f960dc0e87ae162333dbfe8
est/hwui/TextActivity.java
|
211efea7376371ee755edd2ad03e83ef6eea464e |
01-Aug-2012 |
Romain Guy <romainguy@google.com> |
Add dithering to gradients Change-Id: Ic1208855bde3a254eca2fd7cef43e0f1318ce419
est/hwui/GradientStopsActivity.java
|
42e1e0d482d774cf18a55773e434f02edb9e4462 |
30-Jul-2012 |
Romain Guy <romainguy@google.com> |
Improve gradients Avoid using textures for common gradients (two stops from 0.0 to 1.0) Change-Id: Iff55d21b126c8cfc4cfb701669f2339c8f6b131a
est/hwui/GradientStopsActivity.java
|
786fc93d71b833ab6b02b0c7ea5e30f25cceeedf |
25-Jul-2012 |
Romain Guy <romainguy@google.com> |
Make HardwareRenderer able to target generic Surface objects Change-Id: I4b7199a1eb30e0df354ae12c4819adc69db5df40
est/hwui/GLTextureViewActivity.java
|
98ba89492a477114148fcb1f89675e41679ca7cc |
21-Jul-2012 |
Romain Guy <romainguy@google.com> |
Make gradients look slightly better Change-Id: Ib12c628a88b9ec6af1214ce6e5cb14cfde40485e
est/hwui/BigGradientActivity.java
|
ba64974141bb04d35759c7a8f1741d23c172f9a5 |
29-Jun-2012 |
Michael Jurka <mikejurka@google.com> |
Removing setChildrenLayersEnabled Change-Id: I88d8228eadb59160648f2c4e131fcd85945f2109
est/hwui/ViewLayersActivity5.java
est/hwui/ViewLayersActivity6.java
|
4c43f66d06fe7f75ad6f9c860cf0936b8ee36082 |
17-May-2012 |
Romain Guy <romainguy@google.com> |
Fix TextureView OpenGL sample The sample was doing something dumb: instead of binding the texture unit to the shader's sampler, it was binding the texture name. Oops. Change-Id: I13450dacbbd2dad362a2573aebb95e8eb87b25f0
est/hwui/GLTextureViewActivity.java
|
e651cc6239616a202f6e96ebc2ed93b4b8b3627c |
15-May-2012 |
Romain Guy <romainguy@google.com> |
Remove all Dalvik allocations from Cavnas.drawBitmap(int[], ...) Change-Id: Ie28538a2104d21154fdc78a56525e7403f08287d
est/hwui/BitmapMutateActivity.java
|
d34dd71800d9a1077e58c3b7f2511c46848da417 |
03-May-2012 |
Chet Haase <chet@google.com> |
Fix hang/crash in native path code An optimization for paths is to only create a texture for the original native Path object, and have all copies of that object use that texture. This works in most cases, but sometimes that original path object may get destroyed (when the SDK path object is finalized) while we are still referencing and using that object in the DisplayList code. This causes undefined errors such as crashes and hanging as we iterate through the operations of a destroyed (and garbage-filled) path object. The fix is to use the existing ResourceCache to refcount the original path until we are done with it. Issue #6414050 Analytics Dogfood App crashes reliably on Jellybean Change-Id: I5dbec5c069f7d6a1e68c13424f454976a7d188e9
est/hwui/PathDestructionActivity.java
|
810a8676df1d504da17bad80c7bd6638bdd97711 |
02-May-2012 |
Chet Haase <chet@google.com> |
Corrects invalidation logic for layered views A bug in the invalidation logic meant that changes to a view would not cause parents in the view hiearchy that were set to have a layer (e.g., View.LAYER_TYPE_HARDWARE) to get invalidated properly. So even though the child view was all set to recreate its display list according to the property change, the layer in the tree above it would stay as-is, meaning that the change would not show up on the screen. Issue #5887530 DropTarget text does not change color with the icon Change-Id: Ie6eac4f406d172cb437822d9fe76340ab2afaf1c
est/hwui/ViewLayerInvalidationActivity.java
|
0a1cbc5f7df7e1294b5a4e37f01b76fca5899324 |
04-Apr-2012 |
Romain Guy <romainguy@google.com> |
Merge "New libhwui test activity"
|
2946445b560fde5e63df17f5a2db60c8349fe532 |
04-Apr-2012 |
Romain Guy <romainguy@google.com> |
New libhwui test activity Change-Id: I0ce4bc665f117d7c0ed47670ceb4ed6f9b54d85c
est/hwui/DatePicker.java
est/hwui/DatePickerActivity.java
|
db8c9a6a4d9bf8c39f834b25611926caf21380f6 |
22-Mar-2012 |
Chet Haase <chet@google.com> |
Optimization of alpha with DisplayList properties Some views (such as ImageView and TextView) handle non-opaque alpha values directly. This was originally an optimization, but we can handle it faster in many cases without this optimization when DisplayList properties are enabled. Basically, if a view has non-overlapping rendering, we set the alpha value directly on the renderer (the equivalent of setting it on the Paint object) and draw each primitive with that alpha value. Doing it this way avoids re-creating DisplayLists while getting the same speedup that onSetAlpha() used to get pre-DisplayList properties. Change-Id: I0f7827f075d3b35093a882d4adbb300a1063c288
est/hwui/ViewPropertyAlphaActivity.java
|
9420abd56a2af7ddbeb70562b79d61b2dca8c5a1 |
30-Mar-2012 |
Chet Haase <chet@google.com> |
Re-enable DisplayList properties. Re-enabling DisplayList properties last week caused some app errors due to the way that some transforms were being handled (specifically, those coming from the old Animations and ViewGroup's childStaticTransformation field). This change pushes *all* transform/alpha data from View.draw() into the view's DisplayList, making DisplayLists more encapsulated (and correct). Change-Id: Ia702c6aae050784bb3ed505aa87553113f8a1938
est/hwui/TransformsAndAnimationsActivity.java
|
9777173eb6c9eb97c7921c8288ebc65e3ab3ce6f |
29-Feb-2012 |
Romain Guy <romainguy@google.com> |
Full implementation of Canvas.drawPath() Change-Id: I23223b89770a0cd2b4762365bead9bfddb094290
est/hwui/TextOnPathActivity.java
|
03d58520c3eb6bb7efb7235bfd957550533d6725 |
25-Feb-2012 |
Romain Guy <romainguy@google.com> |
More infrastructure for Canvas.drawTextOnPath Change-Id: Iff42b24e342650d06fa4e2fa9db6c28da820ff01
est/hwui/TextOnPathActivity.java
|
325740fb444af8fc7fb0119b2e30ce322c2ae134 |
25-Feb-2012 |
Romain Guy <romainguy@google.com> |
Add hooks to implement Canvas.drawTextOnPath() in GL Change-Id: I165c9e05facf5365aa6850605688e538640c7fcc
est/hwui/TextOnPathActivity.java
|
4bcb7467a174ed03a67b0c62950c555813ddf00d |
24-Feb-2012 |
Romain Guy <romainguy@google.com> |
Only recreate path textures when necessary When a drawPath command is recorded in a display list, a copy of the source path is made to preserve against possible modifications of the said source path. Copies are discarded when a display list is cleared, which usually happens on invalidate(). This means that even if a path is never modified, the texture generated to draw it on screen is destroyed every time an invalidate() is issued. This change fixes this problem by introducing a reference to the source path in the copy. If both the copy and the source path have the same genID, they are the same path and can share the same texture. Change-Id: I34849311c183e06336a1391d2d1568a087f973f6
est/hwui/PathsCacheActivity.java
|
96ebc6b5097ab73eef45e094241e444f4c21bfcc |
22-Feb-2012 |
Romain Guy <romainguy@google.com> |
Only copy paths, paints and shaders when we need to. Change-Id: Iba7a9c92c865f698821b6ff7bc4f502659642ac1
est/hwui/PathsCacheActivity.java
|
c27cc01f6abf8564dc9b7b6cd7f2a12a347f725d |
16-Feb-2012 |
Romain Guy <romainguy@google.com> |
Prevent AutoCompleteTextView from opening a popup when it shouldn't Bug #5553515 The People app is forcing ACTV to show the IME which had the side effect of showing the drop down popup. ACTV was unfortunately not ready to show the drop down if the filtering resulted in no results. Doing so was putting ACTV in a weird state that in turn caused a window to be leaked and really bad behavior to occur in the lower graphics levels. Change-Id: I2ff146d5ae4e4a28edf6ea17039c9f8fdb710e4f
est/hwui/TextActivity.java
|
967e2bf3ac8943a8e8a374bf86021915445cda67 |
08-Feb-2012 |
Romain Guy <romainguy@google.com> |
Preliminary support for clipRect(Rect, Op) This adds basic support for clip regions. It is currently disabled at compile time. Enabling clip regions will require setting up a stencil buffer. Change-Id: I638616a972276e38737f8ac0633692c3845eaa74
est/hwui/ClipRegionActivity.java
|
5ff9df658230d49e42c43586997a02d8e4dd417e |
24-Jan-2012 |
Romain Guy <romainguy@google.com> |
Add full support for Canvas.setDrawFilter() Change-Id: I0ad35d0603c4eeda469014803be14c1dcdde918c
est/hwui/PaintDrawFilterActivity.java
|
f9d9c065ed75f1196316a9a31f92309f602cef76 |
20-Jan-2012 |
Romain Guy <romainguy@google.com> |
Deprecate unused APIs Change-Id: I0107e246b632dda96b8b025217936954f1f46283
est/hwui/MatrixActivity.java
|
671d6cf460531825a321edb200523d0faa7792c9 |
18-Jan-2012 |
Romain Guy <romainguy@google.com> |
Full support for Canvas.drawPosText This also introduces a small optimization when rendering text. Change-Id: Iff620ac97bf878eaac406bccc6daa07052c93890
est/hwui/PosTextActivity.java
|
62b6eaa7f3a8111311a7ee097f278eb55865a499 |
17-Jan-2012 |
Romain Guy <romainguy@google.com> |
Fix text encoding when drawing with drawPosText in software Change-Id: I0cd8ee526189c38c50953a1a08b50e0b31c55d8c
est/hwui/PosTextActivity.java
|
5e7c469c7a3039af7696789a797f8d91a45227eb |
21-Oct-2011 |
Romain Guy <romainguy@google.com> |
Make sure 9patches are not filtered when not necessary Bug #5383406 Change-Id: I061c8069a4d9f4eaf45671283710b564639eeb32
est/hwui/ThinPatchesActivity.java
|
a9dc86b21defc26db0d71f276aff5c3af0b62ff5 |
11-Oct-2011 |
Romain Guy <romainguy@google.com> |
Correctly apply transforms when getting a TextureView's bitmap Bug #5439406 Change-Id: I271a9a2e38f5b3600dc158f8f442a6b0893f472b
est/hwui/GLTextureViewActivity.java
est/hwui/TextureViewActivity.java
|
2a9fa89643ce796ee6dc7edae2742b291b6c5f40 |
29-Sep-2011 |
Romain Guy <romainguy@google.com> |
Don't build display lists for views with a layer. This could cause the draw() code of views to be invoked too often or worse, called with the wrong canvas. For instance, a view backed by a software layer could get its draw() method called to record a display list. Using a software layer is the recommended way to use drawing operations not supported in hardware. Since we would sometimes call the draw() method with the hardware backend anyway, the app could crash by executing an unsupported operation. Change-Id: Ib5f9a3a4c6f3efff5e0162ecd73d2dffe06e30a6
est/hwui/DisplayListLayersActivity.java
|
407ec78b828173257b0c5dae221649a4ccd8b058 |
25-Aug-2011 |
Romain Guy <romainguy@google.com> |
Add OpenGL backend to ImageWallpaper Bug #5204874 Currently disabled. Change-Id: I5e7b35dce2981b0691f107e39c6394b260466543
est/hwui/GLTextureViewActivity.java
|
302a9df1d50373c82923bb84ff665dfce584fb22 |
16-Aug-2011 |
Romain Guy <romainguy@google.com> |
Add an API to set the transform on a TextureView's surface texture. Bug #5156689 Change-Id: I635a625885c9b832a60d44ece0de7613ceb84109
est/hwui/TextureViewActivity.java
|
402f05530352f34d5320c2d23be43c274d97c4e2 |
10-Aug-2011 |
Grace Kloba <klobag@google.com> |
Add a return value for SurfaceTextureListener#onSurfaceTextureDestroyed. If returns true, the SurfaceTexture will be released by TextureView. If returns false, the client needs to release the SurfaceTexture. Change-Id: I946f71e337ad4170c168854ac27e028b82489c8c
est/hwui/CanvasTextureViewActivity.java
est/hwui/GLTextureViewActivity.java
est/hwui/GetBitmapActivity.java
est/hwui/TextureViewActivity.java
|
bd496bc3d481f9cfc39007d22372d3a1a8809f96 |
03-Aug-2011 |
Romain Guy <romainguy@google.com> |
Paint style and stroke width affect text rendering. Bug #5112207 Change-Id: Ic34037ace21a5058ba23dd15e51aae58c998454d
est/hwui/TextActivity.java
|
0965a3244b4c3009d08db2e084cdcb681ef66d26 |
02-Aug-2011 |
Romain Guy <romainguy@google.com> |
Allow Canvas.setBitmap() to receive a null Bitmap. Change-Id: I6096f0b44866e532ccd96a29c816bf34d48c1dc2
est/hwui/PathsActivity.java
|
b50149825fae95b2918bcf67b2ddb773b9797068 |
29-Jul-2011 |
Romain Guy <romainguy@google.com> |
Correctly apply linear filter to drawBitmap(Rect, Rect) Change-Id: I1049282e1996b1020c92cb7bec46e9f28e94e967
est/hwui/TextFadeActivity.java
|
7eabe55db6b113f83c2cefcd06812648927de877 |
21-Jul-2011 |
Romain Guy <romainguy@google.com> |
Add looper profiling to adb shell am To profile the looper, run the following command: adb shell am profile looper start <process> <file> adb shell am profile looper stop <process> Change-Id: I781f156e473d7bdbb6d13aaffeeaae88bc01a69f
est/hwui/ListActivity.java
|
3c2c9e4e0dde0f3a9c27ccff5313cfbeb4504f8e |
19-Jul-2011 |
Romain Guy <romainguy@google.com> |
Update TextureView.lockCanvas() test. Change-Id: Ib0f613fcd6ba64a696936e4e2b386b96d76b828a
est/hwui/CanvasTextureViewActivity.java
|
6be3d5561cbeccf0a8257a4acb155657f868e548 |
15-Jul-2011 |
Romain Guy <romainguy@google.com> |
Add lock/unlockCanvas to TextureView With this change, TextureView has feature parity with SurfaceView. Change-Id: I4ef2da33420fc9590f868636ae72a5a6de61965b
est/hwui/CanvasTextureViewActivity.java
|
f9284695e8c10dad4daf3d2c84f607483bcb56ca |
14-Jul-2011 |
Romain Guy <romainguy@google.com> |
Add new ViewDebug APIs to profile the event queue. Change-Id: I225bf288780b0244f459316e2765cfa29cd22c89
est/hwui/ListActivity.java
|
5fccb70de94f4270cff1ca35d59a289bdf37a89f |
12-Jul-2011 |
Romain Guy <romainguy@google.com> |
Add test for bug #4970944 Change-Id: I3e7287bc406ff497a49cf823cee53b1a943a74a9
est/hwui/MoreNinePatchesActivity.java
|
cfacbeadffb5dccbf0434d9c05b19430a5237c3b |
08-Jul-2011 |
Romain Guy <romainguy@google.com> |
Cleanup Change-Id: I2a9dc34e907b4c6e60f8c2999150b22015012e74
est/hwui/GLTextureViewActivity.java
|
ec19b4a764d512091a780fc93ced567dfbf80914 |
08-Jul-2011 |
Romain Guy <romainguy@google.com> |
Use NEAREST filtering mode for TextureView.getBitmap(). Change-Id: I4649062bbdf18ebba7924bdf578f39ad8f6576ac
est/hwui/GLTextureViewActivity.java
est/hwui/TextureViewActivity.java
|
9ace8f5e79e76893fe4ca9e4d10f6c4056330485 |
08-Jul-2011 |
Romain Guy <romainguy@google.com> |
Use NEAREST filtering for layers whenever possible. Change-Id: Id5bee1bd4a322cf93e8000b08e18f1e1b058648e
est/hwui/TextureViewActivity.java
|
f61970fc79e9c5cf340fa942597628242361864a |
07-Jul-2011 |
Romain Guy <romainguy@google.com> |
Add an API to query maximum bitmap/texture size on Canvas. Change-Id: I2c576c9a4ecad9f33cc6636bcbc29786acdf052d
est/hwui/MaxBitmapSizeActivity.java
|
595c18b07a86754f5af1a971e3566fcbb6066b60 |
30-Jun-2011 |
Romain Guy <romainguy@google.com> |
Add test case for driver issue Change-Id: I0411bf9c8e114ce388e619170fb4c2b1c6fd80f9
est/hwui/TimeDialogActivity.java
|
d0d07059943603c8d20ab9e2ee31ba5c7d477fba |
25-Jun-2011 |
Romain Guy <romainguy@google.com> |
Update GLTextureView sample to do something real. Change-Id: I55a62434ae0b602522221689626f6b4155bd0d91
est/hwui/GLTextureViewActivity.java
|
4a5a71518a71a44dbccb3af9a08b82056ea748b3 |
25-Jun-2011 |
Romain Guy <romainguy@google.com> |
Don't set texture parameters on every frame. Change-Id: Iec368405ad6a4ccfd569a0b3b4d681871a770396
est/hwui/TextureViewActivity.java
|
80429c458506485904715180d10584092a5cd082 |
25-Jun-2011 |
Romain Guy <romainguy@google.com> |
Properly tear down TextureView Change-Id: Ic23cd9257889d0abe8cc3fc1d04a66d0505e383e
est/hwui/GLTextureViewActivity.java
est/hwui/TextureViewActivity.java
|
02ccac69fd1c0a03c24c5f3ace0ad4bed337b1fd |
24-Jun-2011 |
Romain Guy <romainguy@google.com> |
Code cleanup Change-Id: I64c346004e0adf9a776d0315534d4fe445f0c0ca
est/hwui/OpaqueActivity.java
|
cf559377b750271472aa0a717bf3b7d34abc0b39 |
23-Jun-2011 |
Grace Kloba <klobag@google.com> |
Add onSurfaceTextureUpdated to the TextureView listener. The app needs a way to throttle the producer side. Expose this to enable it. Change-Id: I04b6a3fc444117a9fc2449fb87c3c834247c8ef1
est/hwui/GLTextureViewActivity.java
est/hwui/GetBitmapActivity.java
est/hwui/TextureViewActivity.java
|
1ec3a58bcdd0d5fa82cf878d974d062811933ae2 |
23-Jun-2011 |
Romain Guy <romainguy@google.com> |
Prevent possible NPE in TextureView Change-Id: I539813d614c7eb1f68dad6b605cbad5b5144c5e9
est/hwui/TextureViewActivity.java
|
a9489274d67b540804aafb587a226f7c2ae4464d |
23-Jun-2011 |
Romain Guy <romainguy@google.com> |
Add the ability to specify the opacity of a TextureView TextureView assumes its content is opaque by default. Change-Id: Iba873423566a5b67c388081838bd910dceba32ba
est/hwui/TextureViewActivity.java
|
d6b2a00dd43257d1498b09175bff63663f6cb861 |
18-Jun-2011 |
Romain Guy <romainguy@google.com> |
Add error checking to LayerRenderer::copyLayer This method is invoked by TextureView.getBitmap() and failures must be caught to avoid leaving the GL context in a potentially bad state. Change-Id: I620de395ba1bc20154de58c81963223dc55cac78
est/hwui/GetBitmapActivity.java
|
98029c825b9234e6b90721d910cc180885fcab1d |
18-Jun-2011 |
Romain Guy <romainguy@google.com> |
Fix rendering issue with paths when the stroke width is 0 Change-Id: I5d8ac23dc69e9e17df4ef6b5195186b5207e2524
est/hwui/SmallCircleActivity.java
|
54be1cdf3d63095512120fa7ced5c16e462abffa |
14-Jun-2011 |
Romain Guy <romainguy@google.com> |
Batch glCopyTexImage() calls to get about 15 fps back on SGX. Change-Id: I04079e070739c1e46df3e90fc388c335e2a7d2b9
est/hwui/ClearActivity.java
|
451ce44a18e4c48f8a43aa250957f76967a35d31 |
11-Jun-2011 |
Romain Guy <romainguy@google.com> |
Add onSurfaceTextureDestroyed() callback. This is needed for Renderscript and it also makes implementations of TextureView cleaner. This change also hooks up the onSurfaceTextureSizeCHanged() callback whenever the view size changes. Change-Id: I2f972ee4504d800329defefacf32cf20547d31a3
est/hwui/GLTextureViewActivity.java
est/hwui/TextureViewActivity.java
|
f09ef51889f75289b041f9e9f949b7b82ed5b686 |
27-May-2011 |
Romain Guy <romainguy@google.com> |
Fix issue with drawColor(color, Mode.Clear) Change-Id: I486b24a5b609c6f8adb0276037ddb24af2b888b2
est/hwui/ClearActivity.java
|
1e59f9d10d164f156221f6d34b932f06cdd29f1f |
27-May-2011 |
Romain Guy <romainguy@google.com> |
Fix texture coordinates for sub-bitmap rendering. Change-Id: I05a31775e03f5b223a55a5144d420351abac89be
est/hwui/ThinPatchesActivity.java
|
f504a2fa144504ca1efd39a4ef9208e3d4d336c5 |
27-May-2011 |
Romain Guy <romainguy@google.com> |
Correctly implement the CLEAR xfermode. The previous implementation was using glBlendFunc with the parameters GL_ZERO/GL_ZERO which doesn't work for text, paths and other alpha sources (anti-aliasing.) The correct implementation is GL_ZERO/ GL_ONE_MINUS_SRC_ALPHA. Change-Id: I4cca65e57b6a37bbf5a41d382cb0648ee8e11e79
est/hwui/ClearActivity.java
|
44984ea0cb3702384d023b5f211deda3c4b0b656 |
19-May-2011 |
Chet Haase <chet@google.com> |
Enable large font rendering with GPU acceleration Change-Id: I7b022100fb0762613f9cf7753dbb0217e1e75f8d
est/hwui/TextActivity.java
|
858aa93ddb6e69e0503382af63bb681b6728aef1 |
12-May-2011 |
Chet Haase <chet@google.com> |
Antialiasing for rectangles Change-Id: I7ca6931606541ddd504bd5db7f8dc04b9cde8cd9
est/hwui/ColoredRectsActivity.java
|
99ecdc480dd4f9b550b2a62ea39f77845a4fec49 |
06-May-2011 |
Chet Haase <chet@google.com> |
Fix for scaled AA lines Previously, the translucent boundary of AA lines would be scaled by the line's transform. It should always be exactly one pixel wide in screen space. This fix accounts for scaling for the boundary region, and fixes some AA calculations that make wide/AA lines more correct. Change-Id: I30df2d5d96315bf3e7ff30be9735282fd5439a39
est/hwui/LinesActivity.java
|
df0a7fbdcff3c683641b7980da50a7d0eebe0876 |
03-May-2011 |
Romain Guy <romainguy@google.com> |
Merge "Allows to render with an OpenGL context inside a TextureView."
|
8f0095cd33558e9cc8a440047908e53b68906f5f |
03-May-2011 |
Romain Guy <romainguy@google.com> |
Allows to render with an OpenGL context inside a TextureView. Change-Id: I59453f7fc3997f0502a1c5d325d37fed376fabc7
est/hwui/GLTextureViewActivity.java
est/hwui/TextureViewActivity.java
|
99585adeb4167ca357a72eb866f34c1af944f4b9 |
03-May-2011 |
Chet Haase <chet@google.com> |
Line endcaps for AA lines are now antialiased. Also fixed other minor issues with AA and line rendering. Change-Id: Icd4638d27c70e2ee0f28b5d9a2b97d8b29e8ac4d
est/hwui/Lines2Activity.java
|
ad44445c772efe66fdf063aa8f78d7ae3233570e |
29-Apr-2011 |
Romain Guy <romainguy@google.com> |
Merge "New widget: TextureView Bug #4343984"
|
aa6c24c21c727a196451332448d4e3b11a80be69 |
29-Apr-2011 |
Romain Guy <romainguy@google.com> |
New widget: TextureView Bug #4343984 TextureView can be used to render media content (video, OpenGL, RenderScript) inside a View. The key difference with SurfaceView is that TextureView does not create a new Surface. This gives the ability to seamlessly transform, animate, fade, etc. a TextureView, which was hard if not impossible to do with a SurfaceView. A TextureView also interacts perfectly with ScrollView, ListView, etc. It allows application to embed media content in a much more flexible way than before. For instance, to render the camera preview at 50% opacity, all you need to do is the following: mTextureView.setAlpha(0.5f); Camera c = Camera.open(); c.setPreviewTexture(mTextureView.getSurfaceTexture()); c.startPreview(); TextureView uses a SurfaceTexture to get the job done. More APIs are required to make it easy to create OpenGL contexts for a TextureView. It can currently be done with a bit of JNI code. Change-Id: Iaa7953097ab5beb8437bcbbfa03b2df5b7f80cd7
est/hwui/TextureViewActivity.java
|
8a5cc92a150bae38ec43732d941b38bb381fe153 |
26-Apr-2011 |
Chet Haase <chet@google.com> |
Fix various hw-accelerated line/point bugs All accelerated lines are now rendered as quads. Hairlines used to be rendered as GL_LINES, but these lines don't render the same as our non-accelerated lines, so we're using quads for everything. Also, fixed a bug in the way that we were offsetting quads (and not offseting points) to ensure that our lines/points actuall start on the same pixels as Skia's. Change-Id: I51b923cc08a9858444c430ba07bc8aa0c83cbe6a
est/hwui/Lines2Activity.java
est/hwui/PointsActivity.java
|
740bf2bb2e900d3db2292b5909b4b4c6e90320e6 |
27-Apr-2011 |
Romain Guy <romainguy@google.com> |
Apply shaders/filters to text drop shadows. Bug #4318323 This change also fixes the fact that shaders were not modulated by the paint's color when drawing paths. Change-Id: Id88804143aea06c895d4cbcdbe106d660230aa5a
est/hwui/MoreShadersActivity.java
est/hwui/PathsActivity.java
|
3a03eeedafb3e3335b56bdb9c0a2f02104d32299 |
26-Apr-2011 |
Romain Guy <romainguy@google.com> |
Update shader text to test with drop shadows. Change-Id: Iefdf116846c9b5649d1561a9d80d66d1c3acfeca
est/hwui/MoreShadersActivity.java
|
5b0200bd47e8a9a4dc8d2e6c3a110d522b30bf82 |
14-Apr-2011 |
Chet Haase <chet@google.com> |
Enable anti-aliasing for hw-accelerated lines Draw anti-aliased lines with OpenGL by constructing a quad with a border that fades out (to mimic fragment coverage). Change-Id: Ib81a3e62d663acdf1b46b401ac4aa7ee9855cc7e
est/hwui/Lines2Activity.java
est/hwui/LinesActivity.java
|
1a81aea8144b92ebaf807af9de69a0ab3415a5aa |
21-Mar-2011 |
Romain Guy <romainguy@google.com> |
Update GL textures when changing a Bitmap's pixels Bug #4146495 Change-Id: I4fe3f8501373b86b164af11ae51642b140035bb8
est/hwui/BitmapMutateActivity.java
|
ed6fcb034b44d9a6ac2fc72fee6030417811f234 |
21-Mar-2011 |
Romain Guy <romainguy@google.com> |
Add support for drawPoint() and drawPoints(). Change-Id: I01bef50c08ec3160f8d40dc060b2cf6c2e4d7639
est/hwui/LinesActivity.java
|
7b5b6abf852c039983eded25ebe43a70fef5a4ab |
15-Mar-2011 |
Romain Guy <romainguy@google.com> |
Fix rendering artifact in edge fades. Bug #4092053 The problem always existed but was made visible by partial invalidation. When saving a layer, the renderer would try to postpone glClear() operations until the next drawing command. This however does not work since the clip might have changed. The fix is rather simple and simply gets rid of this "optimization" (that turned out to be usless anyway given how View issues saveLayer() calls.) This change also fixes an issue with gradients (color stops where not properly computed when using a null stops array) and optimizes display lists rendering (quickly rejects larger portions of the tree to avoid executing unnecessary code.) Change-Id: I0f5b5f6e1220d41a09cc2fa84c212b0b4afd9c46
est/hwui/GradientsActivity.java
est/hwui/TransparentListActivity.java
|
cabfcc1364eb7e4de0b15b3574fba45027b45cfc |
08-Mar-2011 |
Romain Guy <romainguy@google.com> |
Add support for partial invalidates in WebView Bug #3461349 This change also fixes two bugs that prevented partial invalidates from working with other views. Both bugs were in our EGL implementation: they were preventing the caller from comparing the current context/surface with another context/surface. This was causing HardwareRenderer to always redraw the entire screen. Change-Id: I33e096b304d4a0b7e6c8f92930f71d2ece9bebf5
est/hwui/TextActivity.java
|
47b8adec3904535c8d8ce2b6e42ecd736f2d90ce |
24-Feb-2011 |
Romain Guy <romainguy@google.com> |
Add a new Camera API to control the camera's location Change-Id: Id9a082d2def803eb527e1987875e0d8a22c6e8aa
est/hwui/Animated3dActivity.java
|
b18d2d0079b4dbf5675ab79b7111b3dfb3cc1ad0 |
11-Feb-2011 |
Romain Guy <romainguy@google.com> |
Dirty layers in the area covered by a drawBitmapMesh() call Bug #3410827 Change-Id: Ic8b4f6201af94497bba86c75819588c78debddc2
est/hwui/BitmapMeshActivity.java
est/hwui/BitmapMeshLayerActivity.java
|
f28daffda50042c1b7cbfeb34b4d47741c6e21a8 |
04-Feb-2011 |
Romain Guy <romainguy@google.com> |
Empty the clip rect when intersection is empty. Bug #3410035 Change-Id: I5ceb80514d3b20c9ad230478549ad31ced403d53
est/hwui/MarqueeActivity.java
|
09b7c91de73b59aa3f679b3ae3ba299f82ec9f8a |
03-Feb-2011 |
Romain Guy <romainguy@google.com> |
Allocate layers from the layers pool. Bug #3413433 This change will be beneficial to Launcher to avoid hiccups when swiping pages of icons. When a layer is discarded, it is kept in the layers pool instead of being destroyed right away. This favors memory reuse over allocations. Change-Id: Ifb6944ba83d6ceb67c331527c0827b26ce648eb1
est/hwui/ViewLayersActivity6.java
|
849d0a37cf2ca6c6a6c2d4d4456495e32e363120 |
02-Feb-2011 |
Romain Guy <romainguy@google.com> |
New API to let apps draw without layers. Bug #3413433 Launcher now enables layers all the time, but in some cases (for instance, when the workspace is not scrolling,) it is more efficient to draw without the layer. Change-Id: I625fb5b48506acda9ae75356fdbbe812c85f2aab
est/hwui/ViewLayersActivity5.java
|
54229ee5eb92e3e2fc63d75353bcf09e0ebc8030 |
01-Feb-2011 |
Romain Guy <romainguy@google.com> |
Correctly set the alpha of a hardware layer before drawing it. Bug #3410819 Change-Id: I3ebaca2233f4edf5b59d84ec7706555056a1a4b1
est/hwui/ViewLayersActivity4.java
|
a566b7c3aada08d37cf08096c972e3e641bed773 |
24-Jan-2011 |
Romain Guy <romainguy@google.com> |
Fix bitmap meshes to work in display lists. Change-Id: Ie226d049840942d9ad9cf58e0c19132f49d62a75
est/hwui/BitmapMeshActivity.java
|
8b2f5267f16c295f12faab810527cd6311997e34 |
24-Jan-2011 |
Romain Guy <romainguy@google.com> |
Add support for arcs. Change-Id: I96c057ff4eb1b464b03f132da0b85333777bee4f
est/hwui/ShapesActivity.java
|
c1cd9ba335b293f11e1082447ef08e474710a05f |
23-Jan-2011 |
Romain Guy <romainguy@google.com> |
Add support for ovals and stroked rectangles. Change-Id: I1292e241386763c82e6622c8f7ed90b0f5b7bd4f
est/hwui/ShapesActivity.java
|
5a7b466a2b4b7ced739bd5c31e022de61650545a |
21-Jan-2011 |
Romain Guy <romainguy@google.com> |
Add support for drawBitmapMesh(). Change-Id: Ic77f9c534bb90dc7b9458299544bd50b8b6ae6a5
est/hwui/BitmapMeshActivity.java
|
01d58e43ede5ca98cbebdd166f9b0c545032c01b |
20-Jan-2011 |
Romain Guy <romainguy@google.com> |
Add rounded rects and circles support to OpenGLRenderer. Change-Id: I6cedf2b495d58de7c0437096809fa9e4518a1b8c
est/hwui/ShapesActivity.java
|
42f3a4b7c35dd1ea1922356eb3611af8cde05179 |
19-Jan-2011 |
Romain Guy <romainguy@google.com> |
Make embedded hardware layers work. Bug #3369474 Change-Id: Ib6d7fb44eedda9dc2933b5e1b176f307968af91d
est/hwui/ViewLayersActivity3.java
|
2577db1ec135a1470a2c42139772ec97a6c30e78 |
18-Jan-2011 |
Romain Guy <romainguy@google.com> |
Add support for Paint::setTextSkewX in OpenGLRenderer. Bug #3360888 Change-Id: I42e81a1f10bf7b9ae1c63ca8add1878fd59a1e8a
est/hwui/TextActivity.java
|
807daf7df615b60ce6fc41355aabe3aa353cebab |
18-Jan-2011 |
Romain Guy <romainguy@google.com> |
Add support for skew() Change-Id: Ia3a9a867f74fd78b61f75179e3788fdc2f0cacd0
est/hwui/BitmapsSkewActivity.java
|
d6cd572df8067c40b3e0e7e74e58cdb456b33e92 |
17-Jan-2011 |
Romain Guy <romainguy@google.com> |
Improve hardware layers rendering speed when setting a View's alpha. Change-Id: Ib1275677f531c60d9919978c5538c663fdb823b5
est/hwui/ViewLayersActivity2.java
|
2361098da3b9d9c3eeed410dc72ba62c0e9177cf |
17-Jan-2011 |
Romain Guy <romainguy@google.com> |
Add BitmapFactory.Options.inMutable to load mutable bitmaps. Change-Id: Iaa222127520f3aa55072d44af12ee3477908b876
est/hwui/BitmapsActivity.java
|
fb13abd800cd610c7f46815848545feff83e5748 |
17-Jan-2011 |
Romain Guy <romainguy@google.com> |
Fix 9patch rendering in ExpandableListView. Change-Id: I60843d61a40b0cb7dd09923cb4489a5a76f20486
est/hwui/SimplePatchActivity.java
|
6c319ca1275c8db892c39b48fc54864c949f9171 |
11-Jan-2011 |
Romain Guy <romainguy@google.com> |
Better backend for hardware layers. With this new backend, a hardware layer is only recreated when its associated view is udpated. This offers fast composition in GL and fast update of the layer in GL as well. Change-Id: I97c43a612f5955c6bf1c192c8ca4af10fdf1d076
est/hwui/PathsActivity.java
est/hwui/ViewLayersActivity2.java
|
7230a74e9a36dfc6c4346c14e325bf07cd05b380 |
11-Jan-2011 |
Romain Guy <romainguy@google.com> |
Composite layers as regions. This change detects what area of a layer was drawn into and generates a mesh to match this area exactly. This can be used to avoid blending empty pixels when the layer is composited. This change also adds proper layers support to lines rendering and implements layers composition in a more readable way. Change-Id: I4a5588b98b19bd66891ebdc39631b193c5e31999
est/hwui/LinesActivity.java
|
171c592f0b7066acf279863c8a52ddabea49d3db |
06-Jan-2011 |
Romain Guy <romainguy@google.com> |
New layers API for Views. This API can be used to back a view and its children with either a software layer (bitmap) or hardware layer (FBO). Layers have various usages, including color filtering and performance improvements during animations. Change-Id: Ifc3bea847918042730fc5a8c2d4206dd6c9420a3
est/hwui/ViewLayersActivity.java
|
d38e776a3cc8cb53945cbebafbe6f6c2e3501fa5 |
21-Dec-2010 |
Xavier Ducrohet <xav@android.com> |
LayoutLib: support for layers. Layers require that drawing methods potentially draw in more than one bitmaps. To handle this this patch offers the following: - move all drawing methods to use Drawable - Drawables are now handled by GcSnapshot since its the one handling the layers - moved Canvas_Delegate.createCustomGraphics to GcSnapshot which does not expose the Graphics2D objects anymore so its draw() methods are the only way to draw. - handles creating layers in GcSnapshot.save() and blitting them in restore() Other changes: - Clean up the create/save API in GcSnapshot - Fixed drawing bitmaps with alpha and other composite modes. Change-Id: I1e230087493d044a10de71f4b6d29083e3f3bf64
est/hwui/LayersActivity.java
est/hwui/NewLayersActivity.java
|
63fd87113cea6abec97a6cd966e090e9b590fc3b |
21-Dec-2010 |
Xavier Ducrohet <xav@android.com> |
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
est/hwui/LinesActivity.java
est/hwui/ShadersActivity.java
|
d348b6eaa98e23cb38d90906df109aaa2d20ea7f |
20-Dec-2010 |
Xavier Ducrohet <xav@android.com> |
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.
est/hwui/PathsActivity.java
est/hwui/ShadersActivity.java
|
b146b1214ef6e4fc75d98779b22434335764cfdb |
16-Dec-2010 |
Romain Guy <romainguy@google.com> |
Fix text shadow rendering issue. Change-Id: Ic9eb0d38ad684d2f2c95a4f586f865db911cb872
est/hwui/TextActivity.java
|
ec31a7f119608b94ea1bb41275811027a360bf30 |
14-Dec-2010 |
Xavier Ducrohet <xav@android.com> |
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
est/hwui/AdvancedBlendActivity.java
est/hwui/AdvancedGradientsActivity.java
est/hwui/GradientsActivity.java
est/hwui/TextGammaActivity.java
|
a957eea78557cb47a91d44d9e6ee641c58cf1c07 |
09-Dec-2010 |
Romain Guy <romainguy@google.com> |
New, better line drawing implementation. Bug #3207544 Bug #3225875 Change-Id: Ibdd1dfc64e01625d5c441f39eb0aa3ee647f6ff5
est/hwui/LinesActivity.java
|
8164c2d338781c3a3c4a443941070dca5d88f2a7 |
26-Oct-2010 |
Romain Guy <romainguy@google.com> |
Don't change textures wrap modes on every draw. Change-Id: If6d3f313778cc7f3e803a063338539c8b3e165e3
est/hwui/ShadersActivity.java
|
e5ebcb0107a939395e03592fd44c746cd09e311d |
15-Oct-2010 |
Romain Guy <romainguy@google.com> |
Fix clipping issue in StackView. Change-Id: I7ec28f25c3993a2bd7ef6399ba1923839d239905
est/hwui/Bitmaps3dActivity.java
est/hwui/ViewFlipperActivity.java
|
14830948d02f768c41b97b7a8d15e1b3cab78267 |
08-Oct-2010 |
Romain Guy <romainguy@google.com> |
Add 3D transforms support to all gradients. Change-Id: I61409edd00dab3a11684a3f5e4f7df0afc734758
est/hwui/GradientsActivity.java
|
e3095e0c1e2a4a4f34f741aa386eae56536ca5aa |
07-Oct-2010 |
Romain Guy <romainguy@google.com> |
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
est/hwui/GradientsActivity.java
|
469b1dbeaf7d3267d1b43af4e7391b49eac10ee0 |
05-Oct-2010 |
Romain Guy <romainguy@google.com> |
Code cleanup and disable display lists for now. Change-Id: I681213036b5279339cb96a016d1dfb15d74dafc8
est/hwui/LinesActivity.java
|
7975fb6d12cb1eb96b75e3a563627cd4c4081bd6 |
02-Oct-2010 |
Romain Guy <romainguy@google.com> |
Apply bilinear filtering to text. Change-Id: I2c81ad657ee2a11a2139e0b11ae3749db54c0749
est/hwui/LabelsActivity.java
|
0bb5667b4ef91fefd0500fae0186789d15d54e0e |
01-Oct-2010 |
Romain Guy <romainguy@android.com> |
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
est/hwui/GradientsActivity.java
est/hwui/ShadersActivity.java
est/hwui/TransparentListActivity.java
|
ddb80bebb0776e6d852aab6e8bba5d5591847a55 |
21-Sep-2010 |
Romain Guy <romainguy@google.com> |
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
est/hwui/AdvancedGradientsActivity.java
|
ee916f14cbd1fe1422c063ce2ef7b185e2bc5c6f |
21-Sep-2010 |
Romain Guy <romainguy@google.com> |
Add support for SweepGradient in the GL renderer. Change-Id: I7aa397ed4e34655ead9ba1f5b4ce087665e0f022
est/hwui/AdvancedGradientsActivity.java
|
759ea80dca64ad652110a129e0d8bf93fea79f61 |
17-Sep-2010 |
Romain Guy <romainguy@google.com> |
Add support for drawLines(), with anti-aliasing Change-Id: I16c0593c5671490909dec13a85df601e1428a1a6
est/hwui/LinesActivity.java
|
6820ac8b14b4558f5d8b833dde80895306a3e137 |
16-Sep-2010 |
Romain Guy <romainguy@google.com> |
Fix 9patch rendering. Change-Id: Ic4c18ff483cca95fbabcb10843f7714efe488adb
est/hwui/ThinPatchesActivity.java
|
8411f336c786379c5a03106e9ed3bc8622b579a5 |
14-Sep-2010 |
Romain Guy <romainguy@google.com> |
Fix rendering issue with layers intersecting the clip rect. Change-Id: Icbe35194fa219ef13ce639d33631235f8d7df3d7
est/hwui/NewLayersActivity.java
est/hwui/ThinPatchesActivity.java
|
8694230ff25fa0a60e480d424843e56b718f0516 |
12-Sep-2010 |
Romain Guy <romainguy@google.com> |
Optimize calls to glCopyTexImage2D(). Change-Id: I34ee87bd4472864f440916e03a2894fae24bbe4a
est/hwui/TransparentListActivity.java
|
f607bdc167f66b3e7003acaa4736ae46d78c1492 |
11-Sep-2010 |
Romain Guy <romainguy@google.com> |
Correct implementation of saveLayer(). Change-Id: I5375126636913e0a84f2d6bbd0ebe40d2e4f2763
est/hwui/AdvancedBlendActivity.java
est/hwui/AlphaLayersActivity.java
est/hwui/BitmapsActivity.java
est/hwui/BitmapsAlphaActivity.java
est/hwui/BitmapsRectActivity.java
est/hwui/ColorFiltersActivity.java
est/hwui/FramebufferBlendActivity.java
est/hwui/LayersActivity.java
est/hwui/LinesActivity.java
est/hwui/ListActivity.java
est/hwui/MoreShadersActivity.java
est/hwui/NewLayersActivity.java
est/hwui/NinePatchesActivity.java
est/hwui/PathsActivity.java
est/hwui/QuickRejectActivity.java
est/hwui/ResizeActivity.java
est/hwui/RotationActivity.java
est/hwui/ShadersActivity.java
est/hwui/SimplePathsActivity.java
est/hwui/StackActivity.java
est/hwui/TextActivity.java
est/hwui/TextGammaActivity.java
est/hwui/Transform3dActivity.java
est/hwui/TransparentListActivity.java
est/hwui/XfermodeActivity.java
|