diff options
author | skaslev@chromium.org <skaslev@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-03-29 05:06:48 +0000 |
---|---|---|
committer | skaslev@chromium.org <skaslev@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-03-29 05:06:48 +0000 |
commit | d0f4bd1f302782137367a5285621a4ade6a6610d (patch) | |
tree | bbd91719ca4c006791f04c208894b4173825659c | |
parent | 9fcd7832c97ede151ad09e9a5847fc8012faa3ed (diff) | |
download | chromium_src-d0f4bd1f302782137367a5285621a4ade6a6610d.zip chromium_src-d0f4bd1f302782137367a5285621a4ade6a6610d.tar.gz chromium_src-d0f4bd1f302782137367a5285621a4ade6a6610d.tar.bz2 |
Pass a sequence number along with the DIB handle when compositing in software.
BUG=124671, 161008
Review URL: https://chromiumcodereview.appspot.com/13248003
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@191301 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r-- | cc/output/compositor_frame_ack.cc | 4 | ||||
-rw-r--r-- | cc/output/compositor_frame_ack.h | 2 | ||||
-rw-r--r-- | cc/output/software_frame_data.cc | 4 | ||||
-rw-r--r-- | cc/output/software_frame_data.h | 2 | ||||
-rw-r--r-- | cc/output/software_output_device.cc | 5 | ||||
-rw-r--r-- | cc/output/software_output_device.h | 2 | ||||
-rw-r--r-- | cc/output/software_renderer.cc | 2 | ||||
-rw-r--r-- | content/common/cc_messages.cc | 6 | ||||
-rw-r--r-- | content/common/cc_messages.h | 2 | ||||
-rw-r--r-- | ui/surface/transport_dib.h | 4 |
10 files changed, 17 insertions, 16 deletions
diff --git a/cc/output/compositor_frame_ack.cc b/cc/output/compositor_frame_ack.cc index 781c67d..a411b42 100644 --- a/cc/output/compositor_frame_ack.cc +++ b/cc/output/compositor_frame_ack.cc @@ -6,9 +6,7 @@ namespace cc { -CompositorFrameAck::CompositorFrameAck() - : last_content_dib(TransportDIB::DefaultHandleValue()) { -} +CompositorFrameAck::CompositorFrameAck() {} CompositorFrameAck::~CompositorFrameAck() {} diff --git a/cc/output/compositor_frame_ack.h b/cc/output/compositor_frame_ack.h index 5a63e0d..5b4bb50 100644 --- a/cc/output/compositor_frame_ack.h +++ b/cc/output/compositor_frame_ack.h @@ -20,7 +20,7 @@ class CC_EXPORT CompositorFrameAck { TransferableResourceArray resources; scoped_ptr<GLFrameData> gl_frame_data; - TransportDIB::Handle last_content_dib; + TransportDIB::Id last_dib_id; private: DISALLOW_COPY_AND_ASSIGN(CompositorFrameAck); diff --git a/cc/output/software_frame_data.cc b/cc/output/software_frame_data.cc index 11feaa6..20da28e 100644 --- a/cc/output/software_frame_data.cc +++ b/cc/output/software_frame_data.cc @@ -6,9 +6,7 @@ namespace cc { -SoftwareFrameData::SoftwareFrameData() - : content_dib(TransportDIB::DefaultHandleValue()) { -} +SoftwareFrameData::SoftwareFrameData() {} SoftwareFrameData::~SoftwareFrameData() {} diff --git a/cc/output/software_frame_data.h b/cc/output/software_frame_data.h index aef9635..c1e3dd7 100644 --- a/cc/output/software_frame_data.h +++ b/cc/output/software_frame_data.h @@ -19,7 +19,7 @@ class CC_EXPORT SoftwareFrameData { gfx::Size size; gfx::Rect damage_rect; - TransportDIB::Handle content_dib; + TransportDIB::Id dib_id; }; } // namespace cc diff --git a/cc/output/software_output_device.cc b/cc/output/software_output_device.cc index e63322a..956ee6c 100644 --- a/cc/output/software_output_device.cc +++ b/cc/output/software_output_device.cc @@ -34,8 +34,9 @@ SkCanvas* SoftwareOutputDevice::BeginPaint(gfx::Rect damage_rect) { void SoftwareOutputDevice::EndPaint(SoftwareFrameData* frame_data) { DCHECK(device_); if (frame_data) { + frame_data->size = viewport_size_; frame_data->damage_rect = damage_rect_; - frame_data->content_dib = TransportDIB::DefaultHandleValue(); + frame_data->dib_id = TransportDIB::Id(); } } @@ -54,7 +55,7 @@ void SoftwareOutputDevice::Scroll( NOTIMPLEMENTED(); } -void SoftwareOutputDevice::ReclaimDIB(TransportDIB::Handle handle) { +void SoftwareOutputDevice::ReclaimDIB(const TransportDIB::Id& id) { NOTIMPLEMENTED(); } diff --git a/cc/output/software_output_device.h b/cc/output/software_output_device.h index f9566f8..9899629 100644 --- a/cc/output/software_output_device.h +++ b/cc/output/software_output_device.h @@ -39,7 +39,7 @@ class CC_EXPORT SoftwareOutputDevice { gfx::Rect clip_rect); // TODO(skaslev) Remove this after UberCompositor lands. - virtual void ReclaimDIB(TransportDIB::Handle handle); + virtual void ReclaimDIB(const TransportDIB::Id& id); protected: gfx::Size viewport_size_; diff --git a/cc/output/software_renderer.cc b/cc/output/software_renderer.cc index 33dfacf..d989800 100644 --- a/cc/output/software_renderer.cc +++ b/cc/output/software_renderer.cc @@ -124,7 +124,7 @@ void SoftwareRenderer::ReceiveCompositorFrameAck( const CompositorFrameAck& ack) { if (capabilities_.using_swap_complete_callback) client_->OnSwapBuffersComplete(); - output_device_->ReclaimDIB(ack.last_content_dib); + output_device_->ReclaimDIB(ack.last_dib_id); } bool SoftwareRenderer::FlippedFramebuffer() const { diff --git a/content/common/cc_messages.cc b/content/common/cc_messages.cc index fbd9fe0..f8e0d74 100644 --- a/content/common/cc_messages.cc +++ b/content/common/cc_messages.cc @@ -627,7 +627,7 @@ void ParamTraits<cc::CompositorFrame>::Log(const param_type& p, void ParamTraits<cc::CompositorFrameAck>::Write(Message* m, const param_type& p) { WriteParam(m, p.resources); - WriteParam(m, p.last_content_dib); + WriteParam(m, p.last_dib_id); if (p.gl_frame_data) { WriteParam(m, static_cast<int>(GL_FRAME)); WriteParam(m, *p.gl_frame_data); @@ -642,7 +642,7 @@ bool ParamTraits<cc::CompositorFrameAck>::Read(const Message* m, if (!ReadParam(m, iter, &p->resources)) return false; - if (!ReadParam(m, iter, &p->last_content_dib)) + if (!ReadParam(m, iter, &p->last_dib_id)) return false; int compositor_frame_type; @@ -668,7 +668,7 @@ void ParamTraits<cc::CompositorFrameAck>::Log(const param_type& p, l->append("CompositorFrameAck("); LogParam(p.resources, l); l->append(", "); - LogParam(p.last_content_dib, l); + LogParam(p.last_dib_id, l); l->append(", "); if (p.gl_frame_data) LogParam(*p.gl_frame_data, l); diff --git a/content/common/cc_messages.h b/content/common/cc_messages.h index 33a5fcb..3cc7b9e 100644 --- a/content/common/cc_messages.h +++ b/content/common/cc_messages.h @@ -239,5 +239,5 @@ IPC_STRUCT_TRAITS_END() IPC_STRUCT_TRAITS_BEGIN(cc::SoftwareFrameData) IPC_STRUCT_TRAITS_MEMBER(size) IPC_STRUCT_TRAITS_MEMBER(damage_rect) - IPC_STRUCT_TRAITS_MEMBER(content_dib) + IPC_STRUCT_TRAITS_MEMBER(dib_id) IPC_STRUCT_TRAITS_END() diff --git a/ui/surface/transport_dib.h b/ui/surface/transport_dib.h index 233cd2e..6397c97 100644 --- a/ui/surface/transport_dib.h +++ b/ui/surface/transport_dib.h @@ -54,6 +54,10 @@ class SURFACE_EXPORT TransportDIB { sequence_num(seq_num) { } + bool operator==(const HandleAndSequenceNum& other) const { + return other.handle == handle && other.sequence_num == sequence_num; + } + bool operator<(const HandleAndSequenceNum& other) const { // Use the lexicographic order on the tuple <handle, sequence_num>. if (other.handle != handle) |