History log of /frameworks/native/include/gui/SurfaceComposerClient.h
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
2713c30843816d3511b39b85a2c268a2b7682047 29-Mar-2018 Dan Stoza <stoza@google.com> Early wake-up for transitions (1/2)

On some devices it's very likely that we fall into GL comp during
app transitions. However, SF offsets are chosen in a way such that
the time to finish a frame is just too tight to be completely jank
free when hitting GL composition in SurfaceFlinger. Thus, we
introduce the concept of a separate early offset, and wakeup
SurfaceFlinger at that time if we think that hitting GL comp is
likely, or we already hit GL comp in the last frame.

Test: Open app, check vsync offsets in systrace
Test: Open many dialogs/apps to fall into GPU comp.
Bug: 75985430
Change-Id: Ie17e30c4575359fa11bb8912f68dcafe3e569ddb
Merged-In: Ie17e30c4575359fa11bb8912f68dcafe3e569ddb
/frameworks/native/libs/gui/include/gui/SurfaceComposerClient.h
fd997e0969100418b4df8b8d97d21d497afa76c3 29-Mar-2018 Peiyong Lin <lpy@google.com> Add proper namespace to GraphicTypes.

Renamed GraphicsTypes.h to GraphicTypes.h and added proper namespace to avoid
naming conflict.

BUG: 77156734
Test: Build and flash
Change-Id: Ibd9f454b5b72d5f8c6d94a3869a60a1bf821f106
Merged-In: Ibd9f454b5b72d5f8c6d94a3869a60a1bf821f106
/frameworks/native/libs/gui/include/gui/SurfaceComposerClient.h
ccd348460ca25890a8fb709e82e6f780e3ce878e 14-Mar-2018 rongliu <rongliu@google.com> Pass correct window type and app id to hw composer.

1. Set -1 as default value for window type and app id.
2. When send layer information to hal, layers inherit type and app id from parent node when
parent node has valid type/appId.
3. Add window type and app id to SurfaceFlinger dumpsys.

Bug: 74622357
Test: Manual test. Several things verified:
1. Android settings layer, status bar layer, nav bar layer have valid window type and appId
when start android settings.
2. Layers without buffer have window type -1 and app id -1.
3. When send layers to hal, Chrome SurfaceView layer inherit type and app id from
its parent (MainActivity layer).

Change-Id: I8d6ad274ca18b61d1bbf6b28f7def5160b55b1e7
Merged-In: I8d6ad274ca18b61d1bbf6b28f7def5160b55b1e7
/frameworks/native/libs/gui/include/gui/SurfaceComposerClient.h
a912b6ec28f758d061c907cee2a4b817690336d7 21-Mar-2018 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Propagate error codes from createSurface" into pi-dev
a52f0295622a42849f5ef81c44589b816b2ccacb 15-Mar-2018 Peiyong Lin <lpy@google.com> [Native] Replace android_color_mode usage with ColorMode.

To ease the pain when we add color mode v1.1, we replace all current
android_color_mode usage in framework native with ColorMode directly from HAL.

BUG: 73824924
Test: Build & flash
Change-Id: I4436fc225c7807506825c7148bc794cb99f278dc
/frameworks/native/libs/gui/include/gui/SurfaceComposerClient.h
3b382ed2e8a6a79698fb8e65913946bba109d836 14-Mar-2018 Robert Carr <racarr@google.com> Propagate error codes from createSurface

Without an error code it's impossible to distinguish OOM
from missing parent, causing the WM to start killing applications
in the case of a missing parent.

Bug: 73664284
Test: Manual.
Change-Id: Ida6a30b41d1e856dfa9dceb80a432a30353d2764
/frameworks/native/libs/gui/include/gui/SurfaceComposerClient.h
578038fc49f83c4c8c4accdce49df404ecd6ad02 09-Mar-2018 Robert Carr <racarr@google.com> SurfaceFlinger: Add childLayersOnly variant of capture layers.

Currently captureLayers is being used to capture children of abstract
buffer-less layers, for example we capture the node representing
a Task. Because of animations, etc, the node may have been scaled
when we want to take the screenshot, so we solved this problem with
an inverse transform in LayerRenderArea. However we have parallel problems
for crop, visibility, etc...It seems what we really want from captureLayers
is the ability to capture all child layers while ignoring the parent imposed
state as if in a parallel hierarchy. I initially considered implementing a parallel
hierarchy with layer clones but it seemed much less risky for P to instead
reparent the existing hierarchy to a parallel abstract parent on the server side.

