| Index: cc/quads/render_pass.h
|
| diff --git a/cc/quads/render_pass.h b/cc/quads/render_pass.h
|
| index 5b0c3b61be16f371cba040c5821e109bc58459b7..db42faf1e3ffa5cf2aeddc509116bc1f8a196314 100644
|
| --- a/cc/quads/render_pass.h
|
| +++ b/cc/quads/render_pass.h
|
| @@ -12,6 +12,7 @@
|
| #include "base/containers/hash_tables.h"
|
| #include "cc/base/cc_export.h"
|
| #include "cc/base/scoped_ptr_vector.h"
|
| +#include "cc/quads/list_container.h"
|
| #include "cc/quads/render_pass_id.h"
|
| #include "skia/ext/refptr.h"
|
| #include "ui/gfx/rect.h"
|
| @@ -28,15 +29,17 @@ class Value;
|
| namespace cc {
|
|
|
| class DrawQuad;
|
| -class RenderPassDrawQuad;
|
| class CopyOutputRequest;
|
| +class RenderPassDrawQuad;
|
| class SharedQuadState;
|
|
|
| // A list of DrawQuad objects, sorted internally in front-to-back order.
|
| -class QuadList : public ScopedPtrVector<DrawQuad> {
|
| +class QuadList : public ListContainer<DrawQuad> {
|
| public:
|
| - typedef reverse_iterator BackToFrontIterator;
|
| - typedef const_reverse_iterator ConstBackToFrontIterator;
|
| + explicit QuadList(size_t default_size_to_reserve);
|
| +
|
| + typedef QuadList::ReverseIterator BackToFrontIterator;
|
| + typedef QuadList::ConstReverseIterator ConstBackToFrontIterator;
|
|
|
| inline BackToFrontIterator BackToFrontBegin() { return rbegin(); }
|
| inline BackToFrontIterator BackToFrontEnd() { return rend(); }
|
| @@ -75,11 +78,10 @@ class CC_EXPORT RenderPass {
|
| void AsValueInto(base::debug::TracedValue* dict) const;
|
|
|
| SharedQuadState* CreateAndAppendSharedQuadState();
|
| +
|
| template <typename DrawQuadType>
|
| DrawQuadType* CreateAndAppendDrawQuad() {
|
| - scoped_ptr<DrawQuadType> draw_quad = make_scoped_ptr(new DrawQuadType);
|
| - quad_list.push_back(draw_quad.template PassAs<DrawQuad>());
|
| - return static_cast<DrawQuadType*>(quad_list.back());
|
| + return quad_list.AllocateAndConstruct<DrawQuadType>();
|
| }
|
|
|
| RenderPassDrawQuad* CopyFromAndAppendRenderPassDrawQuad(
|
| @@ -119,10 +121,7 @@ class CC_EXPORT RenderPass {
|
| private:
|
| template <typename DrawQuadType>
|
| DrawQuadType* CopyFromAndAppendTypedDrawQuad(const DrawQuad* quad) {
|
| - scoped_ptr<DrawQuadType> draw_quad =
|
| - make_scoped_ptr(new DrawQuadType(*DrawQuadType::MaterialCast(quad)));
|
| - quad_list.push_back(draw_quad.template PassAs<DrawQuad>());
|
| - return static_cast<DrawQuadType*>(quad_list.back());
|
| + return quad_list.AllocateAndCopyFrom(DrawQuadType::MaterialCast(quad));
|
| }
|
|
|
| DISALLOW_COPY_AND_ASSIGN(RenderPass);
|
|
|