Chromium Code Reviews| 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..97cef7650b5d2c2fb8b2964ed7bb793ca19e4d00 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); |
|
piman
2014/06/09 18:27:24
WriteParam(m, p.type) does the type deduction auto
|
| + 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<uint8_t>::Write(m, p.opacity); |
| + ParamTraits<int32_t>::Write(m, p.resource_id); |
| + switch(p.type) { |
| + case ppapi::CompositorLayerData::TYPE_COLOR: |
| + ParamTraits<uint8_t>::Write(m, p.color.red); |
| + ParamTraits<uint8_t>::Write(m, p.color.green); |
| + ParamTraits<uint8_t>::Write(m, p.color.blue); |
| + ParamTraits<uint8_t>::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)) |
|
piman
2014/06/09 18:27:24
Same here, ReadParam
|
| + 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<uint8_t>::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<uint8_t>::Read(m, iter, &r->color.red) && |
| + ParamTraits<uint8_t>::Read(m, iter, &r->color.green) && |
| + ParamTraits<uint8_t>::Read(m, iter, &r->color.blue) && |
| + ParamTraits<uint8_t>::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 |