1// Copyright 2014 The Chromium Authors. All rights reserved. 2// Use of this source code is governed by a BSD-style license that can be 3// found in the LICENSE file. 4 5#include "cc/blink/web_compositor_support_impl.h" 6 7#include "base/memory/scoped_ptr.h" 8#include "base/message_loop/message_loop_proxy.h" 9#include "cc/animation/transform_operations.h" 10#include "cc/blink/web_animation_impl.h" 11#include "cc/blink/web_content_layer_impl.h" 12#include "cc/blink/web_external_texture_layer_impl.h" 13#include "cc/blink/web_filter_animation_curve_impl.h" 14#include "cc/blink/web_filter_operations_impl.h" 15#include "cc/blink/web_float_animation_curve_impl.h" 16#include "cc/blink/web_image_layer_impl.h" 17#include "cc/blink/web_layer_impl.h" 18#include "cc/blink/web_nine_patch_layer_impl.h" 19#include "cc/blink/web_scroll_offset_animation_curve_impl.h" 20#include "cc/blink/web_scrollbar_layer_impl.h" 21#include "cc/blink/web_transform_animation_curve_impl.h" 22#include "cc/blink/web_transform_operations_impl.h" 23#include "cc/output/output_surface.h" 24#include "cc/output/software_output_device.h" 25 26using blink::WebCompositorAnimation; 27using blink::WebCompositorAnimationCurve; 28using blink::WebContentLayer; 29using blink::WebContentLayerClient; 30using blink::WebExternalTextureLayer; 31using blink::WebExternalTextureLayerClient; 32using blink::WebFilterAnimationCurve; 33using blink::WebFilterOperations; 34using blink::WebFloatAnimationCurve; 35using blink::WebImageLayer; 36using blink::WebNinePatchLayer; 37using blink::WebLayer; 38using blink::WebScrollbar; 39using blink::WebScrollbarLayer; 40using blink::WebScrollbarThemeGeometry; 41using blink::WebScrollbarThemePainter; 42using blink::WebScrollOffsetAnimationCurve; 43using blink::WebTransformAnimationCurve; 44using blink::WebTransformOperations; 45 46namespace cc_blink { 47 48WebCompositorSupportImpl::WebCompositorSupportImpl() { 49} 50 51WebCompositorSupportImpl::~WebCompositorSupportImpl() { 52} 53 54WebLayer* WebCompositorSupportImpl::createLayer() { 55 return new WebLayerImpl(); 56} 57 58WebContentLayer* WebCompositorSupportImpl::createContentLayer( 59 WebContentLayerClient* client) { 60 return new WebContentLayerImpl(client); 61} 62 63WebExternalTextureLayer* WebCompositorSupportImpl::createExternalTextureLayer( 64 WebExternalTextureLayerClient* client) { 65 return new WebExternalTextureLayerImpl(client); 66} 67 68blink::WebImageLayer* WebCompositorSupportImpl::createImageLayer() { 69 return new WebImageLayerImpl(); 70} 71 72blink::WebNinePatchLayer* WebCompositorSupportImpl::createNinePatchLayer() { 73 return new WebNinePatchLayerImpl(); 74} 75 76WebScrollbarLayer* WebCompositorSupportImpl::createScrollbarLayer( 77 WebScrollbar* scrollbar, 78 WebScrollbarThemePainter painter, 79 WebScrollbarThemeGeometry* geometry) { 80 return new WebScrollbarLayerImpl(scrollbar, painter, geometry); 81} 82 83WebScrollbarLayer* WebCompositorSupportImpl::createSolidColorScrollbarLayer( 84 WebScrollbar::Orientation orientation, 85 int thumb_thickness, 86 int track_start, 87 bool is_left_side_vertical_scrollbar) { 88 return new WebScrollbarLayerImpl(orientation, 89 thumb_thickness, 90 track_start, 91 is_left_side_vertical_scrollbar); 92} 93 94WebCompositorAnimation* WebCompositorSupportImpl::createAnimation( 95 const blink::WebCompositorAnimationCurve& curve, 96 blink::WebCompositorAnimation::TargetProperty target, 97 int animation_id) { 98 return new WebCompositorAnimationImpl(curve, target, animation_id, 0); 99} 100 101WebFilterAnimationCurve* 102WebCompositorSupportImpl::createFilterAnimationCurve() { 103 return new WebFilterAnimationCurveImpl(); 104} 105 106WebFloatAnimationCurve* WebCompositorSupportImpl::createFloatAnimationCurve() { 107 return new WebFloatAnimationCurveImpl(); 108} 109 110WebScrollOffsetAnimationCurve* 111WebCompositorSupportImpl::createScrollOffsetAnimationCurve( 112 blink::WebFloatPoint target_value, 113 blink::WebCompositorAnimationCurve::TimingFunctionType timing_function) { 114 return new WebScrollOffsetAnimationCurveImpl(target_value, timing_function); 115} 116 117WebTransformAnimationCurve* 118WebCompositorSupportImpl::createTransformAnimationCurve() { 119 return new WebTransformAnimationCurveImpl(); 120} 121 122WebTransformOperations* WebCompositorSupportImpl::createTransformOperations() { 123 return new WebTransformOperationsImpl(); 124} 125 126WebFilterOperations* WebCompositorSupportImpl::createFilterOperations() { 127 return new WebFilterOperationsImpl(); 128} 129 130} // namespace cc_blink 131