| Index: ppapi/proxy/ppapi_param_traits.cc
|
| diff --git a/ppapi/proxy/ppapi_param_traits.cc b/ppapi/proxy/ppapi_param_traits.cc
|
| index 1e91f5cdf46bc5bfe5ecfda6e0421c1b003ed572..1398fb1951fb1ae53cd9651ff05ddfe229abd483 100644
|
| --- a/ppapi/proxy/ppapi_param_traits.cc
|
| +++ b/ppapi/proxy/ppapi_param_traits.cc
|
| @@ -633,4 +633,117 @@ void ParamTraits<ppapi::SocketOptionData>::Log(const param_type& p,
|
| std::string* l) {
|
| }
|
|
|
| +// ppapi::CompositorLayerData --------------------------------------------------
|
| +
|
| +// static
|
| +void ParamTraits<ppapi::CompositorLayerData::Mailbox>::Write(
|
| + Message* m,
|
| + const param_type& p) {
|
| + m->WriteBytes(p, sizeof(p));
|
| +}
|
| +
|
| +// static
|
| +bool ParamTraits<ppapi::CompositorLayerData::Mailbox>::Read(
|
| + const Message* m,
|
| + PickleIterator* iter,
|
| + param_type* r) {
|
| + const char* data = NULL;
|
| + if (!m->ReadBytes(iter, &data, sizeof(*r)))
|
| + return false;
|
| + memcpy(r, data, sizeof(*r));
|
| + return true;
|
| +}
|
| +
|
| +// static
|
| +void ParamTraits<ppapi::CompositorLayerData::Mailbox>::Log(
|
| + const param_type& p,
|
| + std::string* l) {
|
| +}
|
| +
|
| +// static
|
| +void ParamTraits<ppapi::CompositorLayerData>::Write(
|
| + Message* m,
|
| + const param_type& p) {
|
| + ParamTraits<ppapi::CompositorLayerData::Type>::Write(m, p.type);
|
| + ParamTraits<PP_Size>::Write(m, p.size);
|
| + ParamTraits<PP_Rect>::Write(m, p.clip_rect);
|
| + for (size_t i = 0; i < arraysize(p.transform); i++)
|
| + ParamTraits<float>::Write(m, p.transform[i]);
|
| + ParamTraits<PP_BlendMode>::Write(m, p.blend_mode);
|
| + ParamTraits<float>::Write(m, p.opacity);
|
| + ParamTraits<int32_t>::Write(m, p.resource_id);
|
| + switch(p.type) {
|
| + case ppapi::CompositorLayerData::TYPE_COLOR:
|
| + ParamTraits<float>::Write(m, p.color.red);
|
| + ParamTraits<float>::Write(m, p.color.green);
|
| + ParamTraits<float>::Write(m, p.color.blue);
|
| + ParamTraits<float>::Write(m, p.color.alpha);
|
| + break;
|
| + case ppapi::CompositorLayerData::TYPE_TEXTURE:
|
| + ParamTraits<ppapi::CompositorLayerData::Mailbox>::Write(
|
| + m, p.texture.mailbox);
|
| + ParamTraits<uint32_t>::Write(m, p.texture.sync_point);
|
| + ParamTraits<PP_FloatRect>::Write(m, p.texture.source_rect);
|
| + ParamTraits<bool>::Write(m, p.texture.premult_alpha);
|
| + break;
|
| + case ppapi::CompositorLayerData::TYPE_IMAGE:
|
| + ParamTraits<PP_Instance>::Write(m, p.image.instance);
|
| + ParamTraits<PP_Resource>::Write(m, p.image.host_resource);
|
| + ParamTraits<PP_FloatRect>::Write(m, p.texture.source_rect);
|
| + break;
|
| + default:
|
| + NOTREACHED();
|
| + };
|
| +}
|
| +
|
| +// static
|
| +bool ParamTraits<ppapi::CompositorLayerData>::Read(const Message* m,
|
| + PickleIterator* iter,
|
| + param_type* r) {
|
| + if (!ParamTraits<ppapi::CompositorLayerData::Type>::Read(m, iter, &r->type))
|
| + return false;
|
| + if (!ParamTraits<PP_Size>::Read(m, iter, &r->size))
|
| + return false;
|
| + ParamTraits<PP_Rect>::Read(m, iter, &r->clip_rect);
|
| + for (size_t i = 0; i < arraysize(r->transform);i++) {
|
| + if (!ParamTraits<float>::Read(m, iter, &r->transform[i]))
|
| + return false;
|
| + }
|
| + if (!ParamTraits<PP_BlendMode>::Read(m, iter, &r->blend_mode))
|
| + return false;
|
| + if (!ParamTraits<float>::Read(m, iter, &r->opacity))
|
| + return false;
|
| + if (!ParamTraits<int32_t>::Read(m, iter, &r->resource_id))
|
| + return false;
|
| + switch(r->type) {
|
| + case ppapi::CompositorLayerData::TYPE_COLOR:
|
| + return
|
| + ParamTraits<float>::Read(m, iter, &r->color.red) &&
|
| + ParamTraits<float>::Read(m, iter, &r->color.green) &&
|
| + ParamTraits<float>::Read(m, iter, &r->color.blue) &&
|
| + ParamTraits<float>::Read(m, iter, &r->color.alpha);
|
| + case ppapi::CompositorLayerData::TYPE_TEXTURE:
|
| + return
|
| + ParamTraits<ppapi::CompositorLayerData::Mailbox>::Read(
|
| + m, iter, &r->texture.mailbox) &&
|
| + ParamTraits<uint32_t>::Read(m, iter, &r->texture.sync_point) &&
|
| + ParamTraits<PP_FloatRect>::Read(m, iter, &r->texture.source_rect) &&
|
| + ParamTraits<bool>::Read(m, iter, &r->texture.premult_alpha);
|
| + case ppapi::CompositorLayerData::TYPE_IMAGE:
|
| + return
|
| + ParamTraits<PP_Instance>::Read(m, iter, &r->image.instance) &&
|
| + ParamTraits<PP_Resource>::Read(m, iter, &r->image.host_resource) &&
|
| + ParamTraits<PP_FloatRect>::Read(m, iter, &r->texture.source_rect);
|
| + default:
|
| + return false;
|
| + }
|
| +
|
| + return true;
|
| +}
|
| +
|
| +// static
|
| +void ParamTraits<ppapi::CompositorLayerData>::Log(const param_type& p,
|
| + std::string* l) {
|
| +}
|
| +
|
| } // namespace IPC
|
|
|