| // Copyright 2014 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/blink/web_compositor_support_impl.h" |
| |
| #include "base/memory/scoped_ptr.h" |
| #include "base/message_loop/message_loop_proxy.h" |
| #include "cc/animation/transform_operations.h" |
| #include "cc/blink/web_animation_impl.h" |
| #include "cc/blink/web_content_layer_impl.h" |
| #include "cc/blink/web_display_item_list_impl.h" |
| #include "cc/blink/web_external_texture_layer_impl.h" |
| #include "cc/blink/web_filter_animation_curve_impl.h" |
| #include "cc/blink/web_filter_operations_impl.h" |
| #include "cc/blink/web_float_animation_curve_impl.h" |
| #include "cc/blink/web_image_layer_impl.h" |
| #include "cc/blink/web_layer_impl.h" |
| #include "cc/blink/web_nine_patch_layer_impl.h" |
| #include "cc/blink/web_scroll_offset_animation_curve_impl.h" |
| #include "cc/blink/web_scrollbar_layer_impl.h" |
| #include "cc/blink/web_transform_animation_curve_impl.h" |
| #include "cc/blink/web_transform_operations_impl.h" |
| #include "cc/output/output_surface.h" |
| #include "cc/output/software_output_device.h" |
| |
| using blink::WebCompositorAnimation; |
| using blink::WebCompositorAnimationCurve; |
| using blink::WebContentLayer; |
| using blink::WebContentLayerClient; |
| #if WEB_DISPLAY_ITEM_LIST_IS_DEFINED |
| using blink::WebDisplayItemList; |
| #endif |
| using blink::WebExternalTextureLayer; |
| using blink::WebExternalTextureLayerClient; |
| using blink::WebFilterAnimationCurve; |
| using blink::WebFilterOperations; |
| using blink::WebFloatAnimationCurve; |
| using blink::WebImageLayer; |
| using blink::WebNinePatchLayer; |
| using blink::WebLayer; |
| using blink::WebScrollbar; |
| using blink::WebScrollbarLayer; |
| using blink::WebScrollbarThemeGeometry; |
| using blink::WebScrollbarThemePainter; |
| using blink::WebScrollOffsetAnimationCurve; |
| using blink::WebTransformAnimationCurve; |
| using blink::WebTransformOperations; |
| |
| namespace cc_blink { |
| |
| WebCompositorSupportImpl::WebCompositorSupportImpl() { |
| } |
| |
| WebCompositorSupportImpl::~WebCompositorSupportImpl() { |
| } |
| |
| WebLayer* WebCompositorSupportImpl::createLayer() { |
| return new WebLayerImpl(); |
| } |
| |
| WebContentLayer* WebCompositorSupportImpl::createContentLayer( |
| WebContentLayerClient* client) { |
| return new WebContentLayerImpl(client); |
| } |
| |
| WebExternalTextureLayer* WebCompositorSupportImpl::createExternalTextureLayer( |
| WebExternalTextureLayerClient* client) { |
| return new WebExternalTextureLayerImpl(client); |
| } |
| |
| blink::WebImageLayer* WebCompositorSupportImpl::createImageLayer() { |
| return new WebImageLayerImpl(); |
| } |
| |
| blink::WebNinePatchLayer* WebCompositorSupportImpl::createNinePatchLayer() { |
| return new WebNinePatchLayerImpl(); |
| } |
| |
| WebScrollbarLayer* WebCompositorSupportImpl::createScrollbarLayer( |
| WebScrollbar* scrollbar, |
| WebScrollbarThemePainter painter, |
| WebScrollbarThemeGeometry* geometry) { |
| return new WebScrollbarLayerImpl(scrollbar, painter, geometry); |
| } |
| |
| WebScrollbarLayer* WebCompositorSupportImpl::createSolidColorScrollbarLayer( |
| WebScrollbar::Orientation orientation, |
| int thumb_thickness, |
| int track_start, |
| bool is_left_side_vertical_scrollbar) { |
| return new WebScrollbarLayerImpl(orientation, |
| thumb_thickness, |
| track_start, |
| is_left_side_vertical_scrollbar); |
| } |
| |
| #if WEB_DISPLAY_ITEM_LIST_IS_DEFINED |
| WebDisplayItemList* WebCompositorSupportImpl::createDisplayItemList() { |
| return new WebDisplayItemListImpl(); |
| } |
| #endif |
| |
| WebCompositorAnimation* WebCompositorSupportImpl::createAnimation( |
| const blink::WebCompositorAnimationCurve& curve, |
| blink::WebCompositorAnimation::TargetProperty target, |
| #ifdef WEB_COMPOSITOR_SUPPORT_CREATE_ANIMATION_SUPPORTS_GROUP |
| int group_id, |
| #endif |
| int animation_id) { |
| #ifdef WEB_COMPOSITOR_SUPPORT_CREATE_ANIMATION_SUPPORTS_GROUP |
| return new WebCompositorAnimationImpl(curve, target, animation_id, group_id); |
| #else |
| return new WebCompositorAnimationImpl(curve, target, animation_id, 0); |
| #endif |
| } |
| |
| WebFilterAnimationCurve* |
| WebCompositorSupportImpl::createFilterAnimationCurve() { |
| return new WebFilterAnimationCurveImpl(); |
| } |
| |
| WebFloatAnimationCurve* WebCompositorSupportImpl::createFloatAnimationCurve() { |
| return new WebFloatAnimationCurveImpl(); |
| } |
| |
| WebScrollOffsetAnimationCurve* |
| WebCompositorSupportImpl::createScrollOffsetAnimationCurve( |
| blink::WebFloatPoint target_value, |
| blink::WebCompositorAnimationCurve::TimingFunctionType timing_function) { |
| return new WebScrollOffsetAnimationCurveImpl(target_value, timing_function); |
| } |
| |
| WebTransformAnimationCurve* |
| WebCompositorSupportImpl::createTransformAnimationCurve() { |
| return new WebTransformAnimationCurveImpl(); |
| } |
| |
| WebTransformOperations* WebCompositorSupportImpl::createTransformOperations() { |
| return new WebTransformOperationsImpl(); |
| } |
| |
| WebFilterOperations* WebCompositorSupportImpl::createFilterOperations() { |
| return new WebFilterOperationsImpl(); |
| } |
| |
| } // namespace cc_blink |