Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(240)

Unified Diff: ppapi/proxy/ppapi_param_traits.cc

Issue 298023004: [PPAPI] Compositor API implementation (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@compositor_api_def_new
Patch Set: Fix review issue Created 6 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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

Powered by Google App Engine
This is Rietveld 408576698