diff options
author | glider@chromium.org <glider@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-01-16 14:38:44 +0000 |
---|---|---|
committer | glider@chromium.org <glider@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-01-16 14:38:44 +0000 |
commit | 0d8f25d392da5aed36dadec776da5aba4fccbfb3 (patch) | |
tree | e00cca7325965a4666bdde7a415a0aa892701b33 /content/browser/aura/browser_compositor_output_surface_proxy.h | |
parent | ffc4616d36d9cc373739ca89f52ca6a5a1513357 (diff) | |
download | chromium_src-0d8f25d392da5aed36dadec776da5aba4fccbfb3.zip chromium_src-0d8f25d392da5aed36dadec776da5aba4fccbfb3.tar.gz chromium_src-0d8f25d392da5aed36dadec776da5aba4fccbfb3.tar.bz2 |
Revert 245131 "Add the UI compositor to the Mac build", which caused Mac ASan redness
> Add the UI compositor to the Mac build
>
> Move the bulk of the files in content/browser/aura to
> content/browser/compositor, since they're not aura-specific.
>
> Build all of those files in the Mac build, and add ui/compositor
> to the dependencies of the Mac build. These files will soon only
> be excluded from the Android build.
>
> BUG=314190
>
> Review URL: https://codereview.chromium.org/137893007
TBR=ccameron@chromium.org
BUG=335083
Review URL: https://codereview.chromium.org/137853019
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@245195 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'content/browser/aura/browser_compositor_output_surface_proxy.h')
-rw-r--r-- | content/browser/aura/browser_compositor_output_surface_proxy.h | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/content/browser/aura/browser_compositor_output_surface_proxy.h b/content/browser/aura/browser_compositor_output_surface_proxy.h new file mode 100644 index 0000000..0c5ffcd --- /dev/null +++ b/content/browser/aura/browser_compositor_output_surface_proxy.h @@ -0,0 +1,51 @@ +// Copyright (c) 2013 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef CONTENT_BROWSER_AURA_BROWSER_COMPOSITOR_OUTPUT_SURFACE_PROXY_H_ +#define CONTENT_BROWSER_AURA_BROWSER_COMPOSITOR_OUTPUT_SURFACE_PROXY_H_ + +#include "base/id_map.h" +#include "base/memory/ref_counted.h" +#include "base/time/time.h" +#include "content/common/content_export.h" + +namespace base { class SingleThreadTaskRunner; } + +namespace IPC { class Message; } + +namespace content { +class BrowserCompositorOutputSurface; + +// Directs vsync updates to the appropriate BrowserCompositorOutputSurface. +class CONTENT_EXPORT BrowserCompositorOutputSurfaceProxy + : public base::RefCountedThreadSafe<BrowserCompositorOutputSurfaceProxy> { + public: + BrowserCompositorOutputSurfaceProxy( + IDMap<BrowserCompositorOutputSurface>* surface_map); + + // Call this before each OutputSurface is created to ensure that the + // proxy is connected to the current host. + void ConnectToGpuProcessHost( + base::SingleThreadTaskRunner* compositor_thread_task_runner); + + private: + friend class base::RefCountedThreadSafe<BrowserCompositorOutputSurfaceProxy>; + friend class SoftwareBrowserCompositorOutputSurface; + ~BrowserCompositorOutputSurfaceProxy(); + + void OnMessageReceivedOnCompositorThread(const IPC::Message& message); + + void OnUpdateVSyncParametersOnCompositorThread(int surface_id, + base::TimeTicks timebase, + base::TimeDelta interval); + + IDMap<BrowserCompositorOutputSurface>* surface_map_; + int connected_to_gpu_process_host_id_; + + DISALLOW_COPY_AND_ASSIGN(BrowserCompositorOutputSurfaceProxy); +}; + +} // namespace content + +#endif // CONTENT_BROWSER_AURA_BROWSER_COMPOSITOR_OUTPUT_SURFACE_PROXY_H_ |