summaryrefslogtreecommitdiffstats
path: root/libs
Commit message (Collapse)AuthorAgeFilesLines
* Fix out of range glCopyTexImage2DRomain Guy2013-06-271-6/+9
| | | | | | | | | Bug #9425270 A better solution would be to use glCopyTexImage2D whenever possible but this change would be a little more dangerous. Change-Id: Ib1aaceda39d838716285ef97f356721416822dbb
* Workaround possible use after deleteChris Craik2013-06-101-1/+2
| | | | | bug:9321162 Change-Id: Ic35af5b5925da56e9a143e6b33658831038f3b72
* Restore previous alpha value on noop'd DisplayList operationsChet Haase2013-05-231-1/+3
| | | | | | | | | | | Previously, when a DisplayList operation was rejected because it was not in the clip bounds, the code would not properly restore the previous state, leading to errors in alpha values of the noop'd op being applied to unrelated operations later in the DisplayList. Issue #9051935 Flash of grey background when transitioning to conversation view Change-Id: I56645cc9ebf2e07be0228ca5e249213dbeb10d7d
* Fix off by one error in log trackingChris Craik2013-05-093-5/+6
| | | | | | | | | bug:8875715 Additionally moves op logging before the op is executed, to print correctly, in pre-order traversal Change-Id: I4e9566261f8363c73739d183e6d82b854f72ffad
* Merge "Convert alpha from [0..1] to [0.255] range Bug #8808886" into jb-mr2-devRomain Guy2013-05-041-1/+1
|\
| * Convert alpha from [0..1] to [0.255] rangeRomain Guy2013-05-031-1/+1
| | | | | | | | | | | | | | | | | | | | Bug #8808886 Without this conversion, alpha was always set to 0 or 1 which causes things to disappear mysteriously. Mysteries are meant to be solved and I solved them all in 6 characters. Change-Id: I2078420fbe968c046e999b0eabb24403e71108fd
* | Fix scaled-view droppings artifactChet Haase2013-05-031-2/+2
|/ | | | | | | | | | | | | | | | | | | | | | | Sometimes views that are scaled leave behind rows/columns on the screen as they move/scale around. The problem was that the pivot point around which the scale takes place (in the default case of scaling around the center of the view) was getting truncated to integer coordinates in the display list. Meanwhile, the pivot point at the Java level was using the true float values, resulting in a mis-match between the invalidation rectangle (computed at the Java level) and the drawing-operation rectangle (computed at the native level). This only occurred when views had odd bounds (thus the integer representation of the center differed from the float representation of the center), and only when some other drawing operation would expand the clip rect to allow the incorrect drawing operation (using the wrong pivot point) to draw outside of its clip boundaries. Issue #8617023 7x7 screen not updated correctly Change-Id: If88889b9450d34535df732b78077a29b1f24802d
* Fix quickReject logic to account for setClipChildren() settingChet Haase2013-04-193-35/+46
| | | | | | | | | | | | | | | | The rendering code optimizes by rejecting drawing operations that lie outside of the bounds of their views. This works in most situations, but breaks down when containers have called setClipChildren(false), because we reject drawing that is outside of that container, but which should be drawn anyway. Fix is to pass in the value of that flag to the DisplayList drawing routines which take that flag into account when deciding whether to quickReject any particular operation. Issue #8659277 animation clipping Change-Id: Ief568e4db01b533a97b3c5ea5ad777c03c0eea71
* Merge "Prevent transformed ops from merging in the first place" into jb-mr2-devChris Craik2013-04-181-0/+2
|\
| * Prevent transformed ops from merging in the first placeChris Craik2013-04-181-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | bug:8649215 Previously we prevented ops with non-translate transforms from merging, but missed the case of the first op in a merging batch containing a non-translate transform. This fulfills the assumption of drawText's non-immediate mode that merged ops will have pure translate transforms. Change-Id: I6f6db341aff3f7e84e74b4c3ccf970d585a2db1a
* | Make layer double drawing visible in overdraw debug modeChris Craik2013-04-163-6/+31
|/ | | | | | | | | | | | | | | | | | A clipped saveLayer will cause two draws - first to an onscreen buffer, then again back to the framebuffer. This change - when in overdraw debug - reissues draws associated with a clipped saveLayer, but only to the stencil buffer. Operations within a saveLayer are shown correctly to be twice drawn, and View.setAlpha() without an associated hardware layer, or hasOverlappingRendering() are made more visible. Hardware layers, on any frame that they are updated, similarly draw twice, and will also be counted against the stencil buffer doubly. Note: greater depths of layers - e.g. a saveLayer within a saveLayer - are not respected, as that would require additional region tracking. Change-Id: I61fb0e61038fe66013d59914c20bb47a550dea7d
* Merge "Maybe fix issue #8620910: Win_sdk build failed and unable to ↵Dianne Hackborn2013-04-151-0/+2
|\ | | | | | | create..." into jb-mr2-dev
| * Maybe fix issue #8620910: Win_sdk build failed and unable to create...Dianne Hackborn2013-04-151-0/+2
| | | | | | | | | | | | ...the sdk platform repo Change-Id: Ib6cd7c0dfb9b6217ae79af3e2ac25fe0442996e3
* | Merge "Draw Operation merging" into jb-mr2-devChris Craik2013-04-1512-176/+627
|\ \ | |/ |/|
| * Draw Operation mergingChris Craik2013-04-1512-176/+627
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* | Merge "There should be a mandatory coder's license. Bug #8586560" into ↵Romain Guy2013-04-131-0/+1
|\ \ | | | | | | | | | jb-mr2-dev
| * | There should be a mandatory coder's license.Romain Guy2013-04-121-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | Bug #8586560 And I don't deserve to pass the test. Change-Id: Ic7886205511f16145a925fc860e4a03dfaf473d5
* | | Merge "Add new resources trace, also trace apk dex loading." into jb-mr2-devDianne Hackborn2013-04-121-0/+12
|\ \ \ | |/ / |/| |
| * | Add new resources trace, also trace apk dex loading.Dianne Hackborn2013-04-121-0/+12
| |/ | | | | | | Change-Id: Ia48566efb21ee018659bd976ddb3a0f4997b9a3a
* | Properly computer gradient textures widthRomain Guy2013-04-121-2/+5
|/ | | | | | Only on devices that do not have the npot extension Change-Id: I472a13dc707d2abaf5fcc06f99c9da343b333558
* Introduce PixelBuffer API to enable PBOsRomain Guy2013-04-1116-113/+576
| | | | | | | | | | | | | | | | | | | | | | | PBOs (Pixel Buffer Objects) can be used on OpenGL ES 3.0 to perform asynchronous texture uploads to free up the CPU. This change does not enable the use of PBOs unless a specific property is set (Adreno drivers have issues with PBOs at the moment, Mali drivers work just fine.) This change also cleans up Font/FontRenderer a little bit and improves performance of drop shadows generations by using memcpy() instead of a manual byte-by-byte copy. On GL ES 2.0 devices, or when PBOs are disabled, a PixelBuffer instance behaves like a simple byte array. The extra APIs introduced for PBOs (map/unmap and bind/unbind) are pretty much no-ops for CPU pixel buffers and won't introduce any significant overhead. This change also fixes a bug with text drop shadows: if the drop shadow is larger than the max texture size, the renderer would leave the GL context in a bad state and generate 0x501 errors. This change simply skips drop shadows if they are too large. Change-Id: I2700aadb0c6093431dc5dee3d587d689190c4e23
* Merge "Fix Contacts animation jank" into jb-mr2-devChet Haase2013-04-101-4/+5
|\
| * Fix Contacts animation jankChet Haase2013-04-101-4/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The last frame of an animation stays stuck on the screen for a couple of frames. Specifically, the "Quick Contact" animation that animates the picture closed (fades/scales it away) animates all the way to the end... then hangs there briefly before being taken down. The problem is a rendering bug where we correctly detect that a DisplayList has nothing to draw (since the last frame is completely transparent, alpha==0), but incorrectly ignore the fact that we cleared the transparent-background window prior to not-drawing that DisplayList. When we detect that there's nothing to draw, we don't bother swapping buffers. So even though we drew the right thing (clearing the buffer), we didn't actually post the buffer to the screen. This change factors in both the clear and the draw to decide when to swap buffers. Issue #8564865 Quick contact close animation jank redux Change-Id: Ib922cff88a94f025b62f7461c1a29e96fe454838
* | Merge "Add liblog" into jb-mr2-devYing Wang2013-04-101-1/+1
|\ \
| * | Add liblogYing Wang2013-04-091-1/+1
| |/ | | | | | | | | Bug: 8580410 Change-Id: I746aa8258866508c3a725d0773faf4518096548f
* | Change the dither texture's swizzlingRomain Guy2013-04-092-1/+5
|/ | | | | | | | | | This is a more elegant way to sample from a float alpha texture. Instead of sampling from the red channel in the fragment shader we can set the alpha channel swizzle to redirect it to the red channel. This lets us sample from the alpha channel in the fragment shader and get the correct value. Change-Id: I95bbf7a82964e1bf42c0fee1b782b6bdbbcef618
* Merge "Pipe through device resolution information" into jb-mr2-devMichael Wright2013-04-051-2/+2
|\
| * Pipe through device resolution informationMichael Wright2013-04-041-2/+2
| | | | | | | | | | Bug: 8424494 Change-Id: Iafeeee0d5cd29342c1cdc86b9616222aaa5d1b94
* | Merge "Use float textures to render gradients when possible" into jb-mr2-devRomain Guy2013-04-056-122/+192
|\ \
| * | Use float textures to render gradients when possibleRomain Guy2013-04-056-122/+192
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Float textures offer better precision for dithering. In addition this change removes two uniforms from gradient shaders. These uniforms were used to dither gradients but their value is a build time constant. Instead we hardcode the value directly in the shader source at compile time. Change-Id: I05e9fd3eef93771843bbd91b453274452dfaefee
* | | Merge "Correctly manage the lifecycle of IME InputChannels." into jb-mr2-devJeff Brown2013-04-051-0/+5
|\ \ \ | |/ / |/| |
| * | Correctly manage the lifecycle of IME InputChannels.Jeff Brown2013-04-041-0/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | InputChannels are normally duplicated when sent to a remote process over Binder but this does not happen if the recipient is running within the system server process. This causes problems for KeyGuard because the InputMethodManagerService may accidentally dispose the channel that KeyGuard is using. Fixed the lifecycle of InputChannels that are managed by the IME framework. We now return a duplicate of the channel to the application and then take care to dispose of the duplicate when necessary. In particular, InputBindResult disposes its InputChannel automatically when returned through Binder (using PARCELABLE_WRITE_RETURN_VALUE). Bug: 8493879 Change-Id: I08ec3d13268c76f3b56706b4523508bcefa3be79
* | | Merge "First OpenGL ES 3.0 based optimization" into jb-mr2-devRomain Guy2013-04-047-13/+40
|\ \ \
| * | | First OpenGL ES 3.0 based optimizationRomain Guy2013-04-047-13/+40
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This change uses a new OpenGL ES 3.0 feature to upload less data when the font cache needs to be update. This can result in significant performance improvements on device with large textures or with locales that use a lot of glyphs (CJK for instance.) This change also fixes various unpack alignment issues. The unpack alignment, as well as the unpack row length, is not texture specific but a global state that affect all glTex/SubImage2D calls. Some of them were missing the appropriate glPixelStorei() call. This could result in corrupted textures. Change-Id: Iefb429d4d0d0b4e0faeadf27daafee6d30a21d85
* | | | Merge "Traverse layers in update order" into jb-mr2-devChris Craik2013-04-043-8/+7
|\ \ \ \ | |_|_|/ |/| | |
| * | | Traverse layers in update orderChris Craik2013-04-043-8/+7
| | |/ | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | bug:8540150 Layers now require traversal in update order, as it will be child first, then parent for layer-in-layer Fixes issue with deferred layer playback not flushing in order, and thus child not painting before parent Also fixes DisplayList to only be cleared after flush in deferred list Change-Id: I2f284d00079cdb20798aeef6a1c94e823940db40
* | | Merge "Add internal API to query GL version number" into jb-mr2-devRomain Guy2013-04-042-0/+30
|\ \ \ | |/ / |/| / | |/
| * Add internal API to query GL version numberRomain Guy2013-04-042-0/+30
| | | | | | | | Change-Id: Idc02efc237b8e97445a9bab05c291bf193c7f279
* | Merge "Correct save/restore match up" into jb-mr2-devChris Craik2013-04-031-1/+6
|\ \
| * | Correct save/restore match upChris Craik2013-04-031-1/+6
| |/ | | | | | | | | | | | | | | | | bug:8480642 With the additional save/restore around the operations in flush, the stored restore batches weren't matching up to the correct saves. Change-Id: I2f48f19009bd97289b6973283f43dc8d3e35affd
* | Merge "Account for hairlines in quick rejection logic" into jb-mr2-devChris Craik2013-04-032-1/+6
|\ \
| * | Account for hairlines in quick rejection logicChris Craik2013-04-032-1/+6
| |/ | | | | | | | | bug:8531373 Change-Id: I35444014f23fc61da687694fccc0d13bce718793
* | Update view's alpha and layer docsChris Craik2013-04-013-11/+43
|/ | | | | | | | | | | | 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
* Prevent crash when a single layer is enqueued several times for updatesRomain Guy2013-03-293-19/+36
| | | | | | Bug #8504687 Change-Id: I9b01bbc4e3f37af23dfe5e68d3d03ad3d238b94a
* Merge "Update layers to clear them Bug #8489505" into jb-mr2-devRomain Guy2013-03-281-1/+1
|\
| * Update layers to clear themRomain Guy2013-03-281-1/+1
| | | | | | | | | | | | | | | | | | | | Bug #8489505 A layer should be updated even with an empty deferred display list. It is possible for a layer to request an update just to execute a clear which will be handled by LayerRenderer::prepareDirty(). Change-Id: Iffb98bd71d6caa8d4a701df98197676f9423c0c2
* | am 3ae30483: am a19647d3: Merge "Correct executable bit for source files ↵Elliott Hughes2013-03-282-0/+0
|\ \ | | | | | | | | | | | | | | | | | | [Take 2]" * commit '3ae30483777708ff3a4f59a4fa75c6a76213cc30': Correct executable bit for source files [Take 2]
| * | Correct executable bit for source files [Take 2]Chirayu Desai2013-03-272-0/+0
| | | | | | | | | | | | | | | | | | | | | Change Ieb51bafb46c895a21d2e83696f5a901ba752b2c5 left out some files, this fixes them. Change-Id: Ia949a8581668836ea0251602e048f09c852f5169
* | | Merge "Fix issues related to saveLayer/restore deferral" into jb-mr2-devChris Craik2013-03-285-42/+54
|\ \ \
| * | | Fix issues related to saveLayer/restore deferralChris Craik2013-03-285-42/+54
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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