-template<typename QuadType>
-static scoped_ptr<cc::DrawQuad> ReadDrawQuad(const Message* m,
- PickleIterator* iter) {
- scoped_ptr<QuadType> quad(new QuadType);
- if (!ReadParam(m, iter, quad.get()))
- return scoped_ptr<QuadType>().template PassAs<cc::DrawQuad>();
- return quad.template PassAs<cc::DrawQuad>();
+template <typename QuadType>
+static cc::DrawQuad* ReadDrawQuad(const Message* m,
+ PickleIterator* iter,
+ cc::RenderPass* render_pass) {
+ QuadType* quad = render_pass->CreateAndAppendDrawQuad<QuadType>();
+ if (!ReadParam(m, iter, quad))
+ return NULL;
+ return quad;