summaryrefslogtreecommitdiffstats
path: root/libs/surfaceflinger
Commit message (Collapse)AuthorAgeFilesLines
* allow re-targetting of surfacesMathias Agopian2010-06-083-22/+56
| | | | | | | | | Surfaces can now be parcelized and sent to remote processes. When a surface crosses a process boundary, it looses its connection with the current process and gets attached to the new one. Change-Id: I39c7b055bcd3ea1162ef2718d3d4b866bf7c81c0
* fix [2751143] Device crashes when in a text box for too longMathias Agopian2010-06-081-1/+2
|
* split surface management from surface's buffers managementMathias Agopian2010-06-046-235/+468
| | | | Change-Id: If3c5655d1231f8f0c49ba68f972b1b20c93b3f87
* clean-up client management.Mathias Agopian2010-06-0415-607/+253
| | | | | | | simplified things a lot, the biggest change is that the concept of "ClientID" is now gone, instead we simply use references. Change-Id: Icbc57f80865884aa5f35ad0d0a0db26f19f9f7ce
* fix a bug where fading in/out of opaque 32-bits windows wasn't workingMathias Agopian2010-06-011-19/+7
| | | | | | | | | | | opaque 32-bits windows are now allocated as RGBX_8888 buffers and SurfaceFlinger always uses GL_MODULATE instead of trying to optimize to GL_REPLACE when possible (makes no sense on h/w accelerated GL). we still have a small hack for devices that don't support RGBX_8888 in their gralloc implementation where we revert to RGBA_8888.
* more clean-up in preparation of bigger changesMathias Agopian2010-05-283-9/+9
| | | | | | | the most important change here is the renaming of ISurfaceFlingerClient to ISurfaceComposerClient Change-Id: I94e18b0417f50e06f21377446639c61f65f959b3
* minor clean-up GLclampx -> GLclampfMathias Agopian2010-05-263-9/+9
|
* clean-up dead-codeMathias Agopian2010-05-264-27/+0
|
* Make sure to use filtering while in fixed-size modeMathias Agopian2010-05-265-8/+26
|
* fix [2712278] The preview buffer left some black borders in left and bottom ↵Mathias Agopian2010-05-251-1/+1
| | | | | | | | edges we were incorrectly flagging push_buffer surfaces as invalid Change-Id: I4dfd4ffbbe8a71f7e23e835db8d71966416c29bb
* added the notion of fixed-size buffersMathias Agopian2010-05-244-48/+84
| | | | | | | | | the new native_window_set_buffers_geometry allows to specify a size and format for all buffers to be dequeued. the buffer will be scalled to the window's size. Change-Id: I2c378b85c88d29cdd827a5f319d5c704d79ba381
* fix the threading issue for setBuffercount()Mathias Agopian2010-05-2010-115/+165
| | | | | | | | this change introduces R/W locks in the right places. on the server-side, it guarantees that setBufferCount() is synchronized with "retire" and "resize". on the client-side, it guarantees that setBufferCount() is synchronized with "dequeue", "lockbuffer" and "queue"
* fix uninitialized variable in DisplayHardwareMathias Agopian2010-05-141-1/+1
| | | | | | this fixes the issue where the display is all messed-up sometimes. Change-Id: I20be91b5166bfff0c6d353a777351842c9df8e95
* SharedBufferStack now can grow up to 16 buffers.Mathias Agopian2010-05-124-0/+43
| | | | | | there is a new resize() api, which currently only allows growing. Change-Id: Ia37b81b73be466d2491ffed7f3a23cd8e113c6fe
* Refactor some code in surfaceflinger in preparation of upcoming changesMathias Agopian2010-05-129-366/+554
| | | | | | | | | | | | the new TextureMagager class now handle texture creation and upload as well as EGL image creation and binding to GraphicBuffers. This is used indirectly by Layer and directly by LayerBuffer the new BufferManager class handles the set of buffers used for a Layer (Surface), it abstracts how many buffer there is as well as the use of EGLimage vs. regular texture ops (glTexImage2D). Change-Id: I2da1ddcf27758e6731400f6cc4e20bef35c0a39a
* remove the "memcpy" hackMathias Agopian2010-05-124-110/+7
| | | | | | | | this hack was used for gpus that don't support cached buffers for s/w clients. currently we have no gpu with this issue. this removes quite a bit of complexity. Change-Id: I72564669f124f92805030e61983711f61c76b6d9
* am 56aed6bd: am c69775d6: Merge "fix [2664345] Flash: Bad flicker at the end ↵Mathias Agopian2010-05-101-3/+22
|\ | | | | | | | | | | | | | | | | of a pinch zoom." into froyo Merge commit '56aed6bde0c52658d2cb1207c0cfe8ba0a764c59' into kraken * commit '56aed6bde0c52658d2cb1207c0cfe8ba0a764c59': fix [2664345] Flash: Bad flicker at the end of a pinch zoom.
| * fix [2664345] Flash: Bad flicker at the end of a pinch zoom.Mathias Agopian2010-05-061-3/+22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | the window manger puts SurfaceViews up before they have been rendered into, because of that surfaceflinger doesn't have anything ready to draw for that surface when an udpate occurs and responds by filling the surface with black. With this fix, we only fill those areas of the framebuffer that would otherwise be undefined (no content at all). in the Flash case, the "flash" window is not drawn at all until it has some content, instead the underlaying browser window is shown. Change-Id: Ifb610f7f8c27b88edf83e09adc4803fc295c15a1
| * DO NOT MERGE fix [2557396] Adreno200: glDrawTexi() doesn't work with height ↵Mathias Agopian2010-04-201-54/+39
| | | | | | | | | | | | | | | | <= 16 don't use glDrawTexi() anymore Change-Id: If71334de39114b0edce7771366f8d8dc26f6911e
* | more surfaceflinger cleanupsMathias Agopian2010-04-2112-171/+112
| | | | | | | | | | | | | | get rid of the "fake rtti" code, and use polymorphism instead. also simplify how we log SF's state (using polymorphism) Change-Id: I2bae7c98de4dd207a3e2b00083fa3fde7c467922
* | better fix for [2420565] Surface.lockCanvas() updates the dirty region too oftenMathias Agopian2010-04-212-4/+10
| | | | | | | | Change-Id: I83438b40effd21538f1c74396dc665254b9d5ab6
* | clean-up surfaceflinger a bitMathias Agopian2010-04-208-106/+63
| | | | | | | | | | | | get rid of the glDrawTexi path and use floating points instead of fixed point maths Change-Id: I3aa9ce2dc082f702160e605a16ba5fe987cdf087
* | am e7d5a2f9: am 45423465: Merge "fix [2594950] Flash: Zooming in on some ↵Mathias Agopian2010-04-143-2/+27
|\ \ | |/ | | | | | | | | | | | | | | content crashes the Nexus One and causes it to reboot (runtime restart)" into froyo Merge commit 'e7d5a2f9ae47d8ea8face3f1e451314ed36f4026' into kraken * commit 'e7d5a2f9ae47d8ea8face3f1e451314ed36f4026': fix [2594950] Flash: Zooming in on some content crashes the Nexus One and causes it to reboot (runtime restart)
| * fix [2594950] Flash: Zooming in on some content crashes the Nexus One and ↵Mathias Agopian2010-04-143-2/+27
| | | | | | | | | | | | | | | | | | | | causes it to reboot (runtime restart) We now limit the size of the surface to the maximum size supported by the GPU. On Nexus One this will 2048 -- it could be different on other devices. Surface creation fails if the limit is exceeded. Change-Id: I9ecfc2e9c58c9e283782b61ebfc6b590f71df785
* | Make pixels prettier.Mathias Agopian2010-04-051-1/+1
|/ | | | Change-Id: If3b0774b70cbe943894c15ffa1da111ad887010f
* fix [2511580] Window poop on screen - drop down list left some residual when ↵Mathias Agopian2010-03-163-20/+57
| | | | | | it resized Change-Id: Ib9a3622e7a568ba26717a93b5bfa4a191651f4d0
* fix [2515291] Native crash and runtime restart while trying to preview ↵Mathias Agopian2010-03-151-31/+48
| | | | | | | | | captured picture on Sapphire if a buffer couldn't be allocated because of an OOM, SF could, in some case dereference a null pointer. Change-Id: I5321248c38a21e56d5278b6aada2694e64451378
* fix [2483456] Video orientation is wrong on Droid for some videosMathias Agopian2010-03-114-61/+64
| | | | Change-Id: I450191f1335f57bffc51aff3e27295395847dbc0
* improve SF logging/debugging a little bitMathias Agopian2010-03-083-5/+5
| | | | Change-Id: I6a57f89c25defc293fd748cc1fbd710031c02ec2
* Merge "fixes for [2474091] Saw Poor behaviour playing a video."Mathias Agopian2010-03-084-14/+28
|\
| * fixes for [2474091] Saw Poor behaviour playing a video.Mathias Agopian2010-03-084-14/+28
| | | | | | | | | | | | | | | | | | | | | | | | | | | | - fix a bug when hacking video buffers into gralloc buffers where the buffer size was incorrect this was causing the "direct-form-texture" mode to fail - also when the above fails, make sure to revert to the "mdp copy mode" before going to "slow mode" - finally disable completely the "direct-from-texture" mode for now. It cannot work because the allocated buffers can't respect the GPU constraints (alignment and such). We'll have to find a solution for that.
* | surfaceflinger: remove un-cached buffers hack for AdrenoDima Zavin2010-03-021-1/+6
|/ | | | | Change-Id: I5ae4e74bfa3e25b55be2cddf7b3c51368a140ab9 Signed-off-by: Dima Zavin <dima@android.com>
* fix [2425395] portrait UI briefly shows in landscapeMathias Agopian2010-03-011-1/+2
| | | | | the "freeze" timeout was not initialized properly which caused it to kick-in immediately instead of after 5s
* Added a name to Surface created by SurfaceFlingerMathias Agopian2010-03-014-6/+23
| | | | | Updated the window manager to use this new facility. Surfaces name are now printed by "dumpsys".
* to help debugging [2461567] Home screen redraw messed upMathias Agopian2010-02-262-0/+6
| | | | log SF's idea of the front buffer in dumpsys.
* remove a dependency of surfaceflinger on libskiaMathias Agopian2010-02-225-180/+351
| | | | | libskia was only used for a small part of SkTransform. We now implement Transform is surfaceflinger directly.
* Initialize layer positionMathias Agopian2010-02-191-0/+1
|
* get rid off the YUV formats at the libui layerMathias Agopian2010-02-163-21/+35
|
* minor cleanup.Mathias Agopian2010-02-122-18/+10
|
* split libsurfaceflinger_client and libcamera_client out of libuiMathias Agopian2010-02-119-23/+26
|
* Add support for physically rotated displaysMathias Agopian2010-02-082-37/+69
| | | | | | | | | | | | | This feature is currently controled by a system property. "ro.sf.hwrotation" can be set to either 90 or 270. It'll cause SF to rotate the screen by 90 and 270 degres respectively. That is, if the driver reports 800x480 for instance, and ro.sf.hwrotation is set to 90, applications will "see" a 480x800 display and will run in portrait. This is implemented by introducing an extra "display" transformation in the GraphicPlane.
* Add support for direct EGLImageKHR use with pushbuffer APIMathias Agopian2010-02-042-16/+31
| | | | | | | We now always first try to use the EGLImageKHR directly before making a copy with copybit. The copy may be needed when EGLImage doesn't support the requested format, which is currently the case with YUV.
* Add support for 180/270 degrees rotation.Chih-Chung Chang2010-01-221-5/+14
|
* Add an orientation parameter for overlay, so we can do camera preview in ↵Chih-Chung Chang2010-01-216-12/+31
| | | | portrait mode.
* fix [2324665] texture leak in surfaceflinger when using cameraMathias Agopian2010-01-211-1/+16
|
* fix a texture leak introduced recently.Mathias Agopian2010-01-211-4/+11
| | | | | create the texture name once and for all for a given BufferSource and make sure to recreate it when we're forced to delete the texture.
* fix [2363362] [Sapphire] Corrupted raw picture displayed during snapshotMathias Agopian2010-01-201-0/+10
| | | | | handled all cases where the scale factor of a video is out of bounds of supported scale factors in copybit.
* part of fix for [2363362] [Sapphire] Corrupted raw picture displayed during ↵Mathias Agopian2010-01-202-11/+18
| | | | | | | | | snapshot make sure to fallback properly to software when copybit operation fails. with this change, the preview image will at least be displayed in b&w (since GL doesn't support the yuv format). This would also fix 2363506, but that one is now handled more cleanly.
* fix [2363506] [Sapphire] Video playback brokenMathias Agopian2010-01-202-6/+8
| | | | don't try to use copybit for incompatible buffers
* fix [2269582] [TOP-10][Passion_1506][APT:Camera]Sometimes camera preview ↵Mathias Agopian2009-12-111-0/+1
| | | | | | | | | | | | | screen is truncated after launching and back to home screen by home key repeatedly When a surface is removed from the screen while it holds a "freeze lock", the release of that lock happens in the destructor as a "safety net". However, it doesn't trigger an update at that point. Make sure that "freeze locks" are released from the transaction at the point a surface is removed from the screen (if it's not on screen, it shouldn't prevent the screen to redraw, and therefore cannot hold a freeze lock). The refresh corresponding to that transaction will pick it up as soon as possible.