1f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)// Copyright 2014 The Chromium Authors. All rights reserved. 25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// found in the LICENSE file. 45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 503b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)#ifndef CC_BLINK_WEB_COMPOSITOR_SUPPORT_IMPL_H_ 603b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)#define CC_BLINK_WEB_COMPOSITOR_SUPPORT_IMPL_H_ 75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 85821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "base/memory/ref_counted.h" 9868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)#include "base/message_loop/message_loop_proxy.h" 1003b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)#include "cc/blink/cc_blink_export.h" 115f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)#include "third_party/WebKit/public/platform/WebCompositorAnimationCurve.h" 12868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)#include "third_party/WebKit/public/platform/WebCompositorSupport.h" 13868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)#include "third_party/WebKit/public/platform/WebLayer.h" 14868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)#include "third_party/WebKit/public/platform/WebTransformOperations.h" 155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 16f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)namespace blink { 172a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)class WebGraphicsContext3D; 185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2003b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)namespace cc_blink { 215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2203b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)class CC_BLINK_EXPORT WebCompositorSupportImpl 23f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) : public NON_EXPORTED_BASE(blink::WebCompositorSupport) { 245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) public: 255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) WebCompositorSupportImpl(); 265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual ~WebCompositorSupportImpl(); 275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 28f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) virtual blink::WebLayer* createLayer(); 29f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) virtual blink::WebContentLayer* createContentLayer( 30f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) blink::WebContentLayerClient* client); 31f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) virtual blink::WebExternalTextureLayer* createExternalTextureLayer( 32f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) blink::WebExternalTextureLayerClient* client); 33f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) virtual blink::WebImageLayer* createImageLayer(); 34f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) virtual blink::WebNinePatchLayer* createNinePatchLayer(); 35f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) virtual blink::WebScrollbarLayer* createScrollbarLayer( 36f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) blink::WebScrollbar* scrollbar, 37f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) blink::WebScrollbarThemePainter painter, 38f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) blink::WebScrollbarThemeGeometry*); 39f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) virtual blink::WebScrollbarLayer* createSolidColorScrollbarLayer( 40a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch blink::WebScrollbar::Orientation orientation, 41a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch int thumb_thickness, 42a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch int track_start, 43a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch bool is_left_side_vertical_scrollbar); 445f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) virtual blink::WebCompositorAnimation* createAnimation( 455f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) const blink::WebCompositorAnimationCurve& curve, 465f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) blink::WebCompositorAnimation::TargetProperty target, 472a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) int animation_id); 48f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) virtual blink::WebFilterAnimationCurve* createFilterAnimationCurve(); 49f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) virtual blink::WebFloatAnimationCurve* createFloatAnimationCurve(); 505d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) virtual blink::WebScrollOffsetAnimationCurve* 515d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) createScrollOffsetAnimationCurve( 525d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) blink::WebFloatPoint target_value, 535f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) blink::WebCompositorAnimationCurve::TimingFunctionType 545f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) timing_function); 55f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) virtual blink::WebTransformAnimationCurve* createTransformAnimationCurve(); 56f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) virtual blink::WebTransformOperations* createTransformOperations(); 57f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) virtual blink::WebFilterOperations* createFilterOperations(); 585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) private: 602a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) DISALLOW_COPY_AND_ASSIGN(WebCompositorSupportImpl); 615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}; 625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 6303b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)} // namespace cc_blink 645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 6503b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)#endif // CC_BLINK_WEB_COMPOSITOR_SUPPORT_IMPL_H_ 66