summaryrefslogtreecommitdiffstats
path: root/include/ui
Commit message (Collapse)AuthorAgeFilesLines
* Merge tag 'android-6.0.1_r61' into HEADJessica Wagantall2016-08-021-0/+1
|\ | | | | | | | | | | Android 6.0.1 Release 61 (MOB30Z) Change-Id: I581a4bc571ffe74fe33956018ffd93df05263755
| * Add FrameStats default constructorPablo Ceballos2016-06-231-0/+1
| | | | | | | | | | | | Bug 28592402 Change-Id: I857e46c9ab3ffae0d96923d665d13a4128a6cafa
* | Merge tag 'android-6.0.0_r26' into HEADRicardo Cerqueira2015-11-051-0/+1
|\ \ | |/ | | | | | | | | | | | | | | Android 6.0.0 release 26 Conflicts: include/android/input.h Change-Id: Ifa374c6d3055be3b8a5d60967f8b4c0043da739b
| * SF: Add colorTransform to DisplayInfoDan Stoza2015-08-311-0/+1
| | | | | | | | | | | | | | | | | | Adds the colorTransform field, which defines a vendor-specific color transform (e.g., wide gamut, sRGB, etc.) to the DisplayInfo class, and populates it from the HWC interface. Bug: 20853317 Change-Id: I153edc36a361407656f3eb5082b96c2da2ecbec7
* | exynos4: getphys implementation on buffermanager for samsung omxRicardo Cerqueira2015-10-151-0/+4
|/ | | | Change-Id: I73d9633e1a7b3316ede28dd1369f8f069609cbb0
* libgui: Add generation numbers to BufferQueueDan Stoza2015-06-031-0/+10
| | | | | | | | | | | | | | | This change allows producers to set a generation number on a BufferQueue. This number will be embedded in any new GraphicBuffers created in that BufferQueue, and attempts to attach buffers which have a different generation number will fail. It also plumbs the setGenerationNumber method through Surface, with the additional effect that any buffers attached to the Surface after setting a new generation number will automatically be updated with the new number (as opposed to failing, as would happen on through IGBP). Bug: 20923096 Change-Id: I32bf726b035f99c3e5834beaf76afb9f01adcbc2
* libgui: Allow an IGBProducer to disable allocationDan Stoza2015-04-231-0/+3
| | | | | | | | | | | | | | Adds a new method IGBP::allowAllocation, which controls whether dequeueBuffer is permitted to allocate a new buffer. If allocation is disallowed, dequeueBuffer will block or return an error as it normally would (as controlled by *ControlledByApp). If there are free buffers, but they are not of the correct dimensions, format, or usage, they may be freed if a more suitable buffer is not found first. Bug: 19801715 Change-Id: I0d604958b78b2fd775c2547690301423f9a52165
* libgui: Pass surface damage through BufferQueueDan Stoza2015-04-152-0/+4
| | | | | | | | | | This change adds support for passing surface damage all of the way down from the EGL interface through the consumer side of the BufferQueue. Depends on system/core change Ie645e6a52b37b5c1b3be19481e8348570d1aa62c Bug: 11239309 Change-Id: I4457ea826e9ade4ec187f973851d855b7b93a31b
* DO NOT MERGE Add dataSpace to buffer queues; remove old format enums.Eino-Ville Talvala2015-03-191-2/+0
| | | | | | | | | | | | | | | - Wire up new dataSpace parameter through buffer queue stack - Update tests to include the parameter - Switch eglApi to using dataSpace to indicate sRGB gamma/linear difference - Remove RAW_SENSOR in favor of RAW16 - Remove use of sRGB format enums - Add default dataspace to buffer queue core - Add query for default dataspace Cherry pick of I070bd2e7c56506055c419004c29e2e3feac725df Change-Id: I461952389c18051176c6b75e664f20ad369f5760
* Restore Region::set(uint32_t, uint32_t)Bernhard Rosenkraenzer2014-12-221-0/+1
| | | | | | | | | | The Region::set(uint32_t,uint32_t) ABI is used by the Nexus 10 graphics driver blobs. After commit dd883c0b08d2a60f89542b9b9f5fdabcb14885c7, Nexus 10 blobs need a rebuild unless the old ABI is added back Change-Id: I138dcc1cc281b8d3cde0021282bf874054ec4eaf Signed-off-by: Bernhard Rosenkraenzer <Bernhard.Rosenkranzer@linaro.org>
* libgui: Enable -Weverything and -WerrorDan Stoza2014-12-051-0/+17
| | | | | | | | | | | | | Enables -Weverything and -Werror, with just a few exceptions for warnings we can't (or shouldn't need to) work around. This is a squashed commit based on an initial change with a couple of fixes to avoid breaking certain targets. The source commits are: d723bd7669b4fc88dc282d8bf8ba5ecb2849d22f 00d504c06ea034befe143e6b8cb34d004670ed02 429ba89cd293633d2f882165066b422c96597df2 Change-Id: I034abec27bf4020d84af60d7acc1939c59986dd6
* libui: Enable -Weverything and -WerrorDan Stoza2014-12-046-60/+64
| | | | | | | | Enables -Weverything and -Werror, with just a few exceptions for warnings we can't (or shouldn't need to) work around. Change-Id: I470a267e9b1c373f2d5c960f005c3b0e02b2db63 (cherry picked from commit 303b9a51239d36d237a7d40c67b5085cdb3c1059)
* Enable clang for libui/libgui/surfaceflingerDan Stoza2014-12-042-10/+12
| | | | | | | | Enables clang and C++11 for libui/libgui/surfaceflinger, and eliminates all compile-time warnings. Change-Id: Ie237fdb5ae44f2bfcddaa884f9c65ec3f08ae50f (cherry picked from commit f10c46ef855b6410b20ebd8b1351d4d78d8eca8e)
* am e42cba8f: Merge "Initialize ARect fields in default ctor"Dan Stoza2014-10-291-0/+1
|\ | | | | | | | | * commit 'e42cba8feb2bbfe385f162a06e41e2c2c0f40c99': Initialize ARect fields in default ctor
| * Initialize ARect fields in default ctorDmitriy Ivanov2014-10-291-0/+1
| | | | | | | | | | | | | | So that we can use Rect() for update and such. Bug: 18095940 Change-Id: I03ed87121d2d279f22013b75e95dd7254551ca1f
* | surfaceflinger: add getDisplayStats() methodLajos Molnar2014-09-181-0/+31
| | | | | | | | | | | | | | | | This is used by media service to schedule video frames at the proper time, based on precise vsync timings. Bug: 14659809 Change-Id: I1a90603f3dc09dca9aa4f90a3aa845fab56e0a5e
* | Fix undefined behavior (not returning a value from a function with return).Stephen Hines2014-09-041-0/+1
| | | | | | | | | | | | | | | | | | | | | | Bug: 17379740 This function was missing a return statement, even though it declares a return type. This is undefined behavior, which clang miscompiled into just falling through to a later function in some cases. Adding the return statement fixes the undefined behavior (and probably fixes a bug too). Change-Id: I05c03b6473b831769dc4fa8b5ba43fb4249f7626
* | Turn on support for async cursor update in surfaceflinger.Riley Andrews2014-07-281-1/+3
| | | | | | | | | | | | | | If available, surfaceflinger will use the hwc setCursorPositionAsync() api to change the position of supported cursor layers outside of the usual prepare/set loop. Change-Id: Ib3fc5c0c390b3489ddbba202379840a1d2748917
* | Add two new display info fieldsAndy McFadden2014-06-171-0/+3
| | | | | | | | | | | | | | | | | | This adds SurfaceFlinger's app VSYNC offset and buffer deadline values to DisplayInfo. Bug 14612039 Change-Id: Ie0ab21d388fe2764f2b6f71bd1cefa33dc861a73
* | am 38c9e132: am c1ffd351: am bd20e551: Merge "Use asynchronous lock/unlock API"Greg Hackmann2014-05-122-0/+13
|\ \ | |/ | | | | | | * commit '38c9e1327a5b24267c3dab5293bc9d7ada6e9fc9': Use asynchronous lock/unlock API
| * Use asynchronous lock/unlock APIFrancis Hart2014-05-122-0/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | The gralloc API now provides a way for using lock/unlock with the Android explicit synchronisation concept. This changes updates the GraphicBuffer class to also expose this functionality, and updates the Surface class to make use of in line with the dequeueBuffer/queueBuffer mechanism. This new behaviour is dependent on GRALLOC_MODULE_API_VERSION_0_3. If the local gralloc module does not support this then the existing synchronous lock/unlock mechanism will be used. Change-Id: I8c3fd9592e0c5400ac9be84450f55a77cc0bbdc5
* | am 9493d492: am 9eb142e3: am a9d49f99: Merge "Revert "Use asynchronous ↵Greg Hackmann2014-05-092-13/+0
|\ \ | |/ | | | | | | | | | | lock/unlock API"" * commit '9493d4924a59f14b698389386337a9c07a7ea3c4': Revert "Use asynchronous lock/unlock API"
| * Revert "Use asynchronous lock/unlock API"Greg Hackmann2014-05-092-13/+0
| | | | | | | | | | | | This reverts commit 378ef07760eda717367d9429428c42d54d54d9a7. Change-Id: I1de5ab973b5383633e75924fe90ac3ca8216c36a
* | am 4b46776f: am 8a6cd189: am f60564a1: Merge "Use asynchronous lock/unlock API"Greg Hackmann2014-05-092-0/+13
|\ \ | |/ | | | | | | * commit '4b46776ff88c5a365700b88e8b2b04e1b2c77e6e': Use asynchronous lock/unlock API
| * Use asynchronous lock/unlock APIFrancis Hart2014-05-022-0/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | The gralloc API now provides a way for using lock/unlock with the Android explicit synchronisation concept. This changes updates the GraphicBuffer class to also expose this functionality, and updates the Surface class to make use of in line with the dequeueBuffer/queueBuffer mechanism. This new behaviour is dependent on GRALLOC_MODULE_API_VERSION_0_3. If the local gralloc module does not support this then the existing synchronous lock/unlock mechanism will be used. Change-Id: I77daa1beb197b63b1c2f281b8414ac4ae4b5b03c
* | Enable changing display configurationDan Stoza2014-05-051-1/+0
| | | | | | | | | | | | | | | | This allows querying and switching display device configurations through the ISurfaceComposer/SurfaceComposerClient interface. Bug: 14320401 Change-Id: I8c22165698950e5da32204c1c4da92122f91a715
* | Merge "Add unique ID to GraphicBuffer"Dan Stoza2014-04-111-1/+4
|\ \
| * | Add unique ID to GraphicBufferDan Stoza2014-03-311-1/+4
| | | | | | | | | | | | | | | | | | | | | | | | Adds a globally-unique ID (PID + sequence number) to every GraphicBuffer, which will remain the same while crossing Binder, even if the underlying handles change. Change-Id: Ib11330a4c5e99621b82204e0adb31b9a88658426
* | | Adding render stats APIs to UiAutomation (framework native).Svetoslav2014-04-101-0/+63
|/ / | | | | | | | | | | bug:12927198 Change-Id: Ibb1c07f7d89e11281e5c1f27f412a29ac6f9c4ab
* | FramebufferNativeWindow.h is obsoleteAndy McFadden2014-03-051-0/+2
| | | | | | | | | | | | This adds a deprecation #warning to the header. Change-Id: Ia32f16e491cb01d435ec8846dda3d9a7d1a9cfc5
* | Add contains point method to RegionMichael Wright2014-02-101-0/+3
| | | | | | | | Change-Id: I553433ff7ac39f14ffca8278960d2abc95b4dd63
* | libgui: Add a test for SRGB surfacesDan Stoza2014-01-071-7/+9
|/ | | | | | | | | Add SRGBTest.RenderToSRGBSurface, which validates that passing the SRGB colorspace attributes to eglCreateWindowSurface actually results in an SRGB surface by comparing the output values to those of a standard RGB surface. Change-Id: I3d5fef8070ed8fa2357ddd1c5fcc849ae3fbd12a
* fix camera API 2.0 orientationMathias Agopian2013-09-171-1/+1
| | | | | | | | | we add a flag to ANativeWindow::setBufferTransform that means "apply the inverse rotation of the display this buffer is displayed onto to". Bug: 10804238 Change-Id: Id2447676271950463e8dbcef1b95935c5c3f32b2
* improve mat44 implementationMathias Agopian2013-09-036-155/+208
| | | | | | this will make it easier to create matrices of different sizes Change-Id: I2c1771ba0823c42d737762e2dfc2cd47eb302767
* vector and matrix classes for graphics useMathias Agopian2013-08-266-0/+1301
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - this implements vec2, vec3, vec4, which are float vectors of size 2, 3 and 4 respectively. the code allows easy instantiation of vectors of a different type via the tvec{2|3|4}<T> template classes. - this also implements mat4 which is a float 4x4 matrix. the tmat44<T> template class allows easy instantiation of a 4x4 matrix of a different value_type. The vector types have some minimal support for the glsl style swizzled access; for instance: vec4 u; vec3 v = u.xyz; only .x, .xy, .xyz and their .stpq / .rgba equivalent are supported. most operators are supported on both vector and matrices: arithmetic, unary, compound assignment and comparison (bit-wise operators NOT supported). - operations available on vectors include: dot, length, distance, normalize and cross - operations available on matrices include: transpose, inverse, trace - and a few utilities to create matrices: ortho, frustum, lookAt Change-Id: I64add89ae90fa78d3f2f59985b63495575378635
* remove unused code form GraphicBufferMathias Agopian2013-07-311-11/+6
| | | | Change-Id: I0dd67f1f93f654331e8f17b55730931dbc695ca7
* Make Flattenable not virtualMathias Agopian2013-07-303-15/+12
| | | | | | | | | | | | | | | | | Fallout from the Flattenable change, update all its uses. Additionnaly, fix/tighten size checks when (un)flatten()ing things. Removed the assumption by some flattenables (e.g.: Fence) that the size passed to them would be exact (it can and will be larger in some cases) The code in Parcel is a bit complicated so that we don't have to expose the full implementation (and also to keep the code smallish). Change-Id: I0bf1c8aca2a3128491b4f45510bc46667e566dde
* get rid of HAL pixelformats 5551 and 4444Mathias Agopian2013-07-261-2/+2
| | | | Change-Id: I39409103144c1ba09078c4ddc323a58987fb09ea
* get rid of PixelFormatInfo and simplify thingsMathias Agopian2013-07-252-56/+2
| | | | Change-Id: I025a362cc12d5b9b794fac14be500e25aab65396
* get rid of PIXEL_FORMAT_A_8Mathias Agopian2013-07-251-1/+0
| | | | Change-Id: I4e409a69c01b95b48f20112084dd927e2d043407
* am e6eef6c1: am ea74d3b7: make the warning timout of Fence::waitForever() ↵Mathias Agopian2013-05-171-2/+3
|\ | | | | | | | | | | | | implicit and longer * commit 'e6eef6c136b007f3a7e1e19884875b855c0c5f95': make the warning timout of Fence::waitForever() implicit and longer
| * make the warning timout of Fence::waitForever() implicit and longerMathias Agopian2013-05-161-2/+3
| | | | | | | | | | | | | | | | | | | | - timeout is now 3 seconds instead of 1 - simplifies the API a bit - allows us to change/tweak this timeout globaly Bug: 8988871 Change-Id: I8d3c6ec43a372f602fb3f29856710339f86c0ec9
* | take the "transparent region" into account for blendingMathias Agopian2013-05-101-0/+4
| | | | | | | | | | | | | | | | | | | | | | until now it was only used to discard a layer entirely. we're now reducing the size of the layer if it is still visible, if possible. this works for instance when a surfaceView is used and only the menu bar is displayed over it. Change-Id: I3f5527c5cd1e69ecc968272c8948f1513ada8c55
* | reformat Rect.{cpp|h}Mathias Agopian2013-05-101-32/+40
|/ | | | Change-Id: I45b1f6646541a1abacce1e70df00a770e47b820e
* Add support for HAL_PIXEL_FORMAT_YCbCr_420_888Eino-Ville Talvala2013-05-062-0/+6
| | | | | | | | | - Add fields to CpuConsumer::LockedBuffer for new information - New lock methods for GraphicBuffer and GraphicBufferMapper for the format Bug: 8734880 Change-Id: If31f82c62d64b6942cf4cc6e5715585c03273f12
* latch transparent region hint only when we get a new frameMathias Agopian2013-04-021-0/+4
| | | | | | | | | | | | | | since the transparent region hint really depends on the content of the window containing the SurfaceView (it's calculated by the view hierarchy based on overlapping views), it makes sense to latch it only when the content of the window (the app) changes. This should help fixing drawing artifacts when changing the layout of a window containing a SurfaceView. Bug: 8511430 Change-Id: Ic3aa668495293cb4d82a2cd7dcf3b6a337287678
* Make GraphicBuffer a RefBaseMathias Agopian2013-03-061-4/+3
| | | | | | | - this gives us access to RefBase's refcounting debugging - it doesn't cost much because GraphicBuffer already has a vtable Change-Id: I7f696e421fea14b14bfaeb83880689b83e96af4d
* Add createTJunctionFreeRegionChris Craik2013-02-271-1/+3
| | | | | | | | | | | | | T-junction free regions are useful for rendering regions with various geometric transformations, and the Region's span-ordered, sorted rect list supports T-junction free storage without modification. This approach creates a T-junction free region by splitting each rectangle that is part of a vertical T-junction. This approach is two pass (up and down) so that divisions can trickle up/down to other adjacent spans. Change-Id: Ifcf5e6fe0034c96b00ef09a4433b2b0fce8f4300
* GraphicBuffer.h: Remove redundant friend class declaration causing warningsIgor Murashkin2013-02-261-1/+0
| | | | Change-Id: I8a4b0e0b4d0a1cf472de820553c31f2d42044543
* Refactoring: Rename SurfaceTextureClient to SurfaceMathias Agopian2013-02-141-1/+1
| | | | Change-Id: Ibed34175ae273608393aaa5f0a7df207dc40d709