summaryrefslogtreecommitdiffstats
path: root/ui/compositor/compositor_observer.h
Commit message (Collapse)AuthorAgeFilesLines
* Use a direct include of time headers in ui/.avi@chromium.org2013-06-281-1/+1
| | | | | | | | | | BUG=254986 TEST=none TBR=ben@chromium.org Review URL: https://codereview.chromium.org/18149004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@209153 0039d316-1c4b-4281-b951-d872f2087c98
* CrOS: Schedule renderer drawing to hardware vsync.backer@chromium.org2013-02-211-1/+8
| | | | | | | | | | | | | | Before this patch, the renderer scheduled drawing assuming a 60Hz refresh rate at an arbitrary timebase. With this patch, we send a hardware vsync signal to the renderer. The timbase is offset slightly so that the browser UI and renderer do not draw at the same time. BUG=157223 Review URL: https://chromiumcodereview.appspot.com/12218055 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@183696 0039d316-1c4b-4281-b951-d872f2087c98
* Aura: Resize locks with --ui-enable-threaded-compositingbacker@chromium.org2012-10-271-4/+5
| | | | | | | | | | | | | | | | We temporarily defer commits while resizing so that the renderer has a chance to catch up with the UI window size. Noteable changes from master: - RWHVs can fast ACK the GPU process (not flip in the browser or TextureImageTransportSurface); useful for allowing the renderer to catch up when it gets too far behind. - RWHVA will insist kicking a renderer frame after the lock times out on resize (wasn't necessary before) - ui::Compositor vends draw locks (which largely just wraps to cc::Proxy) of ui::aura::RootWindow BUG=136366 TEST=None Review URL: https://chromiumcodereview.appspot.com/10690168 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@164460 0039d316-1c4b-4281-b951-d872f2087c98
* Aura: Have ui::Layer implement WebKit::WebExternalTextureLayerClientbacker@chromium.org2012-07-131-0/+8
| | | | | | | | | | | | | | | | With --ui-enable-threaded-compositing, every Layer::SetExternalTexture() was causing a heavy CCThreadProxy::acquireLayerTextures(). This synchronization is unnecessary on the common case of buffer flips, because RWHVA handles the necessary synchronization via OnCompositingWillStart callbacks. To reduce the synchronization burden, we handle - wait for a commit on resize fast ACKS - handle the common case of buffer flips via WebExternalTextureLayerClient::prepareTexture() - and explicitly call WebExternalTextureLayer::willModifyTexture() when we need the extra synchronization on tear down. BUG=136012 TEST=none Review URL: https://chromiumcodereview.appspot.com/10689108 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@146621 0039d316-1c4b-4281-b951-d872f2087c98
* Remove the rest of #pragma once in one big CL.ajwong@chromium.org2012-07-111-1/+0
| | | | | | | | | For context see this thread: https://groups.google.com/a/chromium.org/forum/?fromgroups#!topic/chromium-dev/RMcVNGjB4II TBR=thakis,pkasting,jam git-svn-id: svn://svn.chromium.org/chrome/trunk/src@146163 0039d316-1c4b-4281-b951-d872f2087c98
* Aura: ACK on the start of the frame generation for greater async.backer@chromium.org2012-06-291-1/+4
| | | | | | | | | | | | By responding to AcceleratedSurfaceBuffersSwapped and AcceleratedSurfacePostSubBuffer early, we allow the GPU process to service the renderer while the browser UI is generating it's next frame. This buys us about 2 ms of processing according to chrome://tracing BUG=none TEST=none Review URL: https://chromiumcodereview.appspot.com/10692044 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@144990 0039d316-1c4b-4281-b951-d872f2087c98
* Reland: ash: Improved window maximize/restore animationsjamescook@chromium.org2012-06-061-0/+3
| | | | | | | | | | | | | | | | | | | | | | This implements a cross-fade while scaling the window between the new and old size. When a maximize animation is triggered we grab the window's current layer (and those of child windows) and start an animation on those layers to scale them up to full size. Simultaneously, we install a fresh layer for the window, set the bounds to fill the workspace, and tell the window to paint. We scale down that layer to match the window size at the start of the animation, then fade it in while scaling it up to full size. The restore animation essentially does the above in reverse. However, we always keep the higher resolution layer on top (it looks better), and we always keep the lower layer fully opaque (so the desktop doesn't bleed through). The animation is aborted if the window is closed mid-animation or the GPU process crashes mid-animation. The animation does not yet work for app windows, see crbug.com/131293 BUG=116618 TEST=aura_shell_unittests WorkspaceManagerTest and WindowAnimationsTest, trigger slow window animation with shift-click on maximize widget and close window during animation, kill -9 the GPU process during the animation and observe that Chrome recovers Committed: http://src.chromium.org/viewvc/chrome?view=rev&revision=139494 Review URL: https://chromiumcodereview.appspot.com/10444014 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@140698 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 139494 - ash: Improved window maximize/restore animationsjamescook@chromium.org2012-06-011-3/+0
| | | | | | | | | | | | | | | | | | | | | This implements a cross-fade while scaling the window between the new and old size. When a maximize animation is triggered we grab the window's current layer (and those of child windows) and start an animation on those layers to scale them up to full size. Simultaneously, we install a fresh layer for the window, set the bounds to fill the workspace, and tell the window to paint. We scale down that layer to match the window size at the start of the animation, then fade it in while scaling it up to full size. The restore animation essentially does the above in reverse. However, we always keep the higher resolution layer on top (it looks better), and we always keep the lower layer fully opaque (so the desktop doesn't bleed through). The animation is aborted if the window is closed mid-animation or the GPU process crashes mid-animation. BUG=116618,130688 TEST=aura_shell_unittests WorkspaceManagerTest and WindowAnimationsTest, trigger slow window animation with control-shift-click on maximize widget and close window during animation, kill -9 the GPU process during the animation and observe that Chrome recovers Review URL: https://chromiumcodereview.appspot.com/10444014 TBR=jamescook@chromium.org Review URL: https://chromiumcodereview.appspot.com/10454107 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@139959 0039d316-1c4b-4281-b951-d872f2087c98
* ash: Improved window maximize/restore animationsjamescook@chromium.org2012-05-301-0/+3
| | | | | | | | | | | | | | | | | | This implements a cross-fade while scaling the window between the new and old size. When a maximize animation is triggered we grab the window's current layer (and those of child windows) and start an animation on those layers to scale them up to full size. Simultaneously, we install a fresh layer for the window, set the bounds to fill the workspace, and tell the window to paint. We scale down that layer to match the window size at the start of the animation, then fade it in while scaling it up to full size. The restore animation essentially does the above in reverse. However, we always keep the higher resolution layer on top (it looks better), and we always keep the lower layer fully opaque (so the desktop doesn't bleed through). The animation is aborted if the window is closed mid-animation or the GPU process crashes mid-animation. BUG=116618 TEST=aura_shell_unittests WorkspaceManagerTest and WindowAnimationsTest, trigger slow window animation with control-shift-click on maximize widget and close window during animation, kill -9 the GPU process during the animation and observe that Chrome recovers Review URL: https://chromiumcodereview.appspot.com/10444014 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@139494 0039d316-1c4b-4281-b951-d872f2087c98
* ui: Move compositor/ directory out of gfx/, up to ui/.tfarina@chromium.org2012-05-051-0/+31
BUG=104040 R=piman@chromium.org,ben@chromium.org TBR=sky@chromium.org Review URL: https://chromiumcodereview.appspot.com/10365007 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@135560 0039d316-1c4b-4281-b951-d872f2087c98