summaryrefslogtreecommitdiffstats
path: root/ui/surface
diff options
context:
space:
mode:
authorscottmg@chromium.org <scottmg@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-09-06 01:37:31 +0000
committerscottmg@chromium.org <scottmg@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-09-06 01:37:31 +0000
commit111975c6ed2caac665ed17f876f86536af6c3d2f (patch)
tree80512760fdaffd6354b8152104686095d3d73148 /ui/surface
parent07ed535b5f4250e2030cd169fb1e9de050eea07e (diff)
downloadchromium_src-111975c6ed2caac665ed17f876f86536af6c3d2f.zip
chromium_src-111975c6ed2caac665ed17f876f86536af6c3d2f.tar.gz
chromium_src-111975c6ed2caac665ed17f876f86536af6c3d2f.tar.bz2
Enable GPU acceleration for Aura on Windows
Use GpuTransportSurface and AcceleratedSurface for rendering on win aura. Run with: --open-ash --force-compositing-mode --enable-threaded-compositing BUG= Review URL: https://chromiumcodereview.appspot.com/10890046 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@155093 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'ui/surface')
-rw-r--r--ui/surface/accelerated_surface_win.cc24
-rw-r--r--ui/surface/accelerated_surface_win.h8
-rw-r--r--ui/surface/surface.gyp8
3 files changed, 18 insertions, 22 deletions
diff --git a/ui/surface/accelerated_surface_win.cc b/ui/surface/accelerated_surface_win.cc
index ff3affa..74b8aec 100644
--- a/ui/surface/accelerated_surface_win.cc
+++ b/ui/surface/accelerated_surface_win.cc
@@ -229,12 +229,14 @@ class PresentThreadPool {
class AcceleratedPresenterMap {
public:
AcceleratedPresenterMap();
- scoped_refptr<AcceleratedPresenter> CreatePresenter(gfx::NativeWindow window);
+ scoped_refptr<AcceleratedPresenter> CreatePresenter(
+ gfx::PluginWindowHandle window);
void RemovePresenter(const scoped_refptr<AcceleratedPresenter>& presenter);
- scoped_refptr<AcceleratedPresenter> GetPresenter(gfx::NativeWindow window);
+ scoped_refptr<AcceleratedPresenter> GetPresenter(
+ gfx::PluginWindowHandle window);
private:
base::Lock lock_;
- typedef std::map<gfx::NativeWindow, AcceleratedPresenter*> PresenterMap;
+ typedef std::map<gfx::PluginWindowHandle, AcceleratedPresenter*> PresenterMap;
PresenterMap presenters_;
DISALLOW_COPY_AND_ASSIGN(AcceleratedPresenterMap);
};
@@ -381,7 +383,7 @@ AcceleratedPresenterMap::AcceleratedPresenterMap() {
}
scoped_refptr<AcceleratedPresenter> AcceleratedPresenterMap::CreatePresenter(
- gfx::NativeWindow window) {
+ gfx::PluginWindowHandle window) {
scoped_refptr<AcceleratedPresenter> presenter(
new AcceleratedPresenter(window));
@@ -408,7 +410,7 @@ void AcceleratedPresenterMap::RemovePresenter(
}
scoped_refptr<AcceleratedPresenter> AcceleratedPresenterMap::GetPresenter(
- gfx::NativeWindow window) {
+ gfx::PluginWindowHandle window) {
base::AutoLock locked(lock_);
PresenterMap::iterator it = presenters_.find(window);
if (it == presenters_.end())
@@ -417,7 +419,7 @@ scoped_refptr<AcceleratedPresenter> AcceleratedPresenterMap::GetPresenter(
return it->second;
}
-AcceleratedPresenter::AcceleratedPresenter(gfx::NativeWindow window)
+AcceleratedPresenter::AcceleratedPresenter(gfx::PluginWindowHandle window)
: present_thread_(g_present_thread_pool.Pointer()->NextThread()),
window_(window),
event_(false, false),
@@ -425,7 +427,7 @@ AcceleratedPresenter::AcceleratedPresenter(gfx::NativeWindow window)
}
scoped_refptr<AcceleratedPresenter> AcceleratedPresenter::GetForWindow(
- gfx::NativeWindow window) {
+ gfx::PluginWindowHandle window) {
return g_accelerated_presenter_map.Pointer()->GetPresenter(window);
}
@@ -676,8 +678,10 @@ void AcceleratedPresenter::DoPresentAndAcknowledge(
const gfx::Size& size,
int64 surface_handle,
const CompletionTask& completion_task) {
- TRACE_EVENT1(
- "gpu", "DoPresentAndAcknowledge", "surface_handle", surface_handle);
+ TRACE_EVENT2(
+ "gpu", "DoPresentAndAcknowledge",
+ "width", size.width(),
+ "height", size.height());
HRESULT hr;
@@ -920,7 +924,7 @@ bool AcceleratedPresenter::GetPresentationStats(base::TimeTicks* timebase,
return true;
}
-AcceleratedSurface::AcceleratedSurface(gfx::NativeWindow window)
+AcceleratedSurface::AcceleratedSurface(gfx::PluginWindowHandle window)
: presenter_(g_accelerated_presenter_map.Pointer()->CreatePresenter(
window)) {
}
diff --git a/ui/surface/accelerated_surface_win.h b/ui/surface/accelerated_surface_win.h
index 6a19e81..1256909 100644
--- a/ui/surface/accelerated_surface_win.h
+++ b/ui/surface/accelerated_surface_win.h
@@ -29,13 +29,13 @@ class SURFACE_EXPORT AcceleratedPresenter
base::TimeTicks,
base::TimeDelta)> CompletionTask;
- explicit AcceleratedPresenter(gfx::NativeWindow window);
+ explicit AcceleratedPresenter(gfx::PluginWindowHandle window);
// Returns a thread safe reference to the presenter for the given window or
// null is no such presenter exists. The thread safe refptr ensures the
// presenter will not be destroyed. This can be called on any thread.
static scoped_refptr<AcceleratedPresenter> GetForWindow(
- gfx::NativeWindow window);
+ gfx::PluginWindowHandle window);
// Schedule a frame to be presented. The completion callback will be invoked
// when it is safe to write to the surface on another thread. The lock for
@@ -96,7 +96,7 @@ class SURFACE_EXPORT AcceleratedPresenter
PresentThread* const present_thread_;
// The window that is presented to.
- gfx::NativeWindow window_;
+ gfx::PluginWindowHandle window_;
// The lock is taken while any thread is calling the object, except those that
// simply post from the main thread to the present thread via the immutable
@@ -130,7 +130,7 @@ class SURFACE_EXPORT AcceleratedPresenter
class SURFACE_EXPORT AcceleratedSurface {
public:
- AcceleratedSurface(gfx::NativeWindow window);
+ AcceleratedSurface(gfx::PluginWindowHandle window);
~AcceleratedSurface();
// Synchronously present a frame with no acknowledgement.
diff --git a/ui/surface/surface.gyp b/ui/surface/surface.gyp
index 4858b54..80a70b4 100644
--- a/ui/surface/surface.gyp
+++ b/ui/surface/surface.gyp
@@ -44,14 +44,6 @@
'defines': [
'SURFACE_IMPLEMENTATION',
],
- 'conditions': [
- ['use_aura==1', {
- 'sources/': [
- ['exclude', 'accelerated_surface_win.cc'],
- ['exclude', 'accelerated_surface_win.h'],
- ],
- }],
- ],
},
],
}