e8c3c813b0e3ac98304b17a751ce6e436e252bd9 |
|
06-Feb-2016 |
Chris Craik <ccraik@google.com> |
Fix TextDropShadowCacheTests and glyph_t everywhere Change-Id: I943eae4e9408c77bdfba6304ba7ee3e862351a41
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
a1717271caac5e8ea3808c331d4141ac01a42134 |
|
19-Nov-2015 |
Chris Craik <ccraik@google.com> |
Initial text support in new reorderer/renderer Removes obsolete drawPosText codepath, and unifies text decoration behavior. Change-Id: I9c563249ab688a3394445a0e7fe1b9d0661f6f7c
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
bf6f0f260886a04a1680c7f9917124a751322ca4 |
|
01-Oct-2015 |
Chris Craik <ccraik@google.com> |
Move more utils into paintutils Change-Id: I1eb3fd52386bc61a592da235533e40b509eeec24
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
64e445bf74bee2098781d608cedfd723d8cc88d3 |
|
02-Sep-2015 |
Chris Craik <ccraik@google.com> |
CanvasState frame init refactor bug:23760482 Change-Id: Idc0802b4b8a6a3cebd20797350f4eb01bcc3fe77
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
3aadd60521960be063ee06208562ccb63dc414e3 |
|
20-Aug-2015 |
Chris Craik <ccraik@google.com> |
Revert "Revert "Simplify TextureView draw path"" Fixed build breakage This reverts commit d35dcb13115ca1dd8c07e397f43a186cd7fd1a01. Change-Id: Id3a103fbaac15a05f558bce2161ce17b6e8d2ea3
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
6e03543f6335a03f9c3dc7d9afa9752f67a2e14c |
|
20-Aug-2015 |
Derek Sollenberger <djsollen@google.com> |
Add transitive dependency to enable refactoring within Skia Change-Id: Iaf9841a2f74f927bb7aac6bbc9fc3cdfe0312fd5
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
3b1c32eb5d96c9a13e101cc7207f27d045c6bd8b |
|
20-Aug-2015 |
Bart Sears <bsears@google.com> |
Merge "Revert "Simplify TextureView draw path""
|
d35dcb13115ca1dd8c07e397f43a186cd7fd1a01 |
|
20-Aug-2015 |
Bart Sears <bsears@google.com> |
Revert "Simplify TextureView draw path" This reverts commit 20a248934c67b19c8734362dba76a5cc94254686. Change-Id: Iaa3ebb1d868acbe184080087aec312b43e87e3c7
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
87f9c42f5411d1b00f9babe7873b8200c3a25e60 |
|
20-Aug-2015 |
Chris Craik <ccraik@google.com> |
Merge "Simplify TextureView draw path"
|
20a248934c67b19c8734362dba76a5cc94254686 |
|
19-Aug-2015 |
Chris Craik <ccraik@google.com> |
Simplify TextureView draw path bug:20461288 Change-Id: I239fbd26ab2177481c84feb62a1da68faeb634ac
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
6daa13c5fa7577fa1d8371deca446f6ca911f38f |
|
19-Aug-2015 |
Chris Craik <ccraik@google.com> |
Change setMatrix behavior to only affect canvas-local matrix bug:22189925 This makes setMatrix(getMatrix()) work as expected, and makes setMatrix() much more useful without changing behavior relative to a View's parent hierarchy. Change-Id: I608613bd27c1b9052ae583f8fd2119cf37a2f6d7
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
149173d28c0843aba86b0810ce75b34be6a0d08f |
|
10-Aug-2015 |
John Reck <jreck@google.com> |
Support new EGL extensions Bug: 21753739 Includes a revert of 13d1b4ab10fbee5e81a2ba1ac59cfae1e51d3ef0 as that only supported EGL_EXT_buffer_age Change-Id: Ia86a47d19e3355c067934d7764c330b640c6958d
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
272a685f17cc4828257e521a6f62b7b17870f75e |
|
30-Jul-2015 |
John Reck <jreck@google.com> |
Replace most usages of utils/Vector.h Change-Id: I540d1b3523244d6c71fc52d6fb30555271c25644
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
ac7b6d33d23cb0baaf61c723346198d41f012035 |
|
30-Jun-2015 |
Tom Hudson <tomhudson@google.com> |
New setLocalMatrix() operation for HWUI Concats any matrix passed through from DisplayListCanvas with the initialTransform of the containing RenderNode. BUG:22189925 Change-Id: I5ea54a6e2a29520c79a8860bde7682694e8595d2
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
3375f8ad30997482317b5ade5618cc8a01b96d7d |
|
24-Jun-2015 |
Chris Craik <ccraik@google.com> |
Avoid over-damaging layer area for multidraws bug:19608961 Change-Id: Ib7495f155da62a352e9a010a362fd40ec0acad21
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
37b0824a46157b7e169ad7ec33a46e89c851884c |
|
09-Jun-2015 |
John Reck <jreck@google.com> |
Upload bitmaps in SkShader* safely Bug: 19412589 Change-Id: Id50c08ff523d5540f60c39b435c0ab1b4c685655
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
53e51e4aa933f9603587e1780f446c18816bf9be |
|
01-Jun-2015 |
Chris Craik <ccraik@google.com> |
Handle shader matrix correctly when ignoring canvas transform bug:20063841 Restores old SkShader matrix behavior from before the Glop refactor. Many drawing operations draw without sending the canvas transform to the GL shader. In such cases, we need to adapt the matrix sent to the SkShader logic to invert the canvas transform that's built into the mesh. Change-Id: I42b6f59df36ce46436322b95bf9ad2140795ee58
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
fca52b7583d1e5f5ff8ed06554875d2a30ef56fa |
|
28-Apr-2015 |
Chris Craik <ccraik@google.com> |
Use path intersection instead of saveLayer+mesh to mask projected ripples bug:14297149 SaveLayer's performance cost is high, and proportional to the surface being projected onto. Since ripples (even unbounded ones) are now always projected to the arbitrary background content behind them, this cost is especially important to avoid. This removes the last semi-secret, saveLayer from the projected ripple implementation. Also fixes the HW test app to correctly demonstrate this projection masking behavior. Additionaly, alters PathTessellator to gracefully handle counter-clockwise paths, and simplifies the work done by ShadowTessellator to ensure all of its paths are counterclockwise. Change-Id: Ibe9e12812bd10a774e20b1d444a140c368cbba8c
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
50210d912925aef14e4ce69be82e4949122a3cd9 |
|
15-May-2015 |
Alan Viverette <alanv@google.com> |
Adjust light source for window position Bug: 16523629 Change-Id: I2f3fed1edcac0a3cfd5034aded45e08ececfebaf
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
8df5ffa9ae0667d9e0241adf4675753156fcef84 |
|
29-Apr-2015 |
Chris Craik <ccraik@google.com> |
Remove concept of layer alpha override bug:19412691 Change-Id: I9e150fe4a1b2c0cf140519a33c02fd4771ef1c50
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
828407356dd5c34a3e441604aaf895cbec7c7e66 |
|
03-Apr-2015 |
Chris Craik <ccraik@google.com> |
Delete pre-glop path bug:19014311 Change-Id: I06376b6f625455892d8eafe2727b78025a64c4bf
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
a6b52198b9e73a4b7f80103116feeace74433246 |
|
28-Feb-2015 |
Chris Craik <ccraik@google.com> |
Glop drawBitmaps, drawPatches Change-Id: I3f1cd3f47f97d2e0c9b9d153732e26ee0b1c58c2
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
083e733e8223a7d416d6c139f318e61864b28ad6 |
|
28-Feb-2015 |
Chris Craik <ccraik@google.com> |
Cleanup of FontRenderer Remove invalid and over complicated buffer unbinding optimization, and simplify constructor. Change-Id: I3dd90528de4f377e972bbd7967e7e232875387e4
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
6b109c74982033d4a220cd10a0eab8b024b351c9 |
|
27-Feb-2015 |
Chris Craik <ccraik@google.com> |
Fix glop rendering within unclipped saveLayers bug:19541881 Additionally, clean up GlopBuilders and rename onGetSnapshot() for clarity Change-Id: I0303e4cd61eef87cf80af2d968c4aa67193cd008
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
03ae272459869b854e5db252fc81a64a516e111f |
|
25-Feb-2015 |
Chris Craik <ccraik@google.com> |
Remove renderer abstract class No longer needed, allowing vast majority of methods on OpenGLRenderer to be non-virtual. Change-Id: I8a6ee042b95050dc666887579ef4e1c7a8f9b33b
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
14100ac9f8efc1a2407e3f5a5c8b2532a49585db |
|
24-Feb-2015 |
Chris Craik <ccraik@google.com> |
Glop support for custom textured UVs, simplify drawBitmap(src,dst) Front load the scaling-to-support-shaders to record time. Change-Id: I861c82d9d16d3c5e063cf87230127eed0b3f9b54
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
30036092b40badecbe64d9c2bff4850132147f78 |
|
12-Feb-2015 |
Chris Craik <ccraik@google.com> |
Glop path texture support Change-Id: I505eb05991ca4c9b2e01e49988b8f962fad51462
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
0519c810a56bded1284fcb2ae40f438878c6585f |
|
11-Feb-2015 |
Chris Craik <ccraik@google.com> |
Glop Bitmap and RoundRect clipping support Change-Id: I4577546a5d2e5f084cc03f39a89db9231b8111ee
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
117bdbcfa3e8306dad21e7e01fa71b00cdfa7265 |
|
05-Feb-2015 |
Chris Craik <ccraik@google.com> |
Glop ColorFilter & VertexBuffer support, initial enable Enables Glop rendering for supported Rects and VertexBuffers Also removes unused Query object Change-Id: Ibe227bc362685a153159f75077664f0947764e06
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
6c15ffa196fc9b7724c189d833c3435d8db12266 |
|
02-Feb-2015 |
Chris Craik <ccraik@google.com> |
Refactoring of Program ownership/lifecycle, and WIP Glop rendering path Change-Id: I2549032790bddbc048b0bccc224ed8f386b4517c
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
44eb2c00861098dd3e2950d923646814b4cc57c2 |
|
29-Jan-2015 |
Chris Craik <ccraik@google.com> |
Refactor blending and texture gl state Change-Id: Ia6b3c8b2afd3dfcee7f3ce401d846b789612054a
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
65fe5eeb19e2e15c8b1ee91e8a2dcf0c25e48ca6 |
|
27-Jan-2015 |
Chris Craik <ccraik@google.com> |
Move scissor state to RenderState Change-Id: I1227a3886fb24e4d9fad79fca469794f06cfb15e
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
f28f5cec5644ed175c8ad7a59b5d20b33ee89bc8 |
|
15-Jan-2015 |
Rob Tsuk <robtsuk@google.com> |
Merge "Clipping performance improvements"
|
487a92caef2eb90a62e8f8d7a6fe6315f1c1d8d8 |
|
06-Jan-2015 |
Rob Tsuk <robtsuk@google.com> |
Clipping performance improvements Create a ClipArea class to handle tracking clip regions. This class can select the most efficient implementation depending on the types of clipping presented. ClipArea re-used the rectangle and region-based clipping implementations as well as adding a "list of rotated rectangles" approach that is more efficient for rotated views with children. Change-Id: I2133761a2462ebc0852b394220e265974b3086f0
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
3d4eed7f1aa99401dabe2e45b82f98fb4fc2d754 |
|
04-Dec-2014 |
Derek Sollenberger <djsollen@google.com> |
Update HWUI to store its own SkBitmap objects This enables us to... 1) simplify the lifecycle/ownership between Java and HWUI 2) remove DisplayListRenderer::drawBitmapData and associated logic 3) track pixel lifecycle using standard SkPixelRef refcounting 4) Remove uncessary calls to ref/unref the bitmap's pixels and colorTable Change-Id: I3c95078da20995444f6388a029414280fd654318
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
8dfaa4904205772cdceee63ef3989bcdedf1a914 |
|
09-Dec-2014 |
Tom Hudson <tomhudson@google.com> |
Make DisplayListRenderer inherit from Canvas, merge JNI Incrementally unify the upper layers for Skia and HWUI. Remove redundant code from GLES20Canvas.java; instead use inherited mNativeCanvasWrapper and superclass method definitions. Moves some unrelated SkPaint utility functions from Renderer to new utils/PaintUtils. bug: 15672762 Change-Id: I4ddd4214b8e9eeb95289d054ef423f2542bb5fa5
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
51d6a3db97bdd5315f1a17a4b447d10a92217b98 |
|
23-Dec-2014 |
Chris Craik <ccraik@google.com> |
Cleanup various clang warnings, use unique_ptrs in several places Change-Id: I347904b25e51fcc7de14b1e72f1acd0f6ba26f3f
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
e84a208317e0ed388fcdad1e6743c7849acb51b0 |
|
22-Dec-2014 |
Chris Craik <ccraik@google.com> |
Add overrides and switch to nullptr keyword Changes generated with clang-modernize. Additionally, fixed some struct-vs-class usage to make clang happy. Change-Id: Ic6ef2427401ff1e794d26f21f7b44868fc75fb72
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
e2831a181f14dd6ca0e601a4c3cdc313a58faaae |
|
11-Dec-2014 |
Chris Craik <ccraik@google.com> |
resolved conflicts for merge of 5369b769 to master Change-Id: Iccb2ce948321534e05d67e64dc40a38332adb1a7
|
4ac36f80beb958c77a92a3e1a235f6ed9daaa510 |
|
10-Dec-2014 |
Chris Craik <ccraik@google.com> |
Fix frame-allocated path lifecycles bug:18667472 Previously, we were allocating per-frame temporary paths within the PlaybackStateStruct, but these are not safe as layers allocate these transiently. Instead, move these to the OpenGLRenderer, which has better define lifecycle. Additionally, don't store SkPath objects directly in vector, since they are then subject to relocation. Change-Id: I8187ef542fcd5b030502bb75eb123ee26c0daa96
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
984162fb7e4010b6e2908352dbff17ed47eecf06 |
|
10-Oct-2014 |
Tom Hudson <tomhudson@google.com> |
Replace StatefulBaseRenderer inheritance with CanvasState member Incrementally disentangles DisplayListRenderer and OpenGLRenderer. Introduces abstract CanvasStateClient class to share three functions between the two. Design doc at https://docs.google.com/a/google.com/document/d/1PY1JF7AfPEF2UOUAnETS5j_4_tnJShTAMExvpCJfP8o/edit?usp=sharing. BUG:15672762 R=djsollen@google.com,ccraik@google.com,jreck@google.com Change-Id: Ic9fdffe18808e7d921ad06d01ea1ca25b2ad6f23
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
107843de4507b3511006cb9c77b8d0364374385a |
|
08-Sep-2014 |
Tom Hudson <tomhudson@google.com> |
Remove status return from all uirenderer::Renderer functions This moves the interface closer to android::Canvas. The only use of return values was in the OpenGLRenderer subclass; that is replaced with an internal dirty flag: returned from finish(), checked by CanvasContext. This is part of a series of CLs to refactor the Graphics JNI bindings. BUG:15672762 R=djsollen@google.com,ccraik@google.com Change-Id: Ifd533eb8839a254b0d3a5d04fc5a2905afdfc89e
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
9481684560b2815d2706512086bb36467ef6acc0 |
|
01-Nov-2014 |
John Reck <jreck@google.com> |
am e05575e9: am a8d83d63: Merge "Layer changes" into lmp-mr1-dev automerge: a51fba0 * commit 'e05575e9c36850d8cfe49396ac9a1372511b12bf': Layer changes
|
0e89e2b7bcb2c035e8cee77f93120e7c5617f8d2 |
|
31-Oct-2014 |
John Reck <jreck@google.com> |
Layer changes Bug: 17208461 * Switch Layer to be VirtualLightRefBase instead of Caches' side-channel ref-counting * Include active layers in gfxinfo dump * Run gfxinfo dump on the correct thread * Dump gfxinfo on Layer creation failure Change-Id: I28d195699e2334518e215ab28c7a17355aee9678
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
a8f1bce008fadff43eb15a0ac9c4056fa3192260 |
|
28-Oct-2014 |
John Reck <jreck@google.com> |
am c7c8b069: Merge "Cleanup debug options" into lmp-mr1-dev automerge: b0aeaad automerge: 49a01fc * commit 'c7c8b069407236bcc04c086912c73002d48419ef': Cleanup debug options
|
23d307c8d88f4a3849163b9e5b7cd11d0d4f372c |
|
27-Oct-2014 |
John Reck <jreck@google.com> |
Cleanup debug options Bug: 18138852 Bug: 18065434 Change-Id: Ibb07b73b147c2a8b287fe8aee3f6624582f21b00
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
09c2d4fe15fbac2faf8a97ba2cc59132ee12222a |
|
15-Oct-2014 |
Derek Sollenberger <djsollen@google.com> |
Refactor HWUI to better handle Canvas DrawFilters. First, this CL removes the need to decompose the DrawFilters in Java and instead passes the SkDrawFilter to HWUI directly. This also allows the removal of duplicated logic between HWUI and other Canvas implementations regarding Paint filter levels. Second, the DrawFilter is now stored in the DisplayListRenderer where we apply it to every paint BEFORE it is stored in the DisplayList. This eliminates the need to filter all Paints on playback and removes additional complexity at playback. Finally, as a result of storing the filtered paint we can now do a better job caching the paints. This takes advantage of recent changes in Skia to quickly enable quick hashing and comparison of paint objects. Change-Id: Iec507a2d894827975cc4f1d22241542bb0534b4e
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
2dc236b2bae13b9a0ed9b3f7320502aecd7983b3 |
|
15-Oct-2014 |
Tom Hudson <tomhudson@google.com> |
Clean up physical coupling Narrow the use of #include directives in hwui, replacing with forward declarations where straightforward. Speeds compiles; doesn't do any restructuring of code. Change-Id: Icac2baffb5896f55d8c6718e9bd9d4bfa02d3ca0
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
284b24358410cb0200e525a5ba36994090c83f20 |
|
19-Sep-2014 |
Chris Craik <ccraik@google.com> |
Fix garbage showing up beneath dialogs bug:17463894 Fixes the setViewport method to immediately affect the return values of getViewportWidth/Height methods. Also works around tiling extension issues observed on first frame after window resize by disabling tiling for that frame. Change-Id: Ie172d572d20d74a1be9cc58ad389af2cffa0e4b6
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
443a714fa7c0dd07fee3527cc5bc3d3ca1fb7d44 |
|
05-Sep-2014 |
John Reck <jreck@google.com> |
Yet more layer tracking logging Bug: 17208461 Change-Id: I55e7d0921eb565867e966d68b798b7b92c391b55
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
69e5adffb19135d51bde8e458f4907d7265f3e23 |
|
14-Aug-2014 |
Chris Craik <ccraik@google.com> |
Define shadow casting behavior within layers bug:15860114 Savelayers and HW layers both now support shadow casting. For save layers, the light source should always be correct, for HW layers, the light source position is set when the layer is created, and updated when it is resized. Change-Id: Ie85567dd43c2bb0a0b08fd0bd4db41efa793ac2b
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
91a8c7c62913c2597e3bf5a6d59d2ed5fc7ba4e0 |
|
12-Aug-2014 |
Chris Craik <ccraik@google.com> |
Switch to cos interpolation of shadow alpha bug:16852257 Updates default shadow opacities to compensate. Also, update variable/constant naming related to vertex alpha. Change-Id: I9055b4ac3c9ac305ca9d515f21b52d6aa6dc9c5c
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
bf75945e7a1ae7c1000682716643c942c1e19ba6 |
|
12-Aug-2014 |
Chris Craik <ccraik@google.com> |
Rework shadow interpolation bug:16852257 Use pow(alpha, 1.5) to avoid harsh edges on shadow alpha ramps. Also adjusts shadow constants to compensate. Change-Id: I5869956d7d292db2a8e496bc320084b6d64c3fb7
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
796475006f5d670e8383a2050f11719522437a43 |
|
06-Aug-2014 |
Chris Craik <ccraik@google.com> |
Move bitmap transforms out of bitmap ops bug:11359533 This allows us to deduplicate a lot between the two ops, and fixes the shader coordinate space for the left,top argument drawBitmap to match software. Change-Id: I53da05af9ee74c74e9e70b4ab8053190ca220b16
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
62d307c2402777d5e53b4590af5f32f8c55afd81 |
|
29-Jul-2014 |
Chris Craik <ccraik@google.com> |
Fix behavior of stencil clipping within clearLayerRegions bug:16376960 The draw within clearLayerRegions should never be affected by the current stencil clip, since it's just ensuring that the content of the layer is cleared, and not doing real content drawing. Also, add optional verbose GL event logging Change-Id: I538b1bc631fc091340b76e12db6af0c219851b57
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
058fc640017c90120c599d378a4cbc55668b05b7 |
|
24-Jul-2014 |
Chris Craik <ccraik@google.com> |
Connect shadow style attributes to renderer bug:15859361 Moves lighting info out of StatefulBaseRenderer, since it's not useful at record time, and only used by OGLR. Change-Id: I7ab065d02d9304afad1dc4c48597a7a621366f8e
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
33f5a59ac3e304970920dda824958870f85f76ef |
|
02-Jul-2014 |
henry.uh_chen <henry.uh_chen@htc.com> |
[HWUI]: fix residual line on FrameBuffer Symptom: If app applies animation to enlarge a bitmap, there will be an residual line on the screen Root Cause: On platform which has Tile Rendering implementation (ex. Qualcomm CPU), startTiling() call will restrict the framebuffer region which GPU can affect. So the expansion of clear region by 1 will not take effect if startTiling region is not expanded. Solution: Expand the startTiling region by 1, too. Reproduce steps: Apply animation to enlarge (and then shrink) a bitmap icon. Cherry-pick of 20adb6ce4d52b15472e7e5ee953e06cc349a827c from AOSP Change-Id: I163b898b87b74d221dc4210b7fa657aa93c82c19
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
59744b79ec302000802cd56d30a1bf70f0183c80 |
|
02-Jul-2014 |
Chris Craik <ccraik@google.com> |
Add hack for custom re-rasterization buckets bug:14083128 Moves all of the font transform management into OpenGLRenderer::findBestFontTransform(), and now simply passes down final rasterization transforms into the FontRenderer. Change-Id: Ie02752e6af863347b142367c7d628db5f9fc2998
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
ca1b3b83bb4289315e25520364182ebad951ba08 |
|
27-Jun-2014 |
John Reck <jreck@google.com> |
Cleanup Change-Id: I8a75e6e32a4cb02e3978503305b4cdce1727e89a
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
3b20251a355c88193c439f928a84ae69483fb488 |
|
23-Jun-2014 |
John Reck <jreck@google.com> |
No-fail invokeFunctor Bug: 15513308 Bug: 15449247 Change-Id: I13a29f9c8d4975cdda6dcb33b6332c2555ff0f7c
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
a7090e0cfd7c719a6d4c03aae34f5db98754cbdd |
|
21-Jun-2014 |
Chris Craik <ccraik@google.com> |
Update 'DisplayList' vs 'RenderNode' naming in several places Change-Id: I635c6627d098b661fb9b0ba1bd42fa6d7277d287
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
1e5cf9aced40e6e14262e542d0ed0e24cda877a0 |
|
10-Jun-2014 |
Chris Craik <ccraik@google.com> |
am b1c76a1a: Merge "Tessellate on worker threads" into lmp-preview-dev * commit 'b1c76a1abcfb2f33e12fef37ec71d20724863b5e': Tessellate on worker threads
|
05f3d6e5111fd08df5cd9aae2c3d28399dc0e7f5 |
|
03-Jun-2014 |
Chris Craik <ccraik@google.com> |
Tessellate on worker threads Tessellate and cache (where possible) shadow and round rect tessellation tasks. Change-Id: I2cfda8e11d83d51ea74af871235cf26e8f831d40
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
139088228faa7f3c446af7387e017933998a5570 |
|
10-Dec-2013 |
Derek Sollenberger <djsollen@google.com> |
Update HWUI matrix API 1. more closely mirror Skia API by using const ref instead of ptrs 2. store SkMatrix in the drawOp instead of the linear allocation heap Change-Id: I4b9f6f76b9f7d19325e29303d27b793679fd4823
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
0fa2bd699ab5539c0ce6b79eb6b4b681734b8bb5 |
|
05-May-2014 |
Leon Scroggins III <scroggo@google.com> |
DO NOT MERGE Inspect SkShader to determine hw shader. cherry-pick of Iaa7189178bda1c55f96da044d2a9fa602ba36034 Instead of duplicating internal info about SkShader, inspect the SkShader installed on the SkPaint. core/java/android/view/GLES20Canvas.java: Remove setupModifiers, nResetModifiers, and nSetupShader. core/jni/android/graphics/Shader.cpp: Remove calls to create/destroy the (previously) attached SkiaShader. core/jni/android_view_GLES20Canvas.cpp: Remove native code for setupShader and resetModifiers. graphics/java/android/graphics/BitmapShader.java: graphics/java/android/graphics/ComposeShader.java: graphics/java/android/graphics/LinearGradient.java: graphics/java/android/graphics/RadialGradient.java: graphics/java/android/graphics/Shader.java: graphics/java/android/graphics/SweepGradient.java: Remove code keeping track of native SkiaShader. libs/hwui/Caches.h: Include Extensions.h. libs/hwui/DeferredDisplayList.cpp: Compare shaders on the paint, instead of on DrawModifiers. libs/hwui/DisplayList.cpp: libs/hwui/DisplayList.h: Remove vector of SkiaShaders. libs/hwui/DisplayListOp.h: Access the SkShader on mPaint. Remove SetupShaderOp and ResetShaderOp. libs/hwui/DisplayListRenderer.cpp: libs/hwui/DisplayListRenderer.h: Remove resetShader, setupShader, refShader, and mShaderMap. libs/hwui/FontRenderer.cpp: Pass SkShader to setupDrawShader and setupDrawShaderUniforms. libs/hwui/OpenGLRenderer.cpp: libs/hwui/OpenGLRenderer.h: Add LayerShader, a class inheriting from SkShader, to mimic the behavior of SkiaLayerShader. Unlike SkiaLayerShader, it can be set on the SkPaint so it can be inspected later. Set a LayerShader instead of a SkiaLayerShader. setupDrawShader and setupDrawShaderUniforms now inspect an SkShader passed in. Inspect SkShader instead of mDrawModifiers.mShader. Remove resetShader and setupShader. setupDrawColorUniforms now takes a boolean indicating whether there is a shader. Add an inline function for accessing the SkShader on an SkPaint. In setupDrawBlending(Layer*, bool), do not check the shader (which will never be set), but do check whether the color filter may change the alpha (newly fixed behavior). In setupDrawBlending(SkPaint, ...), check the SkShader and whether the color filter affects alpha (the latter is new behavior). libs/hwui/Renderer.h: Remove pure virtual functions setupShader and resetShader. libs/hwui/ResourceCache.cpp: libs/hwui/ResourceCache.h: Remove functions for refing/unrefing shaders. libs/hwui/SkiaShader.cpp: libs/hwui/SkiaShader.h: Much of this code was redundant and has been removed. Convert structs into class with nothing but static functions for calling describe/setupProgram. libs/hwui/TextureCache.cpp: libs/hwui/TextureCache.h: Use the SkPixelRef as the key to the bitmap Lru cache, since shader inspection will provide a different SkBitmap pointer (though it will hold the correct SkPixelRef with the correct generation ID). tests/CanvasCompare/src/com/android/test/hwuicompare/DisplayModifier.java: tests/CanvasCompare/src/com/android/test/hwuicompare/ResourceModifiers.java: Update manual test to have more shaders: radial, sweep, compose, invalid compose. BUG:10650594 Change-Id: I2e7182b3fc28268e7ca82fac6780540b6b45365c
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
d490aa426090fc358873821b47ef27ead0c97409 |
|
23-May-2014 |
Chris Craik <ccraik@google.com> |
Merge "Inspect SkShader to determine hw shader."
|
d1ad5e62fda248c6d185cde3cb6d9f01a223066c |
|
05-May-2014 |
Leon Scroggins III <scroggo@google.com> |
Inspect SkShader to determine hw shader. Instead of duplicating internal info about SkShader, inspect the SkShader installed on the SkPaint. core/java/android/view/GLES20Canvas.java: Remove setupModifiers, nResetModifiers, and nSetupShader. core/jni/android/graphics/Shader.cpp: Remove calls to create/destroy the (previously) attached SkiaShader. core/jni/android_view_GLES20Canvas.cpp: Remove native code for setupShader and resetModifiers. graphics/java/android/graphics/BitmapShader.java: graphics/java/android/graphics/ComposeShader.java: graphics/java/android/graphics/LinearGradient.java: graphics/java/android/graphics/RadialGradient.java: graphics/java/android/graphics/Shader.java: graphics/java/android/graphics/SweepGradient.java: Remove code keeping track of native SkiaShader. libs/hwui/Caches.h: Include Extensions.h. libs/hwui/DeferredDisplayList.cpp: Compare shaders on the paint, instead of on DrawModifiers. libs/hwui/DisplayList.cpp: libs/hwui/DisplayList.h: Remove vector of SkiaShaders. libs/hwui/DisplayListOp.h: Access the SkShader on mPaint. Remove SetupShaderOp and ResetShaderOp. libs/hwui/DisplayListRenderer.cpp: libs/hwui/DisplayListRenderer.h: Remove resetShader, setupShader, refShader, and mShaderMap. libs/hwui/FontRenderer.cpp: Pass SkShader to setupDrawShader and setupDrawShaderUniforms. libs/hwui/OpenGLRenderer.cpp: libs/hwui/OpenGLRenderer.h: Add LayerShader, a class inheriting from SkShader, to mimic the behavior of SkiaLayerShader. Unlike SkiaLayerShader, it can be set on the SkPaint so it can be inspected later. Set a LayerShader instead of a SkiaLayerShader. setupDrawShader and setupDrawShaderUniforms now inspect an SkShader passed in. Inspect SkShader instead of mDrawModifiers.mShader. Remove resetShader and setupShader. setupDrawColorUniforms now takes a boolean indicating whether there is a shader. Add an inline function for accessing the SkShader on an SkPaint. In setupDrawBlending(Layer*, bool), do not check the shader (which will never be set), but do check whether the color filter may change the alpha (newly fixed behavior). In setupDrawBlending(SkPaint, ...), check the SkShader and whether the color filter affects alpha (the latter is new behavior). libs/hwui/Renderer.h: Remove pure virtual functions setupShader and resetShader. libs/hwui/ResourceCache.cpp: libs/hwui/ResourceCache.h: Remove functions for refing/unrefing shaders. libs/hwui/SkiaShader.cpp: libs/hwui/SkiaShader.h: Much of this code was redundant and has been removed. Convert structs into class with nothing but static functions for calling describe/setupProgram. libs/hwui/TextureCache.cpp: libs/hwui/TextureCache.h: Use the SkPixelRef as the key to the bitmap Lru cache, since shader inspection will provide a different SkBitmap pointer (though it will hold the correct SkPixelRef with the correct generation ID). tests/CanvasCompare/src/com/android/test/hwuicompare/DisplayModifier.java: tests/CanvasCompare/src/com/android/test/hwuicompare/ResourceModifiers.java: Update manual test to have more shaders: radial, sweep, compose, invalid compose. BUG:10650594 Change-Id: Iaa7189178bda1c55f96da044d2a9fa602ba36034
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
797b95b26bbb7557678af78b9a2a61830158920f |
|
21-May-2014 |
Chris Craik <ccraik@google.com> |
Define light position (using new lighting spec) in Java Also updates the relative shadow strengths. Change-Id: I6cac7275d38df98aea9f0dda463cd7207102986a
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
deeda3d337aed1eee218b89a7aba5992ced371f0 |
|
06-May-2014 |
Chris Craik <ccraik@google.com> |
Round rect outline clipping Change-Id: Iee9cf4f719f6f1917507b69189ad114fa365917b
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
a64a2bef1048db5a742843f1e3bea9e80d0defc5 |
|
14-May-2014 |
Chris Craik <ccraik@google.com> |
Combine projection matrix, and viewport management Merge management of ortho projection matrix with the viewport size, since they should always be changed together. Change-Id: Iccb8f30828f4fb7848999ac54852e7ed2d6f2eb1
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
ddc52285ca6fd147f442a21e90e0e4702a10d304 |
|
11-May-2014 |
Jorim Jaggi <jjaggi@google.com> |
Revert "Simplify projection matrix management." This reverts commit 0efaa71d5414287ed4beac0a88cf76f7e33a1e74.
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
0c0ec26366045e515790a6acdab782965efc63b4 |
|
10-May-2014 |
Chris Craik <ccraik@google.com> |
Simplify projection matrix management. Store in and use from snapshot, and remove the kFlagOrthoDirty flag, as it's redundant with kFlagIsFboLayer. Change-Id: I2bd380192d50117f4ce1fd2058213669a886f406
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
e10e827ed68b0a9487cf8dd1fc545f9a09517ae9 |
|
08-May-2014 |
Chris Craik <ccraik@google.com> |
Rename matrices for consistency The projection matrix no longer contains viewing transformation, and has thus been renamed. Change-Id: I4f85ccdac97f4cb4f987bb05c389816680f1c94f
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
5b554f010358d8f47e31d92a42aa3edc4a71ec47 |
|
08-May-2014 |
Derek Sollenberger <djsollen@google.com> |
Merge "Avoid caching shadow properties in Java & HWUI."
|
832b151465ed81c43e59891d5eebe62128b21fbb |
|
07-May-2014 |
John Reck <jreck@google.com> |
Cleanup attachFunctor Bug: 13961296 Change-Id: Id48d11bfcc234afd1fd7e4fdd409a50e7208c81d
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
c29a0a4664a4b9871fadd668b632469a0db240b9 |
|
31-Mar-2014 |
Derek Sollenberger <djsollen@google.com> |
Avoid caching shadow properties in Java & HWUI. bug: 10650594 Change-Id: I6f57df002710bb0567ed7e53fc0bfe96cfd504b8
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
52244fff29042926e21fa897ef5ab11148e35299 |
|
02-May-2014 |
John Reck <jreck@google.com> |
Add CanvasProperty for drawCircle Change-Id: Icbcc030f5033d2094e567d7c519b9d672f2aac1c
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
3f085429fd47ebd32ac2463b3eae2a5a6c17be25 |
|
16-Apr-2014 |
Chris Craik <ccraik@google.com> |
Clip TouchFeedbackDrawable effect to receiver Outline Projected RenderNodes are now wrapped with a ClipRect or masked SaveLayer, so that they are clipped to the outline of the projection receiver surface. Change-Id: I1d4afc1bb5d638d650bc0b1dac51a498f216773e
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
024433f89684e1f9cb7b15ade7c480c9346fbe4d |
|
26-Mar-2014 |
Chris Craik <ccraik@google.com> |
Disable shadow overdraw avoidance in the inverse clip case The caster is effectivly transparent, so skip the optimization just as is done for alpha < 1.0 Change-Id: I3d294222adf0137e20c1fb5808313d487e92e0a8
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
8c271ca63b62061fd22cfee78fd6a574b44476fd |
|
25-Mar-2014 |
Chris Craik <ccraik@google.com> |
Add private circular reveal API on View/RenderNode Change-Id: I139c8e12b354083149a665f6768f3f6931a8dd15
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
50ecf849cb7ccc3482517b74d2214b347927791e |
|
12-Mar-2014 |
ztenghui <ztenghui@google.com> |
Create one hole inside the umbra area to avoid overdraw. bug:13439450 Change-Id: I859575196bd5a3029f447883025a6ec3a1f1face
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
e18264b079481a244b30e3f71012c53bbd861f92 |
|
12-Mar-2014 |
John Reck <jreck@google.com> |
Rename DisplayList->RenderNode Change-Id: Id42e23c9a1a6eb6eaeafef707ced7fa6887b03d0
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
b79a3e301a8d89b9e1b1f6f3d7fd6aa56610a6f0 |
|
11-Mar-2014 |
Chris Craik <ccraik@google.com> |
Fix orthographic shadows projection, simplify shadow reordering Separate matrix passed to shadow system into two parts, one for transforming the polygon XY points (using the actual draw matrix) and a separate one which respects correct 4x4 3d rotations and translations for determining Z values. Change-Id: I7e30a84774a8709df6b2241e8f51fc5583648fe8
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
63d41abb40b3ce40d8b9bccb1cf186e8158a3687 |
|
14-Feb-2014 |
ztenghui <ztenghui@google.com> |
Use pre-computed index to draw the shadow. Also draw the umbra part as triangle fans instead of zig zag fashion. b/12840179 Change-Id: Iaa5d15e77351acdd71f076bd8f9bb2d4d2b92faf
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
76d3a1b8d035d27bc80b0f2fc480a903bd001514 |
|
10-Dec-2013 |
Derek Sollenberger <djsollen@google.com> |
Removing SkiaColorFilter and inspecting the native object directly. bug: 10650594 Change-Id: I4fcf66d008765afa0e35d011f58bc792183cb74f
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
d44fbe55a9f434cb5bb0e34c143ba1445141990d |
|
05-Feb-2014 |
Derek Sollenberger <djsollen@google.com> |
Keep the SkPaint used when creating a layer. This will allow us to inspect the paint for thing other than color and xfermode, such as SkColorFilters and SkShaders. bug: 10650594 Change-Id: I2c3ddd07a3966e1e77af34136307e2b59b2898c1
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
e742799cae886e0e9b2eb5514e58bab27e34a0ee |
|
28-Jan-2014 |
John Reck <jreck@google.com> |
Merge "Native-side proxy"
|
4f02bf4eef6af47f35c70c4dda5b7b9523d89ca0 |
|
04-Jan-2014 |
John Reck <jreck@google.com> |
Native-side proxy Remove RemoteGLRenderer Remove reflection-based control Change-Id: If17c2bbb61c7141986d88c4763def77ed1074985
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
15a07a21eb33e8ca1c7444944fe0541a53380c0c |
|
26-Jan-2014 |
Chris Craik <ccraik@google.com> |
Use path outlines to define shadow shapes Fixes the simplifying assumption that shadow casters were always rectangular. Java side APIs + plumbing to pass down correct shapes still need to be added. Change-Id: Ic4fee90af15679951a44bb5cc6ae454b98c4c194
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
d218a92c0afb8c0d98135b20b52ac87236e1c935 |
|
03-Jan-2014 |
Chris Craik <ccraik@google.com> |
Use const where possible for drawing parameters They should never be modified by a Renderer, only read and copied. Change-Id: I9d8d55dca19115ee9dfeb2bb3f092ba2fb327cd4
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
564acf7c9bff822f608cda0d5df0a64a9f9aaefd |
|
03-Jan-2014 |
Chris Craik <ccraik@google.com> |
Fix Clang warnings/errors Fix several build warnings (struct != class, int != size_t) and errors (variable leng non-POD arrays). Change-Id: I70b4e784365514303d8954bfcb1f39d7c22c1321
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
d6b65f67717025b1162f86f04e2caa5723566cac |
|
01-Jan-2014 |
Chris Craik <ccraik@google.com> |
Use const access to snapshot from OpenGLRenderer Additionally, move clipping methods to StatefulBaseRenderer Change-Id: Iff232bf16fc1ad3b7d89493da6d8915db7bc5e4f
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
14e513058ed4168c94e015638d16f5f87fd8063a |
|
31-Dec-2013 |
Chris Craik <ccraik@google.com> |
Move Snapshot management to intermediate StatefulBaseRenderer class The eventual goal is for the StatefulBaseRenderer to serve as the common base class between the DisplayListRenderer and OpenGLRenderer. This will separate DisplayList recording, Snapshot stack management, and the GL in OpenGLRenderer. Additionally, avoid sp<> parameters, and use const parameters in several places, with the intent of greatly reducing the surface area where renderer subclasses can modify snapshot stack. Next steps: -move bulk of clipping logic into StatefulBaseRenderer -disable direct snapshot access Change-Id: Ibc3c6747134ec7daf8ea535866239fa73b874390
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
b458942bb6e6cf13c68341dda35ef5cee060f5ae |
|
27-Dec-2013 |
Chris Craik <ccraik@google.com> |
Create abstract base class for OpenGLRenderer This will eventually serve as a base class to allow DisplayListRenderer to split off from OpenGLRenderer, and could eventually support other rendering approaches, such as an SkCanvas/SkPicture. This will also be the main source of (implementation-independent) documentation of the canvas/renderer methods. Change-Id: I52047f338f5cf86a3b0b3002af7154bff5c3c227
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
18809c063b89d9b235401d080b952885a4ef9628 |
|
13-Dec-2013 |
Chris Craik <ccraik@google.com> |
Merge "3d view system!"
|
f57776b2d195f0937906eb88b777bb55ccc36967 |
|
26-Oct-2013 |
Chris Craik <ccraik@google.com> |
3d view system! True 3d transformations are now supported by DisplayLists and the renderer, initially with the translationZ property on view. Renderer operations used directly by DisplayList (formerly, clip/save/restore/saveLayer) are now more simply managed by allocating them temporarily on the handler's allocator, which exists for a single frame. This is much simpler than continuing to expand the pool of pre-allocated DisplayListOps now that more operations are called directly by DisplayList, especially with z ordered drawing. Still TODO: -APIs for camera positioning, shadows -Make Z apis public, and expose through XML -Make invalidation / input 3d aware Change-Id: I95fe6fa03f9b6ddd34a7e0c6ec8dd9fe47c6c6eb
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
630491973269da1b260e69d6a3f9490b97705037 |
|
11-Dec-2013 |
John Reck <jreck@google.com> |
Unbreak display list debug dumping Change-Id: I1c6a79f047b29fa60907f6e128cb843a45b88bff
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
f0a590781b2c3e34132b2011d3956135add73ae0 |
|
20-Nov-2013 |
Chris Craik <ccraik@google.com> |
Clean up quick rejection, especially surrounding points + lines. bug:4351353 quickReject and quickRejectNoScissor have been renamed and refactored: - to make the scissor side effect clear and explicit - dangerous methods no longer public - to make the simple quick reject check logic const - simple quick reject is now conservative This CL also fixes several issues with line and point quickRejection - sub-pixel and hairline lines are much less likely to be incorrectly rejected, especially at small canvas scale. Additionally, alpha modulation for AA points < 1px in size is now correct, dumplicating SW behavior (similar to lines and stroked shapes work). Change-Id: Ibb0710c721b9fb415d05acf54dd3d2b4d602156a
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
4063a0e03ba2e354cc6d19c0ffc073fd5b8aa2ca |
|
16-Nov-2013 |
Chris Craik <ccraik@google.com> |
Clean up modelView matrix logic bug:11359533 Also changes shader matrix to correctly account for modelView and currentTransform() Change-Id: I6ce18857dc6d08ea08ca7535385c2ad351ec3caa
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
e63f7c622a2086aefa80983c6f41b74fb166bb42 |
|
17-Oct-2013 |
Chris Craik <ccraik@google.com> |
Clean unused parameters, disable warnings Change-Id: Iddb872f53075dd022eeef45265594d1c6a9e2bc0
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
996fe656340ede058a6f0e6b18f9ec525ddb4e27 |
|
21-Sep-2013 |
Chris Craik <ccraik@google.com> |
Correct bitmap merging logic bug:10863163 This fixes two issues The check for pure translation was incorrect. It was fixed and renamed for clarity. Certain matrix paths weren't setting kTypePositiveScale. For simplicity (and because positive scale is simple to check) removed flag in favor of dynamic checking. Change-Id: Ic5ce235653ef49a68b8b242bd89fc2e95874ecc9
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
c1c5f0870282b56dafe5a4d756e4b9e6884655a7 |
|
12-Sep-2013 |
Chris Craik <ccraik@google.com> |
Move DeferredDisplayState out of ops bug:9969358 Instead of storing DeferredDisplayState within an op (thus forcing ops to be tied to a single state instance), associate each op with a new state at DeferredDisplayList insertion time. Now, DisplayLists (and the ops within) can be reused in a single DeferredDisplayList draw call, as ops will use different state instances at different points in the frame. Change-Id: I525ab2abe0c3883679f2fa00b219b293e9ec53d9
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
9b5a1a28c327e6113d68302b1f0eed1d1c6f6183 |
|
09-Aug-2013 |
Romain Guy <romainguy@google.com> |
Take shadow bounds into account for quick rejects Bug #8634346 Change-Id: I995c5205c2959d8e4da638ae47fedcda92eb1b36
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
003123004f7b23b3dc472d5c40b8c1a16df37a54 |
|
09-Aug-2013 |
Romain Guy <romainguy@google.com> |
Remove an unnecessary allocation Also remove dead code from OpenGLRenderer.cpp Change-Id: I7eb54ca19e77ee3c32f1fe9513a031e6b2e115cf (cherry picked from commit 5c7d5ab878b26f855175a3305a14ac12fcacf25e)
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
5e49b307eb99269db2db257760508b8efd7bb97d |
|
31-Jul-2013 |
Chris Craik <ccraik@google.com> |
Fix quickReject's handling of AA ramp geometry By having quickReject round out the window-space geometry bounds, we prevent the AA perimeter (which falls outside the local bounds passed in) from drawing outside the clip. Change-Id: I8ee36be9039a9c47906815ee2f0dbaa5eb910b82
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
448455fe783b0a711340322dca272b8cc0ebe473 |
|
22-Jul-2013 |
Romain Guy <romainguy@google.com> |
Use global indices array to draw layers An array of indices local to a layer would only be necessary if we changed the way we resolve T-junctions. Since we only ever draw quads, let's just use the indices we use everywhere else. This change also uses the global indices array to render list of colored rectangles to save on the number of vertices generated CPU-side. Change-Id: Ia6d1970b0e9247805af5a114ca2a84b5d0b7c282
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
55b6f95ee4ace96c97508bcd14483fb4e9dbeaa0 |
|
28-Jun-2013 |
Romain Guy <romainguy@google.com> |
Track the atlas' generation ID Bug #9589379 If the atlas is terminated/reinitialized and a view does not invalidate in between it might end up using a stale AssetAtlas::Entry. This change is similar to how 9patch meshes are cached in DrawPatchOp: we simply track the generation ID of the cache to make sure we always use the latest data. Change-Id: Ib5abb3769d2ce0eabe9adc04e320ca27c422019e
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
0e87f00f8cb79635aa70b9a2dfa02bf19dc7473d |
|
20-Jun-2013 |
Chris Craik <ccraik@google.com> |
Initialize MergingDrawBatch clip with viewport bounds This allows merged, clipped operations to behave correctly within a savelayer, even if the base viewport has a large offset. Additionally, disregard opaqueness when within a complexclip/savelayer, as the coverage can't be trusted. Change-Id: Ic908b82a4bb410bc7fac1b4295f4874ed166efc5
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
03c00b5a135e68d22ca5bb829b899ebda6ed7e9d |
|
21-Jun-2013 |
Romain Guy <romainguy@google.com> |
Batch 9-patches in a single mesh whenever possible This change also fixes the way batched bitmaps were handled inside a layer. The layer is now correctly dirtied to minimize the amount of pixels to blend. Fix alpha, mode and opaque computations for DrawPatchOp. Change-Id: I1b6cd581c0f0db66c1002bb4fb1a9811e55bfa78
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
36d38cb904556025b76c6d98f9fe2ccfa1c8a304 |
|
17-Jun-2013 |
Chris Craik <ccraik@google.com> |
Merge "Better handle op size edge cases"
|
d72b73cea49f29c41661e55eb6bfdbc04f09d809 |
|
17-Jun-2013 |
Chris Craik <ccraik@google.com> |
Better handle op size edge cases bug:9464358 Previously, empty and unknown sized ops are assumed to fully cover their clip. This is now corrected such that empty sized ops are pre-rejected before defer. Additionally, unknown sized ops disable overdraw avoidance. Change-Id: Icf2ce24f98be5ea6299e24ffcf826790373564a1
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
fb5c9050978afad2c1df570a13a6747f438c27f7 |
|
17-Jun-2013 |
Romain Guy <romainguy@google.com> |
Merge "Cancel layer update when a layer is about to be destroyed Bug #9310706"
|
e93482f5eac3df581d57e64c2a771a96aa868585 |
|
17-Jun-2013 |
Romain Guy <romainguy@google.com> |
Cancel layer update when a layer is about to be destroyed Bug #9310706 Change-Id: I73eea6314c326f15a979617e3a05b525935f0d3f
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
a02c4ed885d97e516f844ddb0a96083f1b45b4cb |
|
14-Jun-2013 |
Chris Craik <ccraik@google.com> |
Fix clip merging behavior Previously, a new op with a clipped side could be added to a MergingDrawBatch without considering the batch's current bounds. Change-Id: I1b873ecf821bad7cda6630c3f311edd90ac5cc8c
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
39a908c1df89e1073627b0dcbce922d826b67055 |
|
13-Jun-2013 |
Chris Craik <ccraik@google.com> |
Fix various draw ops that may incorrectly not scissor bug:8965976 Also consolidates quickReject scissor-ing and scissor-less paths. Renamed plain 'quickReject' method, as it has sideEffects beyond what the java and skia canvases do. Change-Id: I4bdf874d3c8f469d283eae1e71c5e7ea53d47016
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
7112fddbe26acb12f478f4e77ff9607b523180b4 |
|
13-Jun-2013 |
Romain Guy <romainguy@google.com> |
Merge "Restore buildLayer()'s old behavior; it's synchronous again Bug #9193833"
|
405436021da156fbe3c5d4de48bdefa564cf7fc0 |
|
13-Jun-2013 |
Romain Guy <romainguy@google.com> |
Restore buildLayer()'s old behavior; it's synchronous again Bug #9193833 Change-Id: I4ee07e65c0a8967f0b55da030ecaad6dfc46136f
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
28ce94a4ffc7576f40776d212f1ada79fafaa061 |
|
31-May-2013 |
Chris Craik <ccraik@google.com> |
Overdraw avoidance and merging of clipped ops bug:8951267 If an opaque op, or group of opaque ops covers the invalidate region, skip draw operations that precede it. Clipped operations may now be merged, but only if they share a clipRect - this is a very case for e.g. ListView, where all background elements may now be a part of the same MergingDrawBatch. It is this more aggressive merging that groups together clipped background elements in the ListView case, enabling the overdraw avoidance skipping the window background. Change-Id: Ib0961977e272c5ac37f59e4c67d828467422d259
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
4c2547fa9244e78115cde0a259291053108c3dc7 |
|
12-Jun-2013 |
Romain Guy <romainguy@google.com> |
Avoid 9patch cache lookups when possible This optimization saves up to 0.3ms per frame on the Play Store's front page, on a Nexus 4 device. Change-Id: Iaa4ef33c6e3b37e175efd5b9eea9ef59b43f14f3
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
8aa195d7081b889f3a7b1f426cbd8556377aae5e |
|
05-Jun-2013 |
Romain Guy <romainguy@google.com> |
Introduce Caches::bindTexture() to reduce glBindTexture calls Change-Id: Ic345422567c020c0a9035ff51dcf2ae2a1fc59f4
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
a404e16e4933857464046d763ed7629cd0c86cbf |
|
25-May-2013 |
Romain Guy <romainguy@google.com> |
Make sure atlas antries can correctly filter/wrap textures The virtual textures would each have their own values for wrapping and filtering which could lead to conflict and/or extraneous GL commands being issued. Change-Id: I64cb59a03e598f46bf645bd1d30fccfa63a07431
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
7f77736599c39cdd5540168fc652cf6846799a33 |
|
22-May-2013 |
Romain Guy <romainguy@google.com> |
Merge "Merge scaled bitmaps with translated bitmaps"
|
2db5e993b626794eb07a0ff354269f9a77da81b3 |
|
22-May-2013 |
Romain Guy <romainguy@google.com> |
Merge scaled bitmaps with translated bitmaps Change-Id: I03089f48f97b69fcb4a0171984d3ff548d41c4a8
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
41541825bc90dac740e424cdd41a8c997e15cdb7 |
|
04-May-2013 |
Chris Craik <ccraik@google.com> |
Use individual glyph positions to determine text bounds. bug:8766924 Previously text bounds were calculated to be from 0 to totalAdvance in the X, and from the font's top to bottom. These are incorrect, especially in light of the font fallback mechanism. Now, we calculate the bounds of the text as we layout each glyph. Since these are much tighter bounds in the common case, this significantly reduces the amount of clipping required (which in turn enables more aggressive text merging). Change-Id: I172e5466bf5975bf837af894a9964c41db538746
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
6d29c8d5218cac0fb35f3b7c253f2bdebd44f15a |
|
09-May-2013 |
Chris Craik <ccraik@google.com> |
Add tessellation path for points bug:4351353 bug:8185479 Point tessellation is similar to line special case, except that we only tessellate one point (as a circle or rect) and duplicate it across other instances. Additionally: Fixes square caps for AA=false lines Cleanup in CanvasCompare, disabling interpolation on zoomed-in comparison view Change-Id: I0756fcc4b20f77878fed0d8057297c80e82ed9dc
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
78dd96d5af20f489f0e8b288617d57774ec284f7 |
|
03-May-2013 |
Romain Guy <romainguy@google.com> |
Add an on-screen overdraw counter The counter can be enabled by setting the system property called debug.hwui.overdraw to the string "count". If the string is set to "show", overdraw will be highlighted on screen instead of printing out a simple counter. Change-Id: I9a9c970d54bffab43138bbb7682f6c04bc2c40bd
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
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
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
527a3aace1dd72432c2e0472a570e030ad04bf16 |
|
04-Mar-2013 |
Chris Craik <ccraik@google.com> |
Draw Operation merging Merge simple bitmap draw operations and text operations to avoid issuing individual gl draws for each operation. Merging other ops to be done eventually. The methods are different - the bitmap merging generates a single mesh for reused, unclipped images (esp. repeated images in a listview) The text approach queries just defers the normal font rendering until the last drawText in the sequence that can share the same shader. Patches are sorted and merged, but don't yet have a multiDraw implementation. For now, the pretending-to-merge gives better sorting behavior by keeping similar patches together. Change-Id: Ic300cdab0a53814cf7b09c58bf54b1bf0f58ccd6
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
16ecda5317c40fc3da284952d9b3add34d6763ae |
|
29-Mar-2013 |
Chris Craik <ccraik@google.com> |
Update view's alpha and layer docs bug:8501661 Makes the performance issues and interaction with layer type/paint more clear. Additionally, corrects change from 47ab7d6612e2b5b8b66fb261dafef7c91264e173 to still allow displayList alpha to override layer paint Change-Id: Ic94d75865700820489370461cd8ac9f9077a8d90
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
7273daace9303f4662444111c40bb83d3ead4a92 |
|
28-Mar-2013 |
Chris Craik <ccraik@google.com> |
Fix issues related to saveLayer/restore deferral bug:8464795 Changes drawModifiers and alpha to be restored for all operations, since saveLayer/restore use these values, not just draw operations Also forces a renderer state restoration before a deferred restore op is played back, in case it is associated with a saveLayer that doesn't have the save_clip flag set Change-Id: I9da5d44fefbfffdee164c98f4f139843dacf85df
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
9cd645121584bc167b3fab61b1ed89ddc4631365 |
|
27-Mar-2013 |
Chris Craik <ccraik@google.com> |
Merge "Set ignore flag during deferred savelayer" into jb-mr2-dev
|
408eb12631376cbdc96803e918decf6ea804d346 |
|
27-Mar-2013 |
Chris Craik <ccraik@google.com> |
Set ignore flag during deferred savelayer bug:8471552 Additionally, add ignore check for draw functor In deferred mode, if we don't set ignore, a 0 alpha displayList won't be quickRejected, and not only would its contents be needlessly deferred, but upon playback any functors would be drawn, ignoring the state of the snapshot. Change-Id: Ib1edb3252080f674254086edee6f965f0efcce78
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
96885eb480c5e0526fe2f77d30f6e551f3f3ceab |
|
26-Mar-2013 |
Romain Guy <romainguy@google.com> |
Avoid multiple font cache texture uploads Bug #8378964 This change defers drawing into layers until after the renderer for FBO0 is ready to draw. At that point, all the precaching is done which means all glyphs can be uploaded at once in the font caches. Change-Id: Ie1f7a7ff30f76f06fb3dbc72c7d05e66207d1ecb
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
5f803623559aab395a29d575c37c4e39c23a4b4e |
|
21-Mar-2013 |
Chris Craik <ccraik@google.com> |
Isolate tiling clip state from snapshot bug:8409891 Snapshots frequently have their clip overwritten due to applying deferred state - now, store tiling clip information in a separate rect, outside of the snapshot so it isn't overwritten. Change-Id: I21ca4c45dcd802eae99e8de86f11525196777ccb
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
9eac52698b18d089e73c7ec2bf73a64a39504733 |
|
21-Mar-2013 |
Romain Guy <romainguy@google.com> |
Merge "Optimize text GL setup" into jb-mr2-dev
|
257ae3502cfad43df681b1783528d645bdabc63f |
|
21-Mar-2013 |
Romain Guy <romainguy@google.com> |
Optimize text GL setup Only performs the GL setup steps when at least one glyph is drawn. This change also skips various draw operations when the specified paint draws with alpha = 0. Change-Id: I9eda148b0503acffc552ee19196f5d52e958a1a2
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
d90144db52c7297879b950cbbc85137ed123ab5b |
|
19-Mar-2013 |
Chris Craik <ccraik@google.com> |
Update snapshot upon saveLayer deferral bug:8409891 In order to defer fbo-targetting saveLayer operations, it's necessary to update the snapshot at defer time so that deferred display state (namely, clip and transform) are fbo relative. Re-enables deferring, as the issues with saveLayer are fixed. Change-Id: I74b0779bc732675c747208f0757c3ea85f6dfbed
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
4494599e5a4931426d5649e1d1c4f9db83824ae8 |
|
20-Mar-2013 |
Chris Craik <ccraik@google.com> |
Merge "Use snapshot alpha for layers" into jb-mr2-dev
|
d0afeac6dfc0856eeb72e6176ad6335e81871d24 |
|
16-Mar-2013 |
Chris Craik <ccraik@google.com> |
Reset draw modifiers after flushing bug:8401910 This avoids leaving the renderer in a state with stale pointers (to, e.g., shaders or color filters) Change-Id: Idf8b63657041352e70e34e91ea416fe4385d4bc2
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
a08f95cfeca7217f9c533b03663bf0dceedd259a |
|
16-Mar-2013 |
Chris Craik <ccraik@google.com> |
Use snapshot alpha for layers Removes mMultipliedAlpha, using the snapshot alpha for all non-overlapping display list alpha control. Additionally, fixes opacity issues where children of hasOverlappingRendering=false displaylists (both hw layer sublists and other sublists with hasOverlappingRendering=false) Change-Id: I6adc16da855835f9f518f8967628e5d0135c789b
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
ff78583d8a73ca35ce65b5d2592570ff6fb9901b |
|
08-Mar-2013 |
Chris Craik <ccraik@google.com> |
Fully deferred displaylist replay bug:8037003 A recursive drawDisplayList call is now entirely deferred before playing back to the screen and issuing GL commands. This way, the entire stream can be inspected, optimized, and batch work (such as uploading textures) before issuing commands. Additionally, this fixes an issue where operations draw could move across restores corresponding to saveLayer(alpha). Those and other similar cases (such as complex clipping, requiring the stencil) are now treated as batching barriers, with the operations that change renderer state in a way that's difficult to defer are just re-issued at flush time. Change-Id: Ie7348166662a5ad89fb9b1e87558334fb826b01e
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
624234f69b2a4781d24f3e4c6ae6450729e38397 |
|
06-Mar-2013 |
Romain Guy <romainguy@google.com> |
Take only the scale params into account to rasterize text This change extracts the scale parameters of the current transform to pass then to the font renderer. Rotation and perspective are applied to the generated mesh inside the vertex shader. This limits the number of glyphs we have to create in the font cache and thus reduces memory churn. Change-Id: Ic5b3bae2b2b0e0250a8ee723b071a1709725c749
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
3b753829ae858d424fe109f714745379a6daf455 |
|
05-Mar-2013 |
Romain Guy <romainguy@google.com> |
Fix colored rects clipping and code cleanup The drawColorRects() method was clipping individual rectangles using the wrong parameters left, top, right and bottom instead of l, r, t and b. It also checked for count == 0 after the loop when it should have checked for vertexCount == 0. The quickReject is now not part of the loop since it's a bit overkill to perform so many matrix multiplications. What we really care about is the final quickReject performed on the max bounds of the entire set of rectangles. This change also replaces all instances of mSnapshot->transform by currentTransform() to make the code slightly more readable. Change-Id: I6485280414499716852f7dbfba186774eb6763d4
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
0f6675332c04c74909425d1d328f02b32c0ff40e |
|
01-Mar-2013 |
Romain Guy <romainguy@google.com> |
Precache glyphs at final raster size The deferred display lists model now allows us to precache glyphs at their exact size on screen. This change also removes debug markers when the renderer defers and reorders display lists. It also adds a flush event marker. Change-Id: I66ec5216dc12b93ecfdad52a7146b1cfb31fbeb4
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
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
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
a6456d0d7ea2a65474b8a3db5dbf001880c40a71 |
|
27-Feb-2013 |
Romain Guy <romainguy@google.com> |
Merge "Draw text drop shadows even when the text color is transparent" into jb-mr2-dev
|
768bffc9b814f6a1f7d9ff59d91285895c23bbe9 |
|
27-Feb-2013 |
Romain Guy <romainguy@google.com> |
Draw text drop shadows even when the text color is transparent This matches Skia's behavior. Change-Id: Ibf0a52611f5801cfa68169f66ab0ec06f256600f
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
758724fd09a1599f2c55130f81953cfa6c17c300 |
|
27-Feb-2013 |
Romain Guy <romainguy@google.com> |
Don't increment the paint's generation ID when drawing bitmaps When the renderer draws a bitmap as part of a display list with an alpha < 1.0f, the paint is temporarily modified to alter the opacity of the bitmap. This has the side effect of increasing the paint's generation ID counter which can break paint caching. Change-Id: I5055d059ad1639829fa50af3d946e296c4dab877
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
b98a016c6769b9e80d392df22fe77a2fca048d9f |
|
21-Feb-2013 |
Chris Craik <ccraik@google.com> |
Fix clipping and stencil layer issues bug:8235699 Ensure rectangle clipping operations disable deferring when necessary (i.e., when the op might create a non-rect region), including in DisplayList::setViewProperties Additionally, makes clipping with a kUnion always use a region, for consistency with software rendering Change-Id: I6730f1a80250bcf3f91cd4afde646d470a12dbc2
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
c3566d06421c8acc0aafb18f7e307e5725ce87e1 |
|
05-Feb-2013 |
Chris Craik <ccraik@google.com> |
DisplayList draw operation reordering bug:8037003 The reordering enables similar operations to draw together, minimizing the OpenGL state change operations that go inbetween draws. Eventually, multiple complete canvas draw operations will be merged (into a single glDrawArrays call, for example) Reorders DisplayList draw operations when: -They can move backwards in the command stream to be after similar operations without violating draw ordering -The OpenGLRenderer is in a simple, replayable state (no complex clip, or filter/shadow etc) Also adds two system properties to control the deferral/reordering: "debug.hwui.disable_draw_defer" "debug.hwui.disable_draw_reorder" which can be set to "true" to control the display list manipulation Change-Id: I5e89f3cb0ea2d2afd3e15c64d7f32b8406777a32
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
ff316ec7a76e52572a2e89b691e6b3bba0cafba3 |
|
14-Feb-2013 |
Romain Guy <romainguy@google.com> |
Implement support for drawBitmapMesh's colors array Change-Id: I3d901f6267c2918771ac30ff55c8d80c3ab5b725
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
da8d8b9699fe8e9557389465007e333d3f03dcc1 |
|
07-Feb-2013 |
Romain Guy <romainguy@google.com> |
Merge "Add a RenderBuffer object to store stencil buffers. Bug #7146141"
|
3bbacf27c0be1bae4e4483577fc89ae3113abe5d |
|
07-Feb-2013 |
Romain Guy <romainguy@google.com> |
Add a RenderBuffer object to store stencil buffers. Bug #7146141 This change is needed to add a render buffer cache to avoid creating and destroying stencil buffers on every frame. This change also allows the renderer to use a 1 bit or 4 bit stencil buffer whenever possible. Finally this change fixes a bug introduced by a previous CL which causes the stencil buffer to not be updated in certain conditions. The fix relies on a new optional parameter in drawColorRects() that can be used to avoid performing a quickReject on rectangles generated by the clip region. Change-Id: I2f55a8e807009887b276a83cde9f53fd5c01199f
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
1ba0289d18f16e190a3bc7cf9226d061016dc355 |
|
07-Feb-2013 |
Chris Craik <ccraik@google.com> |
Merge "Add cap tessellation support"
|
65cd612face362d054a85d0f7e5881c59cd523be |
|
11-Dec-2012 |
Chris Craik <ccraik@google.com> |
Add cap tessellation support bug:7117155 bug:8114304 Currently used for lines (with and without AA) and arcs with useCenter=false Also removes 0.375, 0.375 offset for AA lines Change-Id: Ic8ace418739344db1e2814edf65253fe7448b0b0
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
ef35927abcd089652f87a985dd6dde7afde58b92 |
|
01-Feb-2013 |
Romain Guy <romainguy@google.com> |
Tag HardwareRenderers with a name to help debugging The name of the renderer is the same as the window it belongs to. Change-Id: Ie9adc0a1978afa026923ea41f5540eda6ba65a92
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
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
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
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
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
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
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
9acd1b4fa897f3a007dd23dc1f0471b151fa03ad |
|
05-Jan-2013 |
Romain Guy <romainguy@google.com> |
Merge "Add visual profiling feature"
|
672433d90fab7383cd28beac9d4485b566a90940 |
|
05-Jan-2013 |
Romain Guy <romainguy@google.com> |
Add visual profiling feature When profiling is enabled with debug.hwui.profile set to true, setting debug.hwui.profile_visualizer to true will display the profiling data directly on screen. Change-Id: I3d5fe3f0347090815087b1cbfce66b8e76d9347b
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
886b275e529e44a59c54b933453d9bc902973178 |
|
04-Jan-2013 |
Romain Guy <romainguy@google.com> |
Properly support ALPHA_8 bitmaps in all drawBitmap() methods Change-Id: I869993c59e0a0d76f369c09acbae711753908f48
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
dcfc836b457a87881da409e1acf251515f121446 |
|
03-Jan-2013 |
Romain Guy <romainguy@google.com> |
Remove C++11 related warning Change-Id: I250ff7bd0ea49908e11b14c995d77312cd09a8b4
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
7c25aab491707f7324f9941b8cfa9bd2b4b97e76 |
|
19-Oct-2012 |
Romain Guy <romainguy@google.com> |
Defer layer rendering to avoid stalls Bug #7326824 When a layer is taken out of the cache and initialized it gets cleared to prepare it for future rendering. This triggers the following sequence of operations: glBindFramebuffer(layer.fbo) attach texture storage to FBO glClear() glBindFramebuffer(defaultFbo) The clear forces a resolve on tilers which stalls the CPU for a little while, thus producing jank during animations. This change moves the clear to the next frame when we know we will have to execute a resolve anyway. Change-Id: Ic1939c25df20ed65a4c48dc81ee549b2cd8b6ec3
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
a852ff3a4b637e8101c2f54e110467586fe604cf |
|
28-Sep-2012 |
Romain Guy <romainguy@google.com> |
Merge changes I9873540e,I4f6c38e3 into jb-mr1-dev * changes: Skia's ColorMatrix vector is in the 0..255 range not 0..1 Bug #7248980 Don't use the QCOM_tiled_rendering extension with functors Bug #7247880
|
54c1a64d5441a964890b44280e4457e11f4f924a |
|
28-Sep-2012 |
Romain Guy <romainguy@google.com> |
Don't use the QCOM_tiled_rendering extension with functors Bug #7247880 Change-Id: I4f6c38e37b953c58e6107097c613891a49dac766
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
cb4d6009576cf08195dc23f341a3f4939c0878bb |
|
25-Sep-2012 |
Chris Craik <ccraik@google.com> |
Add stroke support to polygonal shape rendering bug:4419017 bug:7230005 - Adds support for stroke/strokeAndFill for shapes without joins - Fixes path-polygonization threshold calculation - Fixes rendering offset (now only used for points) - Several formatting fixes Change-Id: If72473dc881e45752e2ec212d0dcd1e3f97979ea
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
87e2f757be9b24d369bab354e37c276e851b1fc7 |
|
24-Sep-2012 |
Romain Guy <romainguy@google.com> |
Add a property to disable libhwui's scissor optimization Bug #7158326 When scissor optimization is enabled, OpenGLRenderer will attempt to minimize the use of scissor by selectively enabling and disabling the GL scissor test. When the optimization is disabled, OpenGLRenderer will keep the GL scissor test enabled and change the scissor rect as needed. Some GPUs (for instance the SGX 540) perform better when changing the scissor rect often than when enabling/disabling the scissor test often. Change-Id: Idb68862e287a23358f9188d577ae0f86161902fd
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
8e586f61dd4f7fa53b01e63ac779ffc7cde05bdd |
|
22-Sep-2012 |
Romain Guy <romainguy@google.com> |
Merge "Add support for a new developer setting: overdraw debugging" into jb-mr1-dev
|
7c450aaa3caac2a05fcb20a177483d0e92378426 |
|
22-Sep-2012 |
Romain Guy <romainguy@google.com> |
Add support for a new developer setting: overdraw debugging Change-Id: I350ba4486577c3289f82c20938f7a35138778727
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
61d37041ac76a95aedb98d3550bb5efa33d898a1 |
|
21-Sep-2012 |
Chris Craik <ccraik@google.com> |
Merge "Polygonal rendering of simple fill shapes" into jb-mr1-dev
|
11cb642756093a4af901b1525375b1eb2b5c3e2b |
|
21-Sep-2012 |
Romain Guy <romainguy@google.com> |
Update layers in a single batch at the beginning of a frame Bug #7186819 Change-Id: Ice5926dfedfb3be3a3064e65008dafa2852407da
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
57b5268708c3b974296c7d4e58a02a957979224a |
|
21-Sep-2012 |
Romain Guy <romainguy@google.com> |
Optimize tiling management Bug #7186819 Change-Id: Iebc42a6e9c96ad5605fbbe1539aa887695d2e829
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
710f46d9d6a5bf9ea1c1833384caf61e1934124f |
|
18-Sep-2012 |
Chris Craik <ccraik@google.com> |
Polygonal rendering of simple fill shapes bug:4419017 Change-Id: If0428e1732139786cba15f54b285d880e4a56b89
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
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
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
35643ddc689913f5b5f80ceed864470d987bd6cd |
|
19-Sep-2012 |
Romain Guy <romainguy@google.com> |
Minimize state changes when updating layers Change-Id: I407fcc80bd3178f9f09a3b379ceb7f7ce0749e08
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
d15ebf25c595b855f6978d0600218e3ea5f31e92 |
|
05-Sep-2012 |
Chet Haase <chet@google.com> |
Enable changing properties of layer paint Previously, to draw a layered view with a changed Paint object for the drawLayer operation, you'd have to invalidate the parent view, to get the native DisplayList to pick up the new Paint properties. This change adds API and functionality so that the developer can call setLayerPaint(), which does the proper invalidation (lightweight, doesn't cause redrawing the view). Issue #6923810 Make it easy to efficiently animate a layer's Paint Change-Id: I7fea79788d50f6d9c86dd5e5b2a4490cb95142bb
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
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
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
0baaac5e9adf3ee280ae1239e2e58754a9d2b099 |
|
01-Sep-2012 |
Romain Guy <romainguy@google.com> |
Revert "Revert "Add more support for transformed clip rects and paths"" This reverts commit a8557d2169e14997637f57bc897640c8882d4a46. Change-Id: I36d4883d548fc47ba6c0b4a42012107d0d2f85a6
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
a8557d2169e14997637f57bc897640c8882d4a46 |
|
01-Sep-2012 |
Mathias Agopian <mathias@google.com> |
Revert "Add more support for transformed clip rects and paths" this introduced a dead lock in GradientCache's ctor. This reverts commit dfe082f63e94cde9aee271c94d13de5e7217e036. Bug: 7096001 Change-Id: I57b8bbab11fb7cb502fa58e3bbf5d19864db874f
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
dfe082f63e94cde9aee271c94d13de5e7217e036 |
|
01-Sep-2012 |
Romain Guy <romainguy@google.com> |
Add more support for transformed clip rects and paths Change-Id: I41791b1e1bffef77d503dc9e52428395d2309688
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
d48885a6c8cd27a8a62552c33b5282e9882e19f6 |
|
29-Aug-2012 |
Chet Haase <chet@google.com> |
Fix bug with Fbo layer clipping Rendering views with alpha causes the creation of Fbo layers. These layers are created at the size of the view, clipped by the current clip rect. However, if the view lies completely outside the current clip rect, the Fbo layer is created at the full size of the view and copied into place outside of its container, causing artifacts like notification items showing up outside the notification panel. Fix is to note when the intersect() operation fails and to set an empty bounds on the layer. Issue #7069881 Bottom notification sometimes shows below bottom of notification panel shade Change-Id: Ib52f7c4e503bbe9204cb808755ab269195aa94c1
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
c89b14bba0f6cc2c91629080617f7ed215f697f3 |
|
08-Aug-2012 |
Romain Guy <romainguy@google.com> |
It seems that apparently useless public APIs are actually useful Bug #6953651 Change-Id: Ic47ce504e63262711f5d3edc76f7d2b9c12471ad
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
17112ad8a21a77620eb1ff14dcf8bdd6b7859712 |
|
07-Aug-2012 |
Romain Guy <romainguy@google.com> |
Cleanup of libhwui Change-Id: Ib7f5771548462c00027a8ad57badfb68c50644f9
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
c25259519f1b74bb62a2b051b74537f073436b5c |
|
28-Jul-2012 |
Romain Guy <romainguy@google.com> |
Rename drawGeneralText to drawText Change-Id: I5062ea5b0605fc7af27f410fafc930d10f38e926
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
996e57c84368058be793897ebc355b917a59abc2 |
|
24-Jul-2012 |
Raph Levien <raph@google.com> |
Hardware implementation of glyph positioning (bug 5443796) This implementation adds a drawGeneralText() method to the OpenGL Renderer, which supports both a global x, y position, an array of individual glyph positions, and also a length parameter (which enables drawing of underline and strikethrough. It also adds the method to the display list (with marshalling and unmarshalling). With this change, the existing drawText() method is removed entirely, as it's subsumed by the new method. It's easy enough to revert to the old functionality if needed by passing in a NULL positions array. Change-Id: I8c9e6ce4309fd51cc5511db85df99f6de8f4f6f5
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
416a847633680d94efb926837efdc18726d54918 |
|
20-Jul-2012 |
Raph Levien <raph@google.com> |
Add drop shadow for drawPosText in hwui renderer. This patch adds support for drop shadows (setShadowLayer) for drawPosText in the hwui renderer. In and of itself, it's not very important, but it's on the critical path for correct mark positioning, tracked as bug 5443796. The change itself is fairly straightforward - it basically just adds an extra "positions" argument to all draw and measure methods on the code path for drawing drop shadowed text, as well as to the cache key for cached shadow textures. Change-Id: Ic1cb63299ba61ccbef31779459ecb82aa4a5e672
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
8a4ac610e1aaf04931ac1af54b146a7fc8e66114 |
|
18-Jul-2012 |
Romain Guy <romainguy@google.com> |
Don't clear the dirty clip flag if it's not applied Bug #6833979 Change-Id: I0ea78b7f31a557a335de10d910d03b0520029080
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
4121063313ac0d6f69f6253cac821d0c1c122086 |
|
17-Jul-2012 |
Romain Guy <romainguy@google.com> |
Add shader-based text gamma correction To enable it, the system property ro.hwui.text_gamma_shader must be set to true. For testing, DEBUG_FONT_RENDERER_FORCE_SHADER_GAMMA can be set to 1 in libhwui/Debug.h. Change-Id: If345c6b71b67ecf1ef2e8847b71f30f3ef251a27
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
be6f9dc1e71b425b7ac1c40c0a2c72d03eb9fbee |
|
16-Jul-2012 |
Romain Guy <romainguy@google.com> |
Don't copy paints for 9patches Change-Id: I863100a0dc53fec1a3a1b2acbdeb76e6049ffe58
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
9c0b188e4231bcb967234f3646c178d22d8a9f50 |
|
13-Jul-2012 |
Romain Guy <romainguy@google.com> |
Text shadow alpha handling incorrect External bug: http://code.google.com/p/android/issues/detail?id=34879 This CL also fixes a bug where a View's alpha would be applied twice. Change-Id: I13a1546228f44d4c169259414b6fa103a6e4a0fa
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
44b2fe3fc114ee5f7273c6b0fee2cc999bf244a2 |
|
07-Jun-2012 |
Chet Haase <chet@google.com> |
Track canvas clearing for swap buffers logic. A previous fix made it necessary for a frame to render something to GL in order to cause a call to eglSwapBuffers(). Besides the calls being tracked as part of issuing a DisplayList, there is also a potential call to clear the canvas (via glClear()) on non-opaque surfaces. This call is also good to track, since a surface that gets cleared without any other drawing operations is worth flipping to the screen (to erase old contents on that surface). This fix tracks the status of the pre-draw operations to find out whether glClear() was called and then sets the drawing status appropriately. Issue #6606422 QuickContact dismissal is janky again (Tracking) Change-Id: I5fcaccfdc9293dd46b83f2fc279730a5d2740ebf
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
486590963e2207d68eebd6944fec70d50d41116a |
|
01-Jun-2012 |
Chet Haase <chet@google.com> |
Skip eglSwapBuffers() call when we do not draw to GL The fix is to track when we issue GL drawing commands, and to skip the call to eglSwapBuffers() when a DisplayList does not result in any actual rendering calls to GL. Issue #6364143 QuickMuni list items and buttons flicker instead of fade Change-Id: I60a02c61a58c32d92481a1e814b4c8a49c6a37a3
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
ddf74373616c89e0880a28a2185fd7ce3db91de6 |
|
22-May-2012 |
Romain Guy <romainguy@google.com> |
Ensure we always set the proper blending mode Bug #6527305 At the beginning of a frame, always set the blending mode that we think GL is using just in case it was modified by another entity (for instance a WebView functor.) Change-Id: I0e1d0abee8a2abb2b8e7622aed28346e89562c06
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
f26c8be01bb218619e073a209c9d57fe9d26c517 |
|
18-May-2012 |
Romain Guy <romainguy@google.com> |
Sanitize display list properties The comparisons used in the various properties setters could fail badly in some specific conditions. The scale properties in particular did not use the same comparisons. This change also clamps alpha to the 0..1 range which avoids overflow issues with lowp registers in GLSL computations. Change-Id: I3e73b584e907a14e2c33d0865ca0d2d4d5bff31d
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
49c5fc0b9e850497233e189ff9dcc71a78ebe6e7 |
|
15-May-2012 |
Romain Guy <romainguy@google.com> |
Avoid unnecessary copy when invoking drawBitmap(int[]) Bug #6483390 Change-Id: I4d2d725ef50c9401b4bd998b6160128102b40745
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
e651cc6239616a202f6e96ebc2ed93b4b8b3627c |
|
15-May-2012 |
Romain Guy <romainguy@google.com> |
Remove all Dalvik allocations from Cavnas.drawBitmap(int[], ...) Change-Id: Ie28538a2104d21154fdc78a56525e7403f08287d
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
ba6be8a62dcdb3ffd210cd36b9af4e3a658eac47 |
|
24-Apr-2012 |
Romain Guy <romainguy@google.com> |
Prevent WebView from crashing when detached from the window Bug #6365056 WebView enqueues a functor in the hardware renderer to handle animations and this functor is called at a later time by the hardware renderer. However, the functor was not removed from the queue when WebView was removed from the window. This could cause the hardware renderer to attempt to execute an invalid functor and lead to a crash. Change-Id: I9d38e80f3fdc5e29d4d0cdfa1e893c251a954508
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
1271e2cc80b01d577e9db339459ef0222bb9320d |
|
20-Apr-2012 |
Chet Haase <chet@google.com> |
Remove USE_DISPLAY_LIST_PROPERTIES flag This flag was still hanging around pending any need to disable DisplayList properties. But things seem stable, so it's time to clean up and simplify the code. At the same time, I reduced redundance in DisplayList dimensions. We used to call drawDisplayList() with width/height parameters that were used to do a clip reject. This is redundant with the DisplayList properties that set the bounds of the DisplayList; the left/right and top/bottom properties represent the same width/height properties formerly used in drawDisplayList(). The new approach is to not pass dimensions to drawDisplayList(), but to instead pull those dimensions directly from the DisplayList when needed. Change-Id: I8871beff03b1d4be95f7c6e079c31a71d31e0c56
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
a23eed808a1ae4ec0d818c0a9238385e797fd056 |
|
13-Apr-2012 |
Chet Haase <chet@google.com> |
Fix layer blending bug Cached layers were sometimes retaining an obsolete blending value, causing artifacts where translucent objects were disappearing completely. Also, added extra tracing info for DisplayLists. Issue #6303668 Flickering views during SwipeHelper drag Change-Id: I66ce158652c4a3ed316040585b40b1744e1fad0c
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
fda531c9e4e49cfd962d3784b3501f6a1e64dc22 |
|
04-Apr-2012 |
Romain Guy <romainguy@google.com> |
Merge "Disable AA lines vertex attrib arrays after rendering"
|
7b63142d2f4bc32beacedcc761453b8aea1f3a86 |
|
04-Apr-2012 |
Romain Guy <romainguy@google.com> |
Disable AA lines vertex attrib arrays after rendering Change-Id: I2f035e9d87f4f97bc1e37355c84570fd58df0374
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
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
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
8f3b8e32993d190a26c70c839a63d8ce4c3b16d9 |
|
28-Mar-2012 |
Romain Guy <romainguy@google.com> |
Allow fine-grained control over functors execution Adds non-drawing execution mode Change-Id: I82f92cf1b9a3b9ff2ca6d7427c4e02b73e04e6bf
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
6554943a1dd6854c0f4976900956e556767b49e1 |
|
27-Mar-2012 |
Romain Guy <romainguy@google.com> |
Use a status_t return type for GL functors WebView needs more fine-grained control over the behavior of the framework upon execution of the display lists. The new status_t allows WebView to requests its functor to be re-executed directly without causing a redraw of the entire hierarchy. Change-Id: I97a8141dc5c6eeb6805b6024cc1e76fce07d24cc
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
325740fb444af8fc7fb0119b2e30ce322c2ae134 |
|
25-Feb-2012 |
Romain Guy <romainguy@google.com> |
Add hooks to implement Canvas.drawTextOnPath() in GL Change-Id: I165c9e05facf5365aa6850605688e538640c7fcc
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
33f6beb10f98e8ba96250e284876d607055d278d |
|
17-Feb-2012 |
Romain Guy <romainguy@google.com> |
Record possible clip rejects when recording display lists This optimization allows us to quickly skip operations that lie entirely outside of the known bounds of a display list. Because of ViewGroup.setClipChildren, we must keep the operations recorded in the display list. setClipChildren(false) is however a very uncommon operation and we will therefore often benefit from this new optimization. Change-Id: I0942c864e55298e6dccd9977d15adefbce3ba3ad
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
13631f3da855f200a151e7837ed9f6b079622b58 |
|
31-Jan-2012 |
Romain Guy <romainguy@google.com> |
Add debug markers to OpenGLRenderer These markers will be used to group the GL commands by View in the OpenGL ES debugging tool. This will help correlate individual GL calls to higher level components like Views. Change-Id: I73607ba2e7224a80ac32527968261ee008f049c6
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
530041d3191ce817832a0108514617768e43cda6 |
|
26-Jan-2012 |
Romain Guy <romainguy@google.com> |
Add stencil buffer to the EGL config Change-Id: If76c0cd6127534d90f9526b75c0f8e56259c6722
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
5ff9df658230d49e42c43586997a02d8e4dd417e |
|
24-Jan-2012 |
Romain Guy <romainguy@google.com> |
Add full support for Canvas.setDrawFilter() Change-Id: I0ad35d0603c4eeda469014803be14c1dcdde918c
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
eb9a5367e8f0e970db8509ffb2584f5376bc62ed |
|
18-Jan-2012 |
Romain Guy <romainguy@google.com> |
First pass at implementing Canvas.drawPosText() in GL Change-Id: Ia3ac347e95d57eb86c63045156c8dbc0572b03cb
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
15bc6437f8b4cf10dba55c7638d349e7b9563f4f |
|
13-Dec-2011 |
Romain Guy <romainguy@google.com> |
Reduce the number of GL commands generated by the UI This optimization along with the previous one lets us render an application like Gmail using only 30% of the number of GL commands previously required Change-Id: Ifee63edaf495e04490b5abd5433bb9a07bc327a8
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
cac5fd3e09e9dc918753d4aff624bf29a367ade3 |
|
02-Dec-2011 |
Romain Guy <romainguy@google.com> |
Faster text clipping Change-Id: I03a00c4261d81a416b1ad7b86ce2d432c71908b4
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
7953745dd565167113f8cbfc461bc0521d32d870 |
|
12-Oct-2011 |
Romain Guy <romainguy@google.com> |
Reduce the size of libhwui by 50% This change removes unnessary symbols. All symbols are hidden by default, public APIs with exported symbols are explicitly marked with ANDROID_API. Change-Id: I692fde432a86c12108de1cfd1f6504919a7d5f3f
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
9d865512f1a39bac6bed612b24023213d5a1fb1d |
|
12-Aug-2011 |
Romain Guy <romainguy@google.com> |
Remove unnecessary private API Change-Id: I2ecb367528ec0691c07153a3d163b82a6ca33fdf
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
e3c26851dc315b730ea0fe5ef35bb1db81f6d675 |
|
26-Jul-2011 |
Romain Guy <romainguy@google.com> |
Improve rendering performance on some GPUs This change sets textures filtering to GL_NEAREST by default. GL_LINEAR filtering is only used when textures are transformed with a scale or a rotation. This helps save a couple of fps on some GPUs. Change-Id: I1efaa452c2c79905f00238e54d886a37203a2ac1
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
77a811610f99e21da7f88dafef60d09f345d0506 |
|
15-Jun-2011 |
Romain Guy <romainguy@google.com> |
Add TextureView.getBitmap() This API can be used to get a Bitmap copy of the content of a TextureView. Change-Id: I07522216c353720fba5cab333174f58f484eb911
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
54be1cdf3d63095512120fa7ced5c16e462abffa |
|
14-Jun-2011 |
Romain Guy <romainguy@google.com> |
Batch glCopyTexImage() calls to get about 15 fps back on SGX. Change-Id: I04079e070739c1e46df3e90fc388c335e2a7d2b9
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
726aeba80ffc6778a9bc3e0ee957b8d644183505 |
|
01-Jun-2011 |
Romain Guy <romainguy@google.com> |
Add support to OpenGLRendere to draw BiDi text. Bug #4350336 Change-Id: I1cf31693f7ca9653fa3a41b5b91c27ef288d680f
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
f09ef51889f75289b041f9e9f949b7b82ed5b686 |
|
27-May-2011 |
Romain Guy <romainguy@google.com> |
Fix issue with drawColor(color, Mode.Clear) Change-Id: I486b24a5b609c6f8adb0276037ddb24af2b888b2
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
9dec462c1f522533620be3c70f2fc60e69368c1a |
|
13-May-2011 |
Fabrice Di Meglio <fdimeglio@google.com> |
Merge "Prepare OpenGLRenderer to use glyphs from TextLayoutCache"
|
2ea75880142152b3a9993cb245754d73c05749a7 |
|
13-May-2011 |
Fabrice Di Meglio <fdimeglio@google.com> |
Prepare OpenGLRenderer to use glyphs from TextLayoutCache - add OpenGLRenderer.drawGlyph() - refactor glypth logging code Change-Id: I797e6f1304d3f3f8f6ed31e7f9965d336233d2a4
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
858aa93ddb6e69e0503382af63bb681b6728aef1 |
|
12-May-2011 |
Chet Haase <chet@google.com> |
Antialiasing for rectangles Change-Id: I7ca6931606541ddd504bd5db7f8dc04b9cde8cd9
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
ed30fd8e9a2d65ee5c8520de55b0089c219f390c |
|
23-Apr-2011 |
Chet Haase <chet@google.com> |
Add ability for hierarchyviewer to output displaylist info Clicking on a node in hierarchyviewer1 and hierarchyviewer2 and then clicking the new "Dump DisplayList" button will cause the display list for the selected node (including its children) to be output into logcat. Change-Id: Iad05f5f6cca0f8b465dccd962b501dc18fe6e053
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
a17de9b493123f0d6e6d0b842150bf29322b7a88 |
|
05-May-2011 |
Chet Haase <chet@google.com> |
Revert "Add ability for hierarchyviewer to output displaylist info" This reverts commit b2a4b52e8d5e499d33e2765e8c47851bf0266299.
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
b2a4b52e8d5e499d33e2765e8c47851bf0266299 |
|
23-Apr-2011 |
Chet Haase <chet@google.com> |
Add ability for hierarchyviewer to output displaylist info Clicking on a node in hierarchyviewer1 and hierarchyviewer2 and then clicking the new "Dump DisplayList" button will cause the display list for the selected node (including its children) to be output into logcat. Change-Id: Id32f62569ad1ab4d533bc62987f3a7390c1bb4e6
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
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
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
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
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
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
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
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
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
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
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
ed6fcb034b44d9a6ac2fc72fee6030417811f234 |
|
21-Mar-2011 |
Romain Guy <romainguy@google.com> |
Add support for drawPoint() and drawPoints(). Change-Id: I01bef50c08ec3160f8d40dc060b2cf6c2e4d7639
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
a168d7372132d6c87835878794b6ed43d0d282fd |
|
19-Mar-2011 |
Romain Guy <romainguy@google.com> |
Correctly apply filters to Alpha8 bitmaps. This change also removes unnecessary operations from display lists. Change-Id: I627f85861982731f0ee7705b48b36d9c56f22f39
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
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
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
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
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
3a3133d876caf60ebff2176ad75c3dcf0259148d |
|
02-Feb-2011 |
Romain Guy <romainguy@google.com> |
Update layers based on the dirty region. Bug #3413433 This helps Launcher when a widget updates during a scroll, or when interacting with widgets on the workspace if layers are still turned on. Change-Id: Ic7a42eb34f74f4ae988039754f815e2efd1d1e4f
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
2b1847ea60650a9f68372abe860415f18b55081d |
|
26-Jan-2011 |
Romain Guy <romainguy@google.com> |
Remove unused API Change-Id: I1714fd82a64b752f0350ef4ef9179ce19e089c6a
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
7d7b5490a0b0763e831b31bc11f17d8159b5914a |
|
25-Jan-2011 |
Romain Guy <romainguy@google.com> |
Enable partial invalidates when rendering with OpenGL. Change-Id: Ie8be06c4776b815e8737753eb8003b4fd8936130
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
daf98e941e140e8739458126640183b9f296a2ab |
|
10-Jan-2011 |
Chet Haase <chet@google.com> |
Use optimized display lists for all hwaccelerated rendering Previously, display lists were used only if hardware acceleration was enabled for an application (hardwareAccelerated=true) *and* if setDrawingCacheEnabled(true) was called. This change makes the framework use display lists for all views in an application if hardware acceleration is enabled. In addition, display list renderering has been optimized so that any view's recreation of its own display list (which is necessary whenever the visuals of that view change) will not cause any other display list in its parent hierarchy to change. Instead, when there are any visual changes in the hierarchy, only those views which need to have new display list content will recreate their display lists. This optimization works by caching display list references in each parent display list (so the container of some child will refer to its child's display list by a reference to the child's display list). Then when a view needs to recreate its display list, it will do so inside the same display list object. This will cause the content to get refreshed, but not the reference to that content. Then when the view hierarchy is redrawn, it will automatically pick up the new content from the old reference. This optimization will not necessarily improve performance when applications need to update the entire view hierarchy or redraw the entire screen, but it does show significant improvements when redrawing only a portion of the screen, especially when the regions that are not refreshed are complex and time- consuming to redraw. Change-Id: I68d21cac6a224a05703070ec85253220cb001eb4
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
8b2f5267f16c295f12faab810527cd6311997e34 |
|
24-Jan-2011 |
Romain Guy <romainguy@google.com> |
Add support for arcs. Change-Id: I96c057ff4eb1b464b03f132da0b85333777bee4f
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
c1cd9ba335b293f11e1082447ef08e474710a05f |
|
23-Jan-2011 |
Romain Guy <romainguy@google.com> |
Add support for ovals and stroked rectangles. Change-Id: I1292e241386763c82e6622c8f7ed90b0f5b7bd4f
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
5a7b466a2b4b7ced739bd5c31e022de61650545a |
|
21-Jan-2011 |
Romain Guy <romainguy@google.com> |
Add support for drawBitmapMesh(). Change-Id: Ic77f9c534bb90dc7b9458299544bd50b8b6ae6a5
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
01d58e43ede5ca98cbebdd166f9b0c545032c01b |
|
20-Jan-2011 |
Romain Guy <romainguy@google.com> |
Add rounded rects and circles support to OpenGLRenderer. Change-Id: I6cedf2b495d58de7c0437096809fa9e4518a1b8c
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
42f3a4b7c35dd1ea1922356eb3611af8cde05179 |
|
19-Jan-2011 |
Romain Guy <romainguy@google.com> |
Make embedded hardware layers work. Bug #3369474 Change-Id: Ib6d7fb44eedda9dc2933b5e1b176f307968af91d
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
807daf7df615b60ce6fc41355aabe3aa353cebab |
|
18-Jan-2011 |
Romain Guy <romainguy@google.com> |
Add support for skew() Change-Id: Ia3a9a867f74fd78b61f75179e3788fdc2f0cacd0
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
f219da5e32e85deb442468ee9a63bb28eb198557 |
|
16-Jan-2011 |
Romain Guy <romainguy@google.com> |
Don't blend transparent pixels when rendering layers. With this change, the rendere keeps track of what regions are rendered into and generates a mesh that matches these regions exactly. The mesh is used to composite the layer on screen. Change-Id: I1f342576b9134fb29caff7fb8f4c1da179fe956d
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
1bd1bad0b4a75e633c5edbe802bf6fb4dd765161 |
|
15-Jan-2011 |
Romain Guy <romainguy@google.com> |
Preapre region tracking in layers Change-Id: Ied1fa0d36c99ef4e33cb8fde7e3106a793db3a4c
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
ffac7fc5042296a459d0f5a450dbfe20917093dc |
|
14-Jan-2011 |
Romain Guy <romainguy@google.com> |
Add debug logs for display lists. Change-Id: I7bae8fd96e9eccb51f29f73e4069b4d3e6bdbdd7
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
ada830f639591b99c3e40de22b07296c7932a33f |
|
13-Jan-2011 |
Romain Guy <romainguy@google.com> |
Cleanup implementation of hardware layers. The new implementation relies on OpenGLRenderer's existing layer code instead of duplicating it. The new code is much cleaner, with simpler and better APIs and allows tracking of drawn regions inside layers. Region tracking is not yet enabled but this will be done in a future CL. Change-Id: Ie826121a2227de8252c77b992a61218defea5143
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
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
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
8d0d4783a0206c5884bf0b958d181f450ba5207d |
|
15-Dec-2010 |
Romain Guy <romainguy@google.com> |
Cleanup OpenGLRenderer::drawLines() Change-Id: I3545a616e964335897c6e4148c431a07a2ce2a8b
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
86568198f2c83d4ce5c4cd692eda074ba9de9ed2 |
|
15-Dec-2010 |
Romain Guy <romainguy@google.com> |
Continue cleanup refactoring in OpenGLRenderer. Methods that still need refactoring: - drawLines - composeLayerRegion Change-Id: If546641adf598d49c330988803667264fda50ac2
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
5536841e5452172e7772d84ad5f4a2fc7059c9dd |
|
14-Dec-2010 |
Romain Guy <romainguy@google.com> |
OpenGLRenderer would not render colors < ALPHA_THRESHOLD Bug #3282805 This bug was introduced with a previous refactoring. This also fixes issues with setting the alpha when drawing bitmaps. Change-Id: Id47641d26a4536c7e540041f92243bf6db9fc96d
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
70ca14e08ae197547ac412e8a1210e1ebdfb2eb1 |
|
14-Dec-2010 |
Romain Guy <romainguy@google.com> |
Refactor OpenGLRenderer to simplify OpenGL drawing code. This is the first step of the refactoring: - drawColorRect - drawTextureMesh Remaining methods to refactor: - setupTextureAlpha8 - drawPath - setupShadow - drawText - drawLines - composeLayerRegion Change-Id: I0fced6a05b6b6eee10ee7cef0c3fbdaa6cefab20
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
6620c6d413f972819fada92b574f0fa9e96d36c1 |
|
07-Dec-2010 |
Romain Guy <romainguy@google.com> |
Correctly render text when coordinates are not integers. Bug #3225632 Change-Id: If09759e6e95eb2885362ab3ba088cf5aae64c7bf
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
a5ef39a21683189e5906c9f252b997f0508e350d |
|
04-Dec-2010 |
Romain Guy <romainguy@android.com> |
Don't render degenerate triangles in 9patches. Bug #3251983 Change-Id: Ib0b38a7b8111542372f4c4c106b6321c26fe4ad4
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
c15008e72ec00ca20a271c3006dac649fd07533b |
|
10-Nov-2010 |
Romain Guy <romainguy@google.com> |
Move all debug flags in a single place. This change also adds a new memory usage flag. When turned on, the following is printed after every frame: D/OpenGLRenderer( 3723): Current memory usage / total memory usage (bytes): D/OpenGLRenderer( 3723): TextureCache 3766680 / 20971520 D/OpenGLRenderer( 3723): LayerCache 3538944 / 8388608 D/OpenGLRenderer( 3723): GradientCache 135168 / 524288 D/OpenGLRenderer( 3723): PathCache 41180 / 4194304 D/OpenGLRenderer( 3723): TextDropShadowCache 0 / 2097152 D/OpenGLRenderer( 3723): FontRenderer 0 262144 / 262144 D/OpenGLRenderer( 3723): FontRenderer 1 262144 / 262144 D/OpenGLRenderer( 3723): FontRenderer 2 262144 / 262144 D/OpenGLRenderer( 3723): Other: D/OpenGLRenderer( 3723): FboCache 2 / 12 D/OpenGLRenderer( 3723): PatchCache 31 / 512 D/OpenGLRenderer( 3723): Total memory usage: D/OpenGLRenderer( 3723): 8268404 bytes, 7.89 MB This should help tracking possibe memory issues. Change-Id: I83f483ca1d2dbef904829bce368e33fe5503e8d6
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
0fe478ea04720a57ef3919dbc23711bc7eba517f |
|
08-Nov-2010 |
Romain Guy <romainguy@google.com> |
Support nested display lists. Change-Id: I3815a2832fc0f722c668ba8f51c5f177edb77c94
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
7f78b0c3ae6222b39f6240524390de9764f21764 |
|
04-Nov-2010 |
Romain Guy <romainguy@google.com> |
Lines would not set the scissor before drawing. Lines were not drawing in Calendar because they were getting clipped by the previous clip rectangle. This change simply updates the scissor as needed. This change also reduces the number of state changes in GL. Change-Id: I41ab13dca3a33cfa6d1a44371c48852ab418b04e
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
5b3b35296e8b2c8d3f07d32bb645d5414db41a1d |
|
28-Oct-2010 |
Romain Guy <romainguy@google.com> |
Optimize FBO drawing with regions. This optimization is currently disabled until Launcher is modified to take advantage of it. The optimization can be enabled by turning on RENDER_LAYERS_AS_REGIONS in the OpenGLRenderer.h file. Change-Id: I2fdf59d0f4dc690a3d7f712173ab8db3848b27b1
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
746b7401ceb86b5f2805f8c0d3b39ac739152015 |
|
27-Oct-2010 |
Romain Guy <romainguy@google.com> |
Remove unnecessary GL calls. This change batches calls to glScissor() and removes extra GL queries and glActiveTexture() calls. Change-Id: I1cd079d314f87cd9c088f95c8d4909c2f860f6aa
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
8164c2d338781c3a3c4a443941070dca5d88f2a7 |
|
26-Oct-2010 |
Romain Guy <romainguy@google.com> |
Don't change textures wrap modes on every draw. Change-Id: If6d3f313778cc7f3e803a063338539c8b3e165e3
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
5c13d89c1332fcc499379b9064b891187b75ca32 |
|
08-Oct-2010 |
Chet Haase <chet@google.com> |
Optimizing display lists by referencing pointers to resources instead of copying them Change-Id: I81ad3551d74aa1e5bb64d69e33d2eb29a6c1eb6a
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
03750a067e818ca7fbd0f590e2ff6a8fded21e6c |
|
18-Oct-2010 |
Romain Guy <romainguy@google.com> |
Use VBOs to render most geometries. Change-Id: I4360dc4fe5693ab425450c107282b2c22db4dca7
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
99bcdc52dcb365ed7d8cfa13540fb33fbcbbac9d |
|
14-Oct-2010 |
Romain Guy <romainguy@google.com> |
Return identity matrix when rendering in an FBO. Change-Id: I57438e745b30c8cfe16c269f3cafcd719049d705
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
41030da16856c8869e1e51d4a0405432fa96614e |
|
13-Oct-2010 |
Romain Guy <romainguy@google.com> |
Add a getNativeMatrix() API. This API can be used by WebView to apply the appropriate transform on its rendering. Change-Id: I79aa39a29805f462fb08226370328815e74bdc52
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
4bb942083a0d4db746adf95349108dd8ef842e32 |
|
13-Oct-2010 |
Romain Guy <romainguy@google.com> |
Optimize 9patch rendering. This change detects empty quads in 9patches and removes them from the mesh to avoid unnecessary blending. Change-Id: I4500566fb4cb6845d64dcb59b522c0be7a0ec704
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
6b7bd24659fb175fe1f0e97c86c18969918b496a |
|
07-Oct-2010 |
Romain Guy <romainguy@google.com> |
Don't clear the framebuffer when not needed.
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
eb99356a0548684a501766e6a524529ab93304c8 |
|
06-Oct-2010 |
Romain Guy <romainguy@google.com> |
Optimize saveLayer() when the clip flag is set. This speeds up applications, especially Launcher.
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
b051e895ccb696604349c6c5efe7c4747e1d1ab6 |
|
29-Sep-2010 |
Romain Guy <romainguy@google.com> |
Add display lists caching. Change-Id: Iac3a248a81ed8cb076a83ef9d186b8ebba685b4c
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
4aa90573bbf86db0d33a3a790c5dbd0d93b95cfe |
|
27-Sep-2010 |
Romain Guy <romainguy@google.com> |
Adding display lists to the GL renderer (checkpoint.) Change-Id: Iaa49757600a53b39369dbb23f8c3feab282518e6
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
e2d345ea67e2960b37bfdc0fc8626d1bfa747404 |
|
25-Sep-2010 |
Romain Guy <romainguy@google.com> |
Add debug mode to measure performance. Change-Id: I9d4c84034dc200b99c8266165942a7cdbcb5c0c5
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
29d8997bd43b7c4ad37fc3d6f91eaafa74913c88 |
|
23-Sep-2010 |
Romain Guy <romainguy@android.com> |
Fix OpenGL errors in various places. Change-Id: I3a4e115d8fb13b6c443e65460d92987b16f2524c
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
c95c8d6bf8fda5c4e8ebd0033b789be7868e6e07 |
|
18-Sep-2010 |
Romain Guy <romainguy@google.com> |
Add support for non AA lines. Change-Id: Id5200e94815404d62760437d0d2dbb0a9276c700
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
759ea80dca64ad652110a129e0d8bf93fea79f61 |
|
17-Sep-2010 |
Romain Guy <romainguy@google.com> |
Add support for drawLines(), with anti-aliasing Change-Id: I16c0593c5671490909dec13a85df601e1428a1a6
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
b025b9c8b4efefadb01937db61a1f8ee7d2452bf |
|
16-Sep-2010 |
Romain Guy <romainguy@google.com> |
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
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
6820ac8b14b4558f5d8b833dde80895306a3e137 |
|
16-Sep-2010 |
Romain Guy <romainguy@google.com> |
Fix 9patch rendering. Change-Id: Ic4c18ff483cca95fbabcb10843f7714efe488adb
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
1c740bce8a762f02b5283045a0e2de7c8fb41277 |
|
14-Sep-2010 |
Romain Guy <romainguy@google.com> |
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
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
8694230ff25fa0a60e480d424843e56b718f0516 |
|
12-Sep-2010 |
Romain Guy <romainguy@google.com> |
Optimize calls to glCopyTexImage2D(). Change-Id: I34ee87bd4472864f440916e03a2894fae24bbe4a
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
f607bdc167f66b3e7003acaa4736ae46d78c1492 |
|
11-Sep-2010 |
Romain Guy <romainguy@google.com> |
Correct implementation of saveLayer(). Change-Id: I5375126636913e0a84f2d6bbd0ebe40d2e4f2763
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
a5aed0d58962a24c44728ffc46dc9e1ba2f9fda5 |
|
09-Sep-2010 |
Romain Guy <romainguy@google.com> |
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
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
8aef54fa17f2a3753d9a8f2027629bc480088f69 |
|
02-Sep-2010 |
Romain Guy <romainguy@android.com> |
Add support for Canvas flags on save. This is required for the rewrite of layers support. Change-Id: I5c0867dcf5aeb0392c8d0fbab05febb0eaff70d9
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
da8532c6f48b4c10b5e2ccb9e08690341efa1616 |
|
31-Aug-2010 |
Romain Guy <romainguy@google.com> |
Add hooks for hardware accelerated WebView. Change-Id: I907cdec8a67594f87749ac46bda85f04af5a2003
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
fb8b763f762ae21923c58d64caa729b012f40e05 |
|
24-Aug-2010 |
Romain Guy <romainguy@google.com> |
Use only one GL context per process, share chaches. Change-Id: Ieabaa25338d2f4b8d4fd90e7401ad6e7452eae11
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
2542d199745cdf3ec910b8e3e4cff5851ed24e9b |
|
18-Aug-2010 |
Romain Guy <romainguy@google.com> |
Layers were using an extra Snapshot causing extra clipping. Bug #2919310 Change-Id: I72ccd44bba7a3f3db72f581aa96198b6226e4478
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
0a41749953f35d33f61b3119e3161a82bb5fa59e |
|
17-Aug-2010 |
Romain Guy <romainguy@google.com> |
Cleanup, better code reuse. Change-Id: Ib86a7309ae579cce3b7cf464782c34e70a74c616
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
1e45aae5de003657e5d18f74d34998f5de5db5b7 |
|
14-Aug-2010 |
Romain Guy <romainguy@google.com> |
Add drop shadows. Change-Id: Ic6a72409d4785968d1fbdff229f17ee5c00b240b
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
7fbcc0492fca03857e3c45064f4aa040af817d55 |
|
05-Aug-2010 |
Romain Guy <romainguy@google.com> |
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
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
db1938e0e6ef816e228c815adccebd5cb05f2aa8 |
|
03-Aug-2010 |
Romain Guy <romainguy@google.com> |
Add support for ColorFilters. Color filters are fully supported and can be used with shaders. Change-Id: Id90ccf1c81cb462f2431f366f3f8f710d7971e04
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
06f96e2652e4855b6520ad9dd70583677605b79a |
|
31-Jul-2010 |
Romain Guy <romainguy@google.com> |
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
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
ae5575b3421c8fbe590ab046d7d5f2b36ecfd821 |
|
30-Jul-2010 |
Romain Guy <romainguy@google.com> |
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
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
889f8d1403761d5668115ced6cbb3f767cfe966d |
|
29-Jul-2010 |
Romain Guy <romainguy@google.com> |
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
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
ac670c0433d19397d4e36ced2110475b6f54fe26 |
|
28-Jul-2010 |
Romain Guy <romainguy@google.com> |
Generate shaders to cover all possible cases. With this change, all the vertex and fragment shaders used by the GL renderer are now generated based on a program description supplied by the caller. This allows the renderer to generate a large number of shaders without having to write all the possible combinations by hand. The generated shaders are stored in a program cache. Change-Id: If54d286e77ae021c724d42090da476df12a18ebb
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
e8e62a4a032a80409114a37908b5f18ab0080848 |
|
24-Jul-2010 |
Romain Guy <romainguy@google.com> |
Add text alignment support to drawText(). This change also integrates better support for RTL text. Change-Id: I6da8f5cf5dc28ca7cf1b22e27b0d853c919e8481
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
51769a68a5cb34e9564740c6a854fcb93018789d |
|
23-Jul-2010 |
Romain Guy <romainguy@android.com> |
Cleanup, added properties for the FontRenderer. Change-Id: I909c74815d3ac394438ad8071d17fef5401dbeed
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
bd0e6aa0ff0bd8b376772c3e23513a6021bdda87 |
|
23-Jul-2010 |
Romain Guy <romainguy@google.com> |
Add a way to query GL extensions. Change-Id: Ic27dbf72289dacf641b640a749fbd40c12cd474f
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
694b519ac647fe998fd396fe0784cc8e179aadc4 |
|
22-Jul-2010 |
Romain Guy <romainguy@google.com> |
Add text rendering. Change-Id: Ibe5a9fa844d531b31b55e43de403a98d49f659b9
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
a1db574036c9bc2d397b69f8200594027e1fff16 |
|
20-Jul-2010 |
Romain Guy <romainguy@google.com> |
Add preliminary support for text rendering. Change-Id: I547eb631dbda24d13960d54b4144fb8908fd8a49
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
c0ac193b9415680f0a69e20a3f5f22d16f8053be |
|
20-Jul-2010 |
Romain Guy <romainguy@google.com> |
Add support for linear gradients. Change-Id: Id15329da065045b3f06fdaed615f33cd57608496
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
f9764a4f532561f6e2e985ff3b25112f1132ce44 |
|
17-Jul-2010 |
Romain Guy <romainguy@android.com> |
Add program for linear gradient. This change adds a new DrawLinearGradientProgram class to enable the drawing of linear gradients. Two new vertex and fragment shaders are introduced, based on DrawTextureProgram's shaders. Change-Id: I885afc076bb6cef8cd3962ae21a086fa6a03bf96
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
7fac2e18339f765320d759e8d4c090f92431959e |
|
17-Jul-2010 |
Romain Guy <romainguy@android.com> |
Add plumbing to support gradients in OpenGL renderer. The LinearGradient class keeps a copy of the various parameters that define the gradient. The copies are native arrays to avoid copying Java arrays on every draw call. The gradient code path is implemented until OpenGLRenderer::drawRect() (see TODO.) The actual gradient implementation will be added in a latter change. Change-Id: I9300d250ef5e2e9c2e097c3116ee71dfc9d752d8
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
1e79386ba34f0db38c1b35b22cdf122632534354 |
|
17-Jul-2010 |
Romain Guy <romainguy@android.com> |
Optimize textures binding. The renderer is still changing textures' wrap modes every time, this will require a latter optimization. Change-Id: I3eb92cb8c886c4a692b7f0ca759911f9371d4d2c
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
079ba2c85b15e882629b8d188f5fbdb42f7f8eea |
|
16-Jul-2010 |
Romain Guy <romainguy@android.com> |
Improve clip support (add intersect, union and replace.) This change also modifies the way the clip is stored. The clip is now always stored in screen-space coordinates. Change-Id: I96375784d82dfe975bc6477a159e6866e7052487
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
d27977d1a91d5a6b3cc9fa7664ac7e835e7bd895 |
|
15-Jul-2010 |
Romain Guy <romainguy@google.com> |
Add support for BitmapShader. This change also fixes an issue with the clip and layers. Change-Id: I5fd9832098d8cf7ae8eb781ff9bffe7defaea279
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
3d58c03de0d8877b36cdb78b0ca8b5cac7f600e2 |
|
15-Jul-2010 |
Romain Guy <romainguy@google.com> |
Do not apply transforms when using drawColor(). This fixes an issue in the way the clip transformations were applied. Change-Id: I91e7b5d15baf244d1280e48938282bb33609081d
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
a979474f15b454c8e2963f239a3770e200bb227c |
|
13-Jul-2010 |
Romain Guy <romainguy@google.com> |
Cleanup: remove unnecessary parameters. Change-Id: I5956ef1db6be28a01369387aaeeb65a94656c48c
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
92429d9266edf63cf632c132c5936f0e31850988 |
|
13-Jul-2010 |
Romain Guy <romainguy@google.com> |
Fix premultiplied alpha. Change-Id: I08da422c5350503e1f4f27b9890f15a813d0c6c7
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
6926c72e25b8dec3dd4b84af0819fa1937ae7296 |
|
13-Jul-2010 |
Romain Guy <romainguy@google.com> |
Correctly support pre-multiplied alpha, optimizations, more stuff. Add support for the following drawing functions: - drawBitmap(int[]...) - drawPaint() Optimizes shader state changes by enabling/disabling attribute arrays only when needed. Adds quick rejects when drawing trivial shapes to avoid unnecessary OpenGL operations. Change-Id: Ic2c6c2ed1523d08a63a8c95601a1ec40b6c7fbc9
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
260e102162322958cf17dbd895cd6bd30dc87e32 |
|
12-Jul-2010 |
Romain Guy <romainguy@google.com> |
Optimize shader binding changes. This change also cleans up the internal API a little bit by using mat4 everywhere instead of float[16] (for the ortho matrix for instance.) Change-Id: I35924c7dc17bad17f30307118d5ed437c2ed37e0
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
fb5e23c327cd5f8f93d1eaa7c10f34d6fd3efb6c |
|
09-Jul-2010 |
Romain Guy <romainguy@google.com> |
Refactoring to move vertex computing to the Patch class. This change is mostly cleanup to keep less code in OpenGLRenderer. Change-Id: I954375143b2943829457ab470423729b60b844f5
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
82ba814ca0dea659be2cc6523bc0137679d961ce |
|
09-Jul-2010 |
Romain Guy <romainguy@google.com> |
Optimize blending state changes. Change-Id: I7c22a8aecccb8b5abfcf7243f049a4ef3cf3979a
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
f7f93556c8fcc640ab5adef79d021a80a72a645a |
|
09-Jul-2010 |
Romain Guy <romainguy@google.com> |
Draw n-patches using OpenGL. Currently only tested with title bars and buttons. Change-Id: I8263a9281898dc0e943b1b8412827fe55639b9d6
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
deba785f122a47915756ffd991f5540d952cf937 |
|
08-Jul-2010 |
Romain Guy <romainguy@google.com> |
Add support to draw 9patches in OpenGL. This change only adds the necessary API and stubs. The implementation will be added in another change. Change-Id: Ie50b8aff5868e78796cee331df15bdbf990d2ea1
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
dda570201ac851dd85af3861f7e575721d3345da |
|
06-Jul-2010 |
Romain Guy <romainguy@android.com> |
Add a layer (FBO) cache. The cache is used to draw layers so that a new texture does not have to be recreated every time a call to saveLayer() happens. The FBO cache used a KeyedVector, which is a bad idea. The cache should be able to store several FBOs of the same size (this happens a lot during scrolling with fading edges for instance.) This will be changed in a future CL. Change-Id: Ic316189e625f0dbcf0d273a71cc981a433d48726
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
f86ef57f8bcd8ba43ce222ec6a8b4f67d3600640 |
|
01-Jul-2010 |
Romain Guy <romainguy@google.com> |
Don't use full screen FBOs, this dramatically increase performance. The next step will be to add an FBO cache to avoid churning memory on every frame we draw. This change also adds support for drawBitmap(Bitmap, Matrix, Paint). Change-Id: I7825cdcf0cad9bffe6219e05d8328a53d4a6e583
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
8ba548f81d1ab5f1750cbf86098c4a14e0b8bead |
|
01-Jul-2010 |
Romain Guy <romainguy@google.com> |
Add implementation for drawBitmap(Bitmap, Rect, Rect, Paint) Change-Id: I10904d2325a5431d15801aebcec1048715678e8c
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
c1396e93b6a5286a5183c00c781b62e940a12c1f |
|
01-Jul-2010 |
Romain Guy <romainguy@google.com> |
Add implementation for drawBitmap(). Change-Id: Iada9325f3c5642b61c2e0c4cd80bcfbc92cb491e
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
ce0537b80087a6225273040a987414b1dd081aa0 |
|
30-Jun-2010 |
Romain Guy <romainguy@google.com> |
Add hooks for drawBitmap(). Change-Id: I58e962c3a8b2bc75c2605fe369ad3002579d86e0 Add texture cache. Change-Id: I1c0e5581d228869e114438258a1014e33e024ad7
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
d55a86120dd1e8ebcc6906c9ffd463f7460348da |
|
29-Jun-2010 |
Romain Guy <romainguy@google.com> |
Add support for saveLayer(). saveLayer() is affected by the paint's alpha and xfermode. Change-Id: I28693a9337052643adccdb4889a8f228d4e17903
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
026c5e16704e817cac7d9c382914c947e34f87e0 |
|
29-Jun-2010 |
Romain Guy <romainguy@google.com> |
Implement support for PorterDuff's blending modes. The blending modes are currently hooked up only when drawing filled rects but the code is reusable for other primitives. This will allow implementation of saveLayer(). This method is required to support the fade effects used throughout the standard Android UI. Change-Id: I396023d123436f16cdafc606e358e4eb80c9df2c
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
5cbbce535744b89df5ecea95de21ee3733298260 |
|
28-Jun-2010 |
Romain Guy <romainguy@android.com> |
Reduced the complexity of layers composition. This change also refactors the code base a bit by moving classes out of OpenGLRenderer into separate headers/implementations. This makes the code more manageable. This change also adds documentation for implementation methods. The undocumented methods are simply Skia's Canvas methods. Change-Id: I54c68b443580a0129251dddc1a7ac95813d5289e
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
bd6b79b40247aea7bfe13d0831c6c0472df6c636 |
|
26-Jun-2010 |
Romain Guy <romainguy@android.com> |
Add implementations for saveLayerAlpha() and textured rects. Even though there's an implementation for textured rects, drawBitmap() is not hooked up yet as it will require a good texture cache. This method is implemented using FBOs. There's currently an issue either in the driver or in the Canvas renderer that forces the FBO to be fullscreen, which is extremely expensive and yields terrible performance. Change-Id: I148419195e12d45653c60186938aa78c23a68e2c
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
7ae7ac48aa2b53453c9805075171ecd5bcafd7de |
|
25-Jun-2010 |
Romain Guy <romainguy@android.com> |
Convert tabs to spaces. Change-Id: I5d3ae48af79b19b6d293deff0521e4bb57d5114b
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
c7d53494f1fbd9f9d74af89053ff9fdb1ccbac6c |
|
25-Jun-2010 |
Romain Guy <romainguy@android.com> |
Implement quickReject() and drawRect(). The OpenGL ES 2.0 renderer can now draw colored rectangles. At least there's something on screen now. Change-Id: I80a13ccc1dd56784edf74f2670a364f30700234a
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
9d5316e3f56d138504565ff311145ac01621dff4 |
|
25-Jun-2010 |
Romain Guy <romainguy@google.com> |
Add colored rectangles implementation in OpenGLRenderer. Drawing two rectangles one after the other discards the second one because of Z buffering issues. This will be fixed in another changelist. Change-Id: Ida1b3cde8a78e60cacc07e477abc44def527ff67
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
f6a11b8a9e25ff9861bbba19251bea84d8a5daf2 |
|
24-Jun-2010 |
Romain Guy <romainguy@google.com> |
Add support for transformations. This change adds partial support for the following transforms: - scale() - translate() - rotate() - setMatrix() - getMatrix() The transform is stored in a snapshot and saved/restored as needed. The transform is currently not applied to the clip rect and is not mapped to the vertex shader. Change-Id: Id48993453311200804149917d0c126a4d0471226
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
bb9524b6bdddc7ac77d8628daa8b366b8a7be4a4 |
|
23-Jun-2010 |
Romain Guy <romainguy@google.com> |
Add implementations for clipRect(), save() and restore(). The current implementation of clipRect() does not apply local transformations before setting the new clip. Change-Id: I5997871bb638dfcd1a8ef96354846af52427e445
/frameworks/base/libs/hwui/OpenGLRenderer.h
|
85bf02fc16784d935fb9eebfa9cb20fe46ff7951 |
|
22-Jun-2010 |
Romain Guy <romainguy@google.com> |
Fix the simulator build. Change-Id: Ie404f7c2c308f0657f273af19a56e8c039b61898
/frameworks/base/libs/hwui/OpenGLRenderer.h
|