summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorskaslev@chromium.org <skaslev@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-03-29 05:06:48 +0000
committerskaslev@chromium.org <skaslev@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-03-29 05:06:48 +0000
commitd0f4bd1f302782137367a5285621a4ade6a6610d (patch)
treebbd91719ca4c006791f04c208894b4173825659c
parent9fcd7832c97ede151ad09e9a5847fc8012faa3ed (diff)
downloadchromium_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.cc4
-rw-r--r--cc/output/compositor_frame_ack.h2
-rw-r--r--cc/output/software_frame_data.cc4
-rw-r--r--cc/output/software_frame_data.h2
-rw-r--r--cc/output/software_output_device.cc5
-rw-r--r--cc/output/software_output_device.h2
-rw-r--r--cc/output/software_renderer.cc2
-rw-r--r--content/common/cc_messages.cc6
-rw-r--r--content/common/cc_messages.h2
-rw-r--r--ui/surface/transport_dib.h4
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)