Bug: 72760590
Test: Existing tests pass. Quickstep works with new implementation. New transaction tests.
Change-Id: Ifd2b2f9ed45351d8ed0d7f09be1cd9806ec4abe8
/frameworks/native/libs/gui/include/gui/SurfaceComposerClient.h
8e3fe5d6a78d92e0bcbd90ca98cf7b3f9de7512d 22-Feb-2018 chaviw <chaviw@google.com> Store SurfaceControl reference when creating transactions

The SurfaceControl needs to be stored when adding a new transaction.
This ensures the ref count is incremented so the SC isn't removed before
the transaction is applied.

Change-Id: I27a060e4c221c5dfa565ceb3a916574105fd1175
Fixes: 73448047
Test: DereferenceSurfaceControlTest
/frameworks/native/libs/gui/include/gui/SurfaceComposerClient.h
763ef57459aa9f10f3587581b119fe8d4ece3cd3 23-Feb-2018 chaviw <chaviw@google.com> Rename getLayerState and getDisplayState functions.

Both getLayerStateLocked and getDisplayStateLocked are named incorrectly
since they do not require a lock to be held when called. Rename to avoid
confusion.

Test: Builds and runs
Change-Id: Ia0a98fc4c1994ecc131c783fea478e3e7075044d
/frameworks/native/libs/gui/include/gui/SurfaceComposerClient.h
ca27f2500cff74ae1e08b3ae06f18e9b3414ffb7 07-Feb-2018 chaviw <chaviw@google.com> Allow destroySurface to get called in transaction.

Previously, destroy was always initiated immediatley and could not be
synchronized with a client transaction. This change allows
destroySurface to be called in the same transaction as other client
state updates.

Test: Unit tests pass
Test: Call from Java fixes bugs.
Change-Id: I841359530538961a0187216cc455cc388c0ede77
Fixes: 72953020
Fixes: 71499373
/frameworks/native/libs/gui/include/gui/SurfaceComposerClient.h
1eaa10357344343b91d242a7ea774cc23beeab74 05-Dec-2017 Jorim Jaggi <jjaggi@google.com> Merge "Make SurfaceControl parcelable (2/2)"
f3cf4bcfa2c558f03e178f7044d3cb12fa0e73ed 30-Nov-2017 Jorim Jaggi <jjaggi@google.com> Make SurfaceControl parcelable (2/2)

Bug: 69145041
Test: Send SurfaceControl over binder
Change-Id: I47aa4a4bb39fab3ed4d1d30d4e472de7cbc5ca38
/frameworks/native/libs/gui/include/gui/SurfaceComposerClient.h
40482ff650751819d4104c10a30974838168438c 30-Nov-2017 Chavi Weingarten <chaviw@google.com> Revert "Revert "Use GraphicBuffer instead of GBP for screenshots.""

This reverts commit 707b8f3507fa4a3915844c7a4730e67f94eee2f7.

Reason for revert: Ready to test out changes with SystemUI update

Change-Id: I9fd0cb7ad9cc68d2366fc5ec4ab087fbe4c21f3b
/frameworks/native/libs/gui/include/gui/SurfaceComposerClient.h
707b8f3507fa4a3915844c7a4730e67f94eee2f7 29-Nov-2017 Chavi Weingarten <chaviw@google.com> Revert "Use GraphicBuffer instead of GBP for screenshots."

This reverts commit a252d895816b3aa6c3bc2b2083113694ead6963d.

Reason for revert: SystemUI and some other places need to be updated as well. Will resubmit with the other necessary changes

Change-Id: I2dfb7b439c866f31ffa584e450d3208c75afecaa
Bug: 69898957
/frameworks/native/libs/gui/include/gui/SurfaceComposerClient.h
a252d895816b3aa6c3bc2b2083113694ead6963d 21-Nov-2017 chaviw <chaviw@google.com> Use GraphicBuffer instead of GBP for screenshots.

Migrate screenshot code to render the layers into a
GraphicBuffer instead of creating a GraphicBufferProducer. This cleans
up the code and makes rendering a screen capture simpler and clearer.

Test: Screencaptures for Recents, manual screenshots, and "adb shell
screencap"
Test: Transaction_test

Change-Id: Ifb463c0e98cfaa3f96ad27837b1a2e2921e253d1
/frameworks/native/libs/gui/include/gui/SurfaceComposerClient.h
7206d49b2963ce2e926a5f25fe94aca9c06471e6 11-Nov-2017 chaviw <chaviw@google.com> Add additional parameters for the captureLayer functions.

1. Added new captureLayers function that will return a GraphicBuffer
instead of storing into a Surface.
2. Added crop to captureLayers function.
3. Added frameScale to allow captures to scale.
4. Removed rotation parameter from captureLayers since it will always be
in the correct orientation.

Test: Transaction_test ScreenCaptureTest.CaptureCrop, .CaptureSize

Change-Id: Ib16d8575cf0c103126b9427ad32e2d28d568ea61
/frameworks/native/libs/gui/include/gui/SurfaceComposerClient.h
2c5f6d2257075c8b5ced78b07ed8b2c2323f0df2 26-Sep-2017 Robert Carr <racarr@google.com> SurfaceFlinger: Implement merging of transaction objects.

Useful for WindowManager to collect multiple transactions
from independent units.

Test: Transaction_test.cpp
Change-Id: I52e89b038e3b375493169991e41cb75b67550264
/frameworks/native/libs/gui/include/gui/SurfaceComposerClient.h
a76b271f0e14325fa0ebb98e1cac0a15adfea1cb 20-Sep-2017 chaviw <chaviw@google.com> Add captureLayers function to capture a layer and its children.

The captureLayers function gets a root layer as its argument.
It will capture the content for that layer and its descendants. The
capture will set the root layer's transform back to (0, 0).

Test: Transaction_test ScreenCaptureTest
Change-Id: I84fb66a65cd91434cddc99506b1924cf9f950935
/frameworks/native/libs/gui/include/gui/SurfaceComposerClient.h
4cdc58f6840d15b4952149d2b345ec1f97d505bc 23-Aug-2017 Robert Carr <racarr@google.com> SurfaceFlinger Transactions as distinct objects.

Essentially a process global singleton for transactions is not so useful once
we make surface control public API as process isn't something an app developer
is really thinking about. It's also nice that we get to delete two of the plumbing layers.

Test: Boots
Change-Id: I8864bd7e2f5865e3c0a425cf82f9928211911774
/frameworks/native/libs/gui/include/gui/SurfaceComposerClient.h
13fdc49516d17f41e64e62e73c313b0928bf13cc 27-Jun-2017 chaviw <chaviw@google.com> Added native functionality to create a color layer.

Added a new layer that can draw a specified color and specified
alpha. This will replace creating a dim layer and allow any colors,
not just black, to be set for this layer.

Test: Added tests to Transaction_test.cpp to test with a color
and a color layer with alpha.

Change-Id: I00a38d1bbc01093026f088c3347454281bdc2b8c
/frameworks/native/libs/gui/include/gui/SurfaceComposerClient.h
f1961f713de2b3f54c8ce7653964b969e1a02bc8 19-Sep-2017 chaviw <chaviw@google.com> Re-parent invoked on child instead of on parent.

The function to re-parent an individual child is now invoked on
the child instead of the parent. This ensures the child ends up with
the last parent set if multiple reparent requests are made in the same
transaction.
This also allows adding a parent to a layer that didn't have one
previously.

Test: Transaction_test -> Reparent, ReparentToNoParent,
ReparentFromNoParent

Change-Id: Idab429eb2dca5a4ae1b020a5a7629d719dd4d995
/frameworks/native/libs/gui/include/gui/SurfaceComposerClient.h
0617894190ea0c3ee50889bee1d4df0f369b0761 27-Jul-2017 chaviw <chaviw@google.com> Add a re-parent function to re-parent a specific child.

This is similar to reparentChildren, but the reparentChild will
only re-parent a specific child to the new parent and not all
children.

Test: Added test in Transaction_test for reparentChild.

Change-Id: I4275e0d5f1d5601b489956753c78a56d1a5d4c1c
/frameworks/native/libs/gui/include/gui/SurfaceComposerClient.h
172bd727181da158c40100795cff279b9721559d 20-Jun-2017 Jiyong Park <jiyong@google.com> Make libgui available to vendors

libgui is now available to vendors, especially for BufferQueue in
between the OMX and Camera HALs for encoding the captured video stream.

In doing so, its headers were moved from frameworks/native/include to
its local directory frameworks/native/libs/gui/include. This is required
because global include path is not supported when building for vendor.
However, in order not to affect platform modules that are still relying
on the global include path, symlinks are provided.

frameworks/native/include/gui -> frameworks/native/libs/include/gui
frameworks/native/include/private/gui ->
frameworks/native/libs/include/private/gui

Bug: 37731063
Test: BOARD_VNDK_VERSION=current m -j libgui.vendor
Change-Id: I0bab8d2e31959085ad58b1ce4c610334ee3da033
/frameworks/native/libs/gui/include/gui/SurfaceComposerClient.h