// Copyright 2015 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #include "cc/playback/display_item_proto_factory.h" #include "cc/playback/clip_display_item.h" #include "cc/playback/clip_path_display_item.h" #include "cc/playback/compositing_display_item.h" #include "cc/playback/drawing_display_item.h" #include "cc/playback/filter_display_item.h" #include "cc/playback/float_clip_display_item.h" #include "cc/playback/transform_display_item.h" #include "cc/proto/display_item.pb.h" #include "ui/gfx/geometry/rect.h" namespace cc { class ImageSerializationProcessor; // static void DisplayItemProtoFactory::AllocateAndConstruct( const gfx::Rect& visual_rect, DisplayItemList* list, const proto::DisplayItem& proto, ImageSerializationProcessor* image_serialization_processor) { switch (proto.type()) { case proto::DisplayItem::Type_Clip: list->CreateAndAppendItem(visual_rect, proto); return; case proto::DisplayItem::Type_EndClip: list->CreateAndAppendItem(visual_rect, proto); return; case proto::DisplayItem::Type_ClipPath: list->CreateAndAppendItem(visual_rect, proto); return; case proto::DisplayItem::Type_EndClipPath: list->CreateAndAppendItem(visual_rect, proto); return; case proto::DisplayItem::Type_Compositing: list->CreateAndAppendItem(visual_rect, proto); return; case proto::DisplayItem::Type_EndCompositing: list->CreateAndAppendItem(visual_rect, proto); return; case proto::DisplayItem::Type_Drawing: list->CreateAndAppendItem( visual_rect, proto, image_serialization_processor); return; case proto::DisplayItem::Type_Filter: list->CreateAndAppendItem(visual_rect, proto); return; case proto::DisplayItem::Type_EndFilter: list->CreateAndAppendItem(visual_rect, proto); return; case proto::DisplayItem::Type_FloatClip: list->CreateAndAppendItem(visual_rect, proto); return; case proto::DisplayItem::Type_EndFloatClip: list->CreateAndAppendItem(visual_rect, proto); return; case proto::DisplayItem::Type_Transform: list->CreateAndAppendItem(visual_rect, proto); return; case proto::DisplayItem::Type_EndTransform: list->CreateAndAppendItem(visual_rect, proto); return; } NOTREACHED(); } } // namespace cc