0

Make cc a component

BUG=154052

Review URL: https://codereview.chromium.org/11365025

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@165748 0039d316-1c4b-4281-b951-d872f2087c98
This commit is contained in:
piman@chromium.org
2012-11-02 21:06:20 +00:00
parent 220d60c8d3
commit 52347c8482
101 changed files with 313 additions and 189 deletions
cc
active_animation.hanimation_curve.hbitmap_content_layer_updater.hcc.gypcc_export.hcc_tests.gypcheckerboard_draw_quad.hcontent_layer.hcontent_layer_updater.hcontents_scaling_layer.hdamage_tracker.hdebug_border_draw_quad.hdelay_based_time_source.hdelegated_renderer_layer.hdelegated_renderer_layer_impl.hdirect_renderer.hdraw_quad.hfont_atlas.hframe_rate_controller.hgl_renderer.hheads_up_display_layer_impl.himage_layer.hinput_handler.hio_surface_draw_quad.hio_surface_layer.hio_surface_layer_impl.hkeyframed_animation_curve.hlayer.hlayer_animation_controller.hlayer_impl.hlayer_iterator.cclayer_iterator.hlayer_painter.hlayer_quad.hlayer_sorter.hlayer_tiling_data.hlayer_tree_host.hlayer_tree_host_common.hlayer_tree_host_impl.cclayer_tree_host_impl.hlayer_updater.hmanaged_memory_policy.hmath_util.hocclusion_tracker.ccocclusion_tracker.hprioritized_texture.hprioritized_texture_manager.hpriority_calculator.hproxy.hquad_culler.hquad_sink.hrender_pass.hrender_pass_draw_quad.hrender_pass_sink.hrender_surface.hrender_surface_filters.hrender_surface_impl.hrenderer.hresource_provider.hresource_update.hresource_update_controller.hresource_update_queue.hscheduler.hscheduler_state_machine.hscoped_texture.hscoped_thread_proxy.hscrollbar_animation_controller.hscrollbar_animation_controller_linear_fade.hscrollbar_geometry_fixed_thumb.hscrollbar_geometry_stub.hscrollbar_layer.hscrollbar_layer_impl.hsettings.hshared_quad_state.hsoftware_renderer.hsolid_color_draw_quad.hsolid_color_layer.hsolid_color_layer_impl.hstream_video_draw_quad.hswitches.htexture.htexture_copier.htexture_draw_quad.htexture_layer.htexture_layer_impl.htexture_uploader.hthread.hthread_impl.htile_draw_quad.htiled_layer.htiled_layer_impl.htiling_data.htime_source.htiming_function.htree_synchronizer.hvideo_layer.hvideo_layer_impl.hyuv_video_draw_quad.h
chrome
content
webkit/compositor_bindings

@ -7,6 +7,7 @@
#include "base/basictypes.h" #include "base/basictypes.h"
#include "base/memory/scoped_ptr.h" #include "base/memory/scoped_ptr.h"
#include "cc/cc_export.h"
namespace cc { namespace cc {
@ -15,7 +16,7 @@ class AnimationCurve;
// An ActiveAnimation, contains all the state required to play an AnimationCurve. // An ActiveAnimation, contains all the state required to play an AnimationCurve.
// Specifically, the affected property, the run state (paused, finished, etc.), // Specifically, the affected property, the run state (paused, finished, etc.),
// loop count, last pause time, and the total time spent paused. // loop count, last pause time, and the total time spent paused.
class ActiveAnimation { class CC_EXPORT ActiveAnimation {
public: public:
// Animations begin in one of the 'waiting' states. Animations waiting for the next tick // Animations begin in one of the 'waiting' states. Animations waiting for the next tick
// will start the next time the controller animates. Animations waiting for target // will start the next time the controller animates. Animations waiting for target

@ -6,6 +6,7 @@
#define CCAnimationCurve_h #define CCAnimationCurve_h
#include "base/memory/scoped_ptr.h" #include "base/memory/scoped_ptr.h"
#include "cc/cc_export.h"
#include <public/WebTransformationMatrix.h> #include <public/WebTransformationMatrix.h>
namespace cc { namespace cc {
@ -16,7 +17,7 @@ class TransformOperations;
// An animation curve is a function that returns a value given a time. // An animation curve is a function that returns a value given a time.
// There are currently only two types of curve, float and transform. // There are currently only two types of curve, float and transform.
class AnimationCurve { class CC_EXPORT AnimationCurve {
public: public:
enum Type { Float, Transform }; enum Type { Float, Transform };
@ -30,7 +31,7 @@ public:
const TransformAnimationCurve* toTransformAnimationCurve() const; const TransformAnimationCurve* toTransformAnimationCurve() const;
}; };
class FloatAnimationCurve : public AnimationCurve { class CC_EXPORT FloatAnimationCurve : public AnimationCurve {
public: public:
virtual ~FloatAnimationCurve() { } virtual ~FloatAnimationCurve() { }
@ -40,7 +41,7 @@ public:
virtual Type type() const OVERRIDE; virtual Type type() const OVERRIDE;
}; };
class TransformAnimationCurve : public AnimationCurve { class CC_EXPORT TransformAnimationCurve : public AnimationCurve {
public: public:
virtual ~TransformAnimationCurve() { } virtual ~TransformAnimationCurve() { }

@ -6,6 +6,7 @@
#ifndef BitmapContentLayerUpdater_h #ifndef BitmapContentLayerUpdater_h
#define BitmapContentLayerUpdater_h #define BitmapContentLayerUpdater_h
#include "cc/cc_export.h"
#include "cc/content_layer_updater.h" #include "cc/content_layer_updater.h"
class SkCanvas; class SkCanvas;
@ -17,7 +18,7 @@ class LayerPainter;
// This class rasterizes the contentRect into a skia bitmap canvas. It then updates // This class rasterizes the contentRect into a skia bitmap canvas. It then updates
// textures by copying from the canvas into the texture, using MapSubImage if // textures by copying from the canvas into the texture, using MapSubImage if
// possible. // possible.
class BitmapContentLayerUpdater : public ContentLayerUpdater { class CC_EXPORT BitmapContentLayerUpdater : public ContentLayerUpdater {
public: public:
class Resource : public LayerUpdater::Resource { class Resource : public LayerUpdater::Resource {
public: public:

@ -231,7 +231,7 @@
'targets': [ 'targets': [
{ {
'target_name': 'cc', 'target_name': 'cc',
'type': 'static_library', 'type': '<(component)',
'includes': [ 'includes': [
'cc.gypi', 'cc.gypi',
], ],
@ -245,10 +245,10 @@
'<(webkit_src_dir)/Source/WTF/WTF.gyp/WTF.gyp:wtf', '<(webkit_src_dir)/Source/WTF/WTF.gyp/WTF.gyp:wtf',
'<(webkit_src_dir)/Source/WebCore/WebCore.gyp/WebCore.gyp:webcore_platform_geometry', '<(webkit_src_dir)/Source/WebCore/WebCore.gyp/WebCore.gyp:webcore_platform_geometry',
'<(webkit_src_dir)/Source/WebKit/chromium/WebKit.gyp:webkit_wtf_support', '<(webkit_src_dir)/Source/WebKit/chromium/WebKit.gyp:webkit_wtf_support',
'<(webkit_src_dir)/Source/WebKit/chromium/WebKit.gyp:webkit',
], ],
'defines': [ 'defines': [
# http://crbug.com/154052 'CC_IMPLEMENTATION=1',
'WEBKIT_GLUE_IMPLEMENTATION=1',
], ],
'include_dirs': [ 'include_dirs': [
'<(webkit_src_dir)/Source/Platform/chromium', '<(webkit_src_dir)/Source/Platform/chromium',

29
cc/cc_export.h Normal file

@ -0,0 +1,29 @@
// Copyright (c) 2012 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.
#ifndef CC_CC_EXPORT_H_
#define CC_CC_EXPORT_H_
#if defined(COMPONENT_BUILD)
#if defined(WIN32)
#if defined(CC_IMPLEMENTATION)
#define CC_EXPORT __declspec(dllexport)
#else
#define CC_EXPORT __declspec(dllimport)
#endif // defined(CC_IMPLEMENTATION)
#else // defined(WIN32)
#if defined(CC_IMPLEMENTATION)
#define CC_EXPORT __attribute__((visibility("default")))
#else
#define CC_EXPORT
#endif
#endif
#else // defined(COMPONENT_BUILD)
#define CC_EXPORT
#endif
#endif // CC_CC_EXPORT_H_

@ -91,6 +91,8 @@
'../testing/gmock.gyp:gmock', '../testing/gmock.gyp:gmock',
'../testing/gtest.gyp:gtest', '../testing/gtest.gyp:gtest',
'../third_party/WebKit/Source/WTF/WTF.gyp/WTF.gyp:wtf', '../third_party/WebKit/Source/WTF/WTF.gyp/WTF.gyp:wtf',
'../third_party/WebKit/Source/WebCore/WebCore.gyp/WebCore.gyp:webcore_platform_geometry',
'../ui/ui.gyp:ui',
'cc.gyp:cc', 'cc.gyp:cc',
'cc_test_support', 'cc_test_support',
], ],

@ -6,6 +6,7 @@
#define CCCheckerboardDrawQuad_h #define CCCheckerboardDrawQuad_h
#include "base/memory/scoped_ptr.h" #include "base/memory/scoped_ptr.h"
#include "cc/cc_export.h"
#include "cc/draw_quad.h" #include "cc/draw_quad.h"
#include "third_party/skia/include/core/SkColor.h" #include "third_party/skia/include/core/SkColor.h"
@ -13,7 +14,7 @@ namespace cc {
#pragma pack(push, 4) #pragma pack(push, 4)
class CheckerboardDrawQuad : public DrawQuad { class CC_EXPORT CheckerboardDrawQuad : public DrawQuad {
public: public:
static scoped_ptr<CheckerboardDrawQuad> create(const SharedQuadState*, const gfx::Rect&, SkColor); static scoped_ptr<CheckerboardDrawQuad> create(const SharedQuadState*, const gfx::Rect&, SkColor);

@ -6,6 +6,7 @@
#define ContentLayerChromium_h #define ContentLayerChromium_h
#include "base/basictypes.h" #include "base/basictypes.h"
#include "cc/cc_export.h"
#include "cc/layer_painter.h" #include "cc/layer_painter.h"
#include "cc/tiled_layer.h" #include "cc/tiled_layer.h"
@ -16,7 +17,7 @@ namespace cc {
class ContentLayerClient; class ContentLayerClient;
class LayerUpdater; class LayerUpdater;
class ContentLayerPainter : public LayerPainter { class CC_EXPORT ContentLayerPainter : public LayerPainter {
public: public:
static scoped_ptr<ContentLayerPainter> create(ContentLayerClient*); static scoped_ptr<ContentLayerPainter> create(ContentLayerClient*);
@ -31,7 +32,7 @@ private:
}; };
// A layer that renders its contents into an SkCanvas. // A layer that renders its contents into an SkCanvas.
class ContentLayer : public TiledLayer { class CC_EXPORT ContentLayer : public TiledLayer {
public: public:
static scoped_refptr<ContentLayer> create(ContentLayerClient*); static scoped_refptr<ContentLayer> create(ContentLayerClient*);

@ -5,6 +5,7 @@
#ifndef ContentLayerUpdater_h #ifndef ContentLayerUpdater_h
#define ContentLayerUpdater_h #define ContentLayerUpdater_h
#include "cc/cc_export.h"
#include "cc/layer_updater.h" #include "cc/layer_updater.h"
class SkCanvas; class SkCanvas;
@ -16,7 +17,7 @@ class LayerPainter;
// Base class for BitmapContentLayerUpdater and // Base class for BitmapContentLayerUpdater and
// SkPictureContentLayerUpdater that reduces code duplication between // SkPictureContentLayerUpdater that reduces code duplication between
// their respective paintContents implementations. // their respective paintContents implementations.
class ContentLayerUpdater : public LayerUpdater { class CC_EXPORT ContentLayerUpdater : public LayerUpdater {
protected: protected:
explicit ContentLayerUpdater(scoped_ptr<LayerPainter>); explicit ContentLayerUpdater(scoped_ptr<LayerPainter>);
virtual ~ContentLayerUpdater(); virtual ~ContentLayerUpdater();

@ -5,13 +5,14 @@
#ifndef CC_CONTENTS_SCALING_LAYER_H #ifndef CC_CONTENTS_SCALING_LAYER_H
#define CC_CONTENTS_SCALING_LAYER_H #define CC_CONTENTS_SCALING_LAYER_H
#include "cc/cc_export.h"
#include "cc/layer.h" #include "cc/layer.h"
namespace cc { namespace cc {
// Base class for layers that need contents scale. // Base class for layers that need contents scale.
// The content bounds are determined by bounds and scale of the contents. // The content bounds are determined by bounds and scale of the contents.
class ContentsScalingLayer : public Layer { class CC_EXPORT ContentsScalingLayer : public Layer {
public: public:
virtual gfx::Size contentBounds() const OVERRIDE; virtual gfx::Size contentBounds() const OVERRIDE;
virtual float contentsScaleX() const OVERRIDE; virtual float contentsScaleX() const OVERRIDE;

@ -7,6 +7,7 @@
#include "base/hash_tables.h" #include "base/hash_tables.h"
#include "base/memory/scoped_ptr.h" #include "base/memory/scoped_ptr.h"
#include "cc/cc_export.h"
#include "ui/gfx/rect_f.h" #include "ui/gfx/rect_f.h"
#include <vector> #include <vector>
@ -27,7 +28,7 @@ class RenderSurfaceImpl;
// Computes the region where pixels have actually changed on a RenderSurfaceImpl. This region is used // Computes the region where pixels have actually changed on a RenderSurfaceImpl. This region is used
// to scissor what is actually drawn to the screen to save GPU computation and bandwidth. // to scissor what is actually drawn to the screen to save GPU computation and bandwidth.
class DamageTracker { class CC_EXPORT DamageTracker {
public: public:
static scoped_ptr<DamageTracker> create(); static scoped_ptr<DamageTracker> create();
~DamageTracker(); ~DamageTracker();
@ -61,6 +62,8 @@ private:
gfx::RectF m_currentDamageRect; gfx::RectF m_currentDamageRect;
bool m_forceFullDamageNextUpdate; bool m_forceFullDamageNextUpdate;
DISALLOW_COPY_AND_ASSIGN(DamageTracker);
}; };
} // namespace cc } // namespace cc

@ -6,6 +6,7 @@
#define CCDebugBorderDrawQuad_h #define CCDebugBorderDrawQuad_h
#include "base/memory/scoped_ptr.h" #include "base/memory/scoped_ptr.h"
#include "cc/cc_export.h"
#include "cc/draw_quad.h" #include "cc/draw_quad.h"
#include "third_party/skia/include/core/SkColor.h" #include "third_party/skia/include/core/SkColor.h"
@ -13,7 +14,7 @@ namespace cc {
#pragma pack(push, 4) #pragma pack(push, 4)
class DebugBorderDrawQuad : public DrawQuad { class CC_EXPORT DebugBorderDrawQuad : public DrawQuad {
public: public:
static scoped_ptr<DebugBorderDrawQuad> create(const SharedQuadState*, const gfx::Rect&, SkColor, int width); static scoped_ptr<DebugBorderDrawQuad> create(const SharedQuadState*, const gfx::Rect&, SkColor, int width);

@ -6,13 +6,14 @@
#define CCDelayBasedTimeSource_h #define CCDelayBasedTimeSource_h
#include "base/memory/weak_ptr.h" #include "base/memory/weak_ptr.h"
#include "cc/cc_export.h"
#include "cc/time_source.h" #include "cc/time_source.h"
namespace cc { namespace cc {
// This timer implements a time source that achieves the specified interval // This timer implements a time source that achieves the specified interval
// in face of millisecond-precision delayed callbacks and random queueing delays. // in face of millisecond-precision delayed callbacks and random queueing delays.
class DelayBasedTimeSource : public TimeSource { class CC_EXPORT DelayBasedTimeSource : public TimeSource {
public: public:
static scoped_refptr<DelayBasedTimeSource> create(base::TimeDelta interval, Thread* thread); static scoped_refptr<DelayBasedTimeSource> create(base::TimeDelta interval, Thread* thread);

@ -5,11 +5,12 @@
#ifndef DelegatedRendererLayerChromium_h #ifndef DelegatedRendererLayerChromium_h
#define DelegatedRendererLayerChromium_h #define DelegatedRendererLayerChromium_h
#include "cc/cc_export.h"
#include "cc/layer.h" #include "cc/layer.h"
namespace cc { namespace cc {
class DelegatedRendererLayer : public Layer { class CC_EXPORT DelegatedRendererLayer : public Layer {
public: public:
static scoped_refptr<DelegatedRendererLayer> create(); static scoped_refptr<DelegatedRendererLayer> create();

@ -5,12 +5,13 @@
#ifndef CCDelegatedRendererLayerImpl_h #ifndef CCDelegatedRendererLayerImpl_h
#define CCDelegatedRendererLayerImpl_h #define CCDelegatedRendererLayerImpl_h
#include "cc/cc_export.h"
#include "cc/layer_impl.h" #include "cc/layer_impl.h"
#include "cc/scoped_ptr_vector.h" #include "cc/scoped_ptr_vector.h"
namespace cc { namespace cc {
class DelegatedRendererLayerImpl : public LayerImpl { class CC_EXPORT DelegatedRendererLayerImpl : public LayerImpl {
public: public:
static scoped_ptr<DelegatedRendererLayerImpl> create(int id) { return make_scoped_ptr(new DelegatedRendererLayerImpl(id)); } static scoped_ptr<DelegatedRendererLayerImpl> create(int id) { return make_scoped_ptr(new DelegatedRendererLayerImpl(id)); }
virtual ~DelegatedRendererLayerImpl(); virtual ~DelegatedRendererLayerImpl();

@ -6,6 +6,7 @@
#define CCDirectRenderer_h #define CCDirectRenderer_h
#include "base/basictypes.h" #include "base/basictypes.h"
#include "cc/cc_export.h"
#include "cc/renderer.h" #include "cc/renderer.h"
#include "cc/resource_provider.h" #include "cc/resource_provider.h"
#include "cc/scoped_texture.h" #include "cc/scoped_texture.h"
@ -17,7 +18,7 @@ class ResourceProvider;
// This is the base class for code shared between the GL and software // This is the base class for code shared between the GL and software
// renderer implementations. "Direct" refers to the fact that it does not // renderer implementations. "Direct" refers to the fact that it does not
// delegate rendering to another compositor. // delegate rendering to another compositor.
class DirectRenderer : public Renderer { class CC_EXPORT DirectRenderer : public Renderer {
public: public:
virtual ~DirectRenderer(); virtual ~DirectRenderer();

@ -5,6 +5,7 @@
#ifndef CCDrawQuad_h #ifndef CCDrawQuad_h
#define CCDrawQuad_h #define CCDrawQuad_h
#include "cc/cc_export.h"
#include "cc/shared_quad_state.h" #include "cc/shared_quad_state.h"
namespace cc { namespace cc {
@ -23,7 +24,7 @@ namespace cc {
// materials need different bits of per-quad data to render, classes that derive // materials need different bits of per-quad data to render, classes that derive
// from DrawQuad store additional data in their derived instance. The Material // from DrawQuad store additional data in their derived instance. The Material
// enum is used to "safely" downcast to the derived class. // enum is used to "safely" downcast to the derived class.
class DrawQuad { class CC_EXPORT DrawQuad {
public: public:
enum Material { enum Material {
Invalid, Invalid,

@ -9,6 +9,7 @@
#include "base/basictypes.h" #include "base/basictypes.h"
#include "base/memory/scoped_ptr.h" #include "base/memory/scoped_ptr.h"
#include "cc/cc_export.h"
#include "third_party/skia/include/core/SkBitmap.h" #include "third_party/skia/include/core/SkBitmap.h"
#include "ui/gfx/rect.h" #include "ui/gfx/rect.h"
@ -22,7 +23,7 @@ class Size;
namespace cc { namespace cc {
// This class provides basic ability to draw text onto the heads-up display. // This class provides basic ability to draw text onto the heads-up display.
class FontAtlas { class CC_EXPORT FontAtlas {
public: public:
static scoped_ptr<FontAtlas> create(SkBitmap bitmap, gfx::Rect asciiToRectTable[128], int fontHeight) static scoped_ptr<FontAtlas> create(SkBitmap bitmap, gfx::Rect asciiToRectTable[128], int fontHeight)
{ {

@ -9,13 +9,14 @@
#include "base/memory/scoped_ptr.h" #include "base/memory/scoped_ptr.h"
#include "base/memory/weak_ptr.h" #include "base/memory/weak_ptr.h"
#include "base/time.h" #include "base/time.h"
#include "cc/cc_export.h"
namespace cc { namespace cc {
class Thread; class Thread;
class TimeSource; class TimeSource;
class FrameRateControllerClient { class CC_EXPORT FrameRateControllerClient {
public: public:
// Throttled is true when we have a maximum number of frames pending. // Throttled is true when we have a maximum number of frames pending.
virtual void vsyncTick(bool throttled) = 0; virtual void vsyncTick(bool throttled) = 0;
@ -26,7 +27,7 @@ protected:
class FrameRateControllerTimeSourceAdapter; class FrameRateControllerTimeSourceAdapter;
class FrameRateController { class CC_EXPORT FrameRateController {
public: public:
explicit FrameRateController(scoped_refptr<TimeSource>); explicit FrameRateController(scoped_refptr<TimeSource>);
// Alternate form of FrameRateController with unthrottled frame-rate. // Alternate form of FrameRateController with unthrottled frame-rate.

@ -5,6 +5,7 @@
#ifndef CCRendererGL_h #ifndef CCRendererGL_h
#define CCRendererGL_h #define CCRendererGL_h
#include "cc/cc_export.h"
#include "cc/checkerboard_draw_quad.h" #include "cc/checkerboard_draw_quad.h"
#include "cc/debug_border_draw_quad.h" #include "cc/debug_border_draw_quad.h"
#include "cc/direct_renderer.h" #include "cc/direct_renderer.h"
@ -29,10 +30,10 @@ class GeometryBinding;
class ScopedEnsureFramebufferAllocation; class ScopedEnsureFramebufferAllocation;
// Class that handles drawing of composited render layers using GL. // Class that handles drawing of composited render layers using GL.
class GLRenderer : public DirectRenderer, class CC_EXPORT GLRenderer : public DirectRenderer,
public WebKit::WebGraphicsContext3D::WebGraphicsSwapBuffersCompleteCallbackCHROMIUM, public NON_EXPORTED_BASE(WebKit::WebGraphicsContext3D::WebGraphicsSwapBuffersCompleteCallbackCHROMIUM),
public WebKit::WebGraphicsContext3D::WebGraphicsMemoryAllocationChangedCallbackCHROMIUM , public NON_EXPORTED_BASE(WebKit::WebGraphicsContext3D::WebGraphicsMemoryAllocationChangedCallbackCHROMIUM),
public WebKit::WebGraphicsContext3D::WebGraphicsContextLostCallback { public NON_EXPORTED_BASE(WebKit::WebGraphicsContext3D::WebGraphicsContextLostCallback) {
public: public:
static scoped_ptr<GLRenderer> create(RendererClient*, ResourceProvider*); static scoped_ptr<GLRenderer> create(RendererClient*, ResourceProvider*);

@ -6,6 +6,7 @@
#define CCHeadsUpDisplayLayerImpl_h #define CCHeadsUpDisplayLayerImpl_h
#include "base/memory/scoped_ptr.h" #include "base/memory/scoped_ptr.h"
#include "cc/cc_export.h"
#include "cc/font_atlas.h" #include "cc/font_atlas.h"
#include "cc/layer_impl.h" #include "cc/layer_impl.h"
#include "cc/scoped_texture.h" #include "cc/scoped_texture.h"
@ -18,7 +19,7 @@ class DebugRectHistory;
class FontAtlas; class FontAtlas;
class FrameRateCounter; class FrameRateCounter;
class HeadsUpDisplayLayerImpl : public LayerImpl { class CC_EXPORT HeadsUpDisplayLayerImpl : public LayerImpl {
public: public:
static scoped_ptr<HeadsUpDisplayLayerImpl> create(int id) static scoped_ptr<HeadsUpDisplayLayerImpl> create(int id)
{ {

@ -5,6 +5,7 @@
#ifndef ImageLayerChromium_h #ifndef ImageLayerChromium_h
#define ImageLayerChromium_h #define ImageLayerChromium_h
#include "cc/cc_export.h"
#include "cc/content_layer.h" #include "cc/content_layer.h"
#include "third_party/skia/include/core/SkBitmap.h" #include "third_party/skia/include/core/SkBitmap.h"
@ -13,7 +14,7 @@ namespace cc {
class ImageLayerUpdater; class ImageLayerUpdater;
// A Layer that contains only an Image element. // A Layer that contains only an Image element.
class ImageLayer : public TiledLayer { class CC_EXPORT ImageLayer : public TiledLayer {
public: public:
static scoped_refptr<ImageLayer> create(); static scoped_refptr<ImageLayer> create();

@ -7,6 +7,7 @@
#include "base/basictypes.h" #include "base/basictypes.h"
#include "base/time.h" #include "base/time.h"
#include "cc/cc_export.h"
namespace gfx { namespace gfx {
class Point; class Point;
@ -25,7 +26,7 @@ class IntSize;
// //
// The InputHandler is constructed with a InputHandlerClient, which is the // The InputHandler is constructed with a InputHandlerClient, which is the
// interface by which the handler can manipulate the LayerTree. // interface by which the handler can manipulate the LayerTree.
class InputHandlerClient { class CC_EXPORT InputHandlerClient {
public: public:
enum ScrollStatus { ScrollOnMainThread, ScrollStarted, ScrollIgnored }; enum ScrollStatus { ScrollOnMainThread, ScrollStarted, ScrollIgnored };
enum ScrollInputType { Gesture, Wheel }; enum ScrollInputType { Gesture, Wheel };
@ -71,7 +72,7 @@ private:
DISALLOW_COPY_AND_ASSIGN(InputHandlerClient); DISALLOW_COPY_AND_ASSIGN(InputHandlerClient);
}; };
class InputHandler { class CC_EXPORT InputHandler {
public: public:
virtual ~InputHandler() { } virtual ~InputHandler() { }

@ -6,6 +6,7 @@
#define CCIOSurfaceDrawQuad_h #define CCIOSurfaceDrawQuad_h
#include "base/memory/scoped_ptr.h" #include "base/memory/scoped_ptr.h"
#include "cc/cc_export.h"
#include "cc/draw_quad.h" #include "cc/draw_quad.h"
#include "ui/gfx/size.h" #include "ui/gfx/size.h"
@ -13,7 +14,7 @@ namespace cc {
#pragma pack(push, 4) #pragma pack(push, 4)
class IOSurfaceDrawQuad : public DrawQuad { class CC_EXPORT IOSurfaceDrawQuad : public DrawQuad {
public: public:
enum Orientation { enum Orientation {
Flipped, Flipped,

@ -5,11 +5,12 @@
#ifndef IOSurfaceLayerChromium_h #ifndef IOSurfaceLayerChromium_h
#define IOSurfaceLayerChromium_h #define IOSurfaceLayerChromium_h
#include "cc/cc_export.h"
#include "cc/layer.h" #include "cc/layer.h"
namespace cc { namespace cc {
class IOSurfaceLayer : public Layer { class CC_EXPORT IOSurfaceLayer : public Layer {
public: public:
static scoped_refptr<IOSurfaceLayer> create(); static scoped_refptr<IOSurfaceLayer> create();

@ -5,12 +5,13 @@
#ifndef CCIOSurfaceLayerImpl_h #ifndef CCIOSurfaceLayerImpl_h
#define CCIOSurfaceLayerImpl_h #define CCIOSurfaceLayerImpl_h
#include "cc/cc_export.h"
#include "cc/layer_impl.h" #include "cc/layer_impl.h"
#include "ui/gfx/size.h" #include "ui/gfx/size.h"
namespace cc { namespace cc {
class IOSurfaceLayerImpl : public LayerImpl { class CC_EXPORT IOSurfaceLayerImpl : public LayerImpl {
public: public:
static scoped_ptr<IOSurfaceLayerImpl> create(int id) static scoped_ptr<IOSurfaceLayerImpl> create(int id)
{ {

@ -6,13 +6,14 @@
#define CCKeyframedAnimationCurve_h #define CCKeyframedAnimationCurve_h
#include "cc/animation_curve.h" #include "cc/animation_curve.h"
#include "cc/cc_export.h"
#include "cc/scoped_ptr_vector.h" #include "cc/scoped_ptr_vector.h"
#include "cc/timing_function.h" #include "cc/timing_function.h"
#include <public/WebTransformOperations.h> #include <public/WebTransformOperations.h>
namespace cc { namespace cc {
class Keyframe { class CC_EXPORT Keyframe {
public: public:
double time() const; double time() const;
const TimingFunction* timingFunction() const; const TimingFunction* timingFunction() const;
@ -24,9 +25,11 @@ protected:
private: private:
double m_time; double m_time;
scoped_ptr<TimingFunction> m_timingFunction; scoped_ptr<TimingFunction> m_timingFunction;
DISALLOW_COPY_AND_ASSIGN(Keyframe);
}; };
class FloatKeyframe : public Keyframe { class CC_EXPORT FloatKeyframe : public Keyframe {
public: public:
static scoped_ptr<FloatKeyframe> create(double time, float value, scoped_ptr<TimingFunction>); static scoped_ptr<FloatKeyframe> create(double time, float value, scoped_ptr<TimingFunction>);
virtual ~FloatKeyframe(); virtual ~FloatKeyframe();
@ -41,7 +44,7 @@ private:
float m_value; float m_value;
}; };
class TransformKeyframe : public Keyframe { class CC_EXPORT TransformKeyframe : public Keyframe {
public: public:
static scoped_ptr<TransformKeyframe> create(double time, const WebKit::WebTransformOperations& value, scoped_ptr<TimingFunction>); static scoped_ptr<TransformKeyframe> create(double time, const WebKit::WebTransformOperations& value, scoped_ptr<TimingFunction>);
virtual ~TransformKeyframe(); virtual ~TransformKeyframe();
@ -56,7 +59,7 @@ private:
WebKit::WebTransformOperations m_value; WebKit::WebTransformOperations m_value;
}; };
class KeyframedFloatAnimationCurve : public FloatAnimationCurve { class CC_EXPORT KeyframedFloatAnimationCurve : public FloatAnimationCurve {
public: public:
// It is required that the keyframes be sorted by time. // It is required that the keyframes be sorted by time.
static scoped_ptr<KeyframedFloatAnimationCurve> create(); static scoped_ptr<KeyframedFloatAnimationCurve> create();
@ -78,9 +81,11 @@ private:
// Always sorted in order of increasing time. No two keyframes have the // Always sorted in order of increasing time. No two keyframes have the
// same time. // same time.
ScopedPtrVector<FloatKeyframe> m_keyframes; ScopedPtrVector<FloatKeyframe> m_keyframes;
DISALLOW_COPY_AND_ASSIGN(KeyframedFloatAnimationCurve);
}; };
class KeyframedTransformAnimationCurve : public TransformAnimationCurve { class CC_EXPORT KeyframedTransformAnimationCurve : public TransformAnimationCurve {
public: public:
// It is required that the keyframes be sorted by time. // It is required that the keyframes be sorted by time.
static scoped_ptr<KeyframedTransformAnimationCurve> create(); static scoped_ptr<KeyframedTransformAnimationCurve> create();
@ -102,6 +107,8 @@ private:
// Always sorted in order of increasing time. No two keyframes have the // Always sorted in order of increasing time. No two keyframes have the
// same time. // same time.
ScopedPtrVector<TransformKeyframe> m_keyframes; ScopedPtrVector<TransformKeyframe> m_keyframes;
DISALLOW_COPY_AND_ASSIGN(KeyframedTransformAnimationCurve);
}; };
} // namespace cc } // namespace cc

@ -7,6 +7,7 @@
#include "Region.h" #include "Region.h"
#include "base/memory/ref_counted.h" #include "base/memory/ref_counted.h"
#include "cc/cc_export.h"
#include "cc/layer_animation_controller.h" #include "cc/layer_animation_controller.h"
#include "cc/occlusion_tracker.h" #include "cc/occlusion_tracker.h"
#include "cc/render_surface.h" #include "cc/render_surface.h"
@ -40,7 +41,7 @@ struct RenderingStats;
// Base class for composited layers. Special layer types are derived from // Base class for composited layers. Special layer types are derived from
// this class. // this class.
class Layer : public base::RefCounted<Layer>, public LayerAnimationControllerClient { class CC_EXPORT Layer : public base::RefCounted<Layer>, public LayerAnimationControllerClient {
public: public:
typedef std::vector<scoped_refptr<Layer> > LayerList; typedef std::vector<scoped_refptr<Layer> > LayerList;

@ -5,11 +5,11 @@
#ifndef CCLayerAnimationController_h #ifndef CCLayerAnimationController_h
#define CCLayerAnimationController_h #define CCLayerAnimationController_h
#include "cc/animation_events.h"
#include "base/basictypes.h" #include "base/basictypes.h"
#include "base/hash_tables.h" #include "base/hash_tables.h"
#include "base/memory/scoped_ptr.h" #include "base/memory/scoped_ptr.h"
#include "cc/animation_events.h"
#include "cc/cc_export.h"
#include "cc/scoped_ptr_vector.h" #include "cc/scoped_ptr_vector.h"
namespace WebKit { namespace WebKit {
@ -21,7 +21,7 @@ namespace cc {
class Animation; class Animation;
class KeyframeValueList; class KeyframeValueList;
class LayerAnimationControllerClient { class CC_EXPORT LayerAnimationControllerClient {
public: public:
virtual ~LayerAnimationControllerClient() { } virtual ~LayerAnimationControllerClient() { }
@ -32,7 +32,7 @@ public:
virtual const WebKit::WebTransformationMatrix& transform() const = 0; virtual const WebKit::WebTransformationMatrix& transform() const = 0;
}; };
class LayerAnimationController { class CC_EXPORT LayerAnimationController {
public: public:
static scoped_ptr<LayerAnimationController> create(LayerAnimationControllerClient*); static scoped_ptr<LayerAnimationController> create(LayerAnimationControllerClient*);

@ -5,10 +5,13 @@
#ifndef CCLayerImpl_h #ifndef CCLayerImpl_h
#define CCLayerImpl_h #define CCLayerImpl_h
#include <string>
#include "FloatSize.h" #include "FloatSize.h"
#include "Region.h" #include "Region.h"
#include "base/logging.h" #include "base/logging.h"
#include "base/memory/scoped_ptr.h" #include "base/memory/scoped_ptr.h"
#include "cc/cc_export.h"
#include "cc/input_handler.h" #include "cc/input_handler.h"
#include "cc/layer_animation_controller.h" #include "cc/layer_animation_controller.h"
#include "cc/render_pass.h" #include "cc/render_pass.h"
@ -21,7 +24,6 @@
#include "ui/gfx/rect_f.h" #include "ui/gfx/rect_f.h"
#include <public/WebFilterOperations.h> #include <public/WebFilterOperations.h>
#include <public/WebTransformationMatrix.h> #include <public/WebTransformationMatrix.h>
#include <string>
namespace cc { namespace cc {
@ -35,7 +37,7 @@ class Layer;
struct AppendQuadsData; struct AppendQuadsData;
class LayerImpl : public LayerAnimationControllerClient { class CC_EXPORT LayerImpl : public LayerAnimationControllerClient {
public: public:
static scoped_ptr<LayerImpl> create(int id) static scoped_ptr<LayerImpl> create(int id)
{ {
@ -407,6 +409,8 @@ private:
// Manages scrollbars for this layer // Manages scrollbars for this layer
scoped_ptr<ScrollbarAnimationController> m_scrollbarAnimationController; scoped_ptr<ScrollbarAnimationController> m_scrollbarAnimationController;
DISALLOW_COPY_AND_ASSIGN(LayerImpl);
}; };
void sortLayers(std::vector<LayerImpl*>::iterator first, std::vector<LayerImpl*>::iterator end, LayerSorter*); void sortLayers(std::vector<LayerImpl*>::iterator first, std::vector<LayerImpl*>::iterator end, LayerSorter*);

@ -128,22 +128,22 @@ typedef std::vector<scoped_refptr<Layer> > LayerList;
typedef std::vector<LayerImpl*> LayerImplList; typedef std::vector<LayerImpl*> LayerImplList;
// Declare each of the above functions for Layer and LayerImpl classes so that they are linked. // Declare each of the above functions for Layer and LayerImpl classes so that they are linked.
template void LayerIteratorActions::BackToFront::begin(LayerIterator<Layer, LayerList, RenderSurface, BackToFront> &); template CC_EXPORT void LayerIteratorActions::BackToFront::begin(LayerIterator<Layer, LayerList, RenderSurface, BackToFront> &);
template void LayerIteratorActions::BackToFront::end(LayerIterator<Layer, LayerList, RenderSurface, BackToFront>&); template CC_EXPORT void LayerIteratorActions::BackToFront::end(LayerIterator<Layer, LayerList, RenderSurface, BackToFront>&);
template void LayerIteratorActions::BackToFront::next(LayerIterator<Layer, LayerList, RenderSurface, BackToFront>&); template CC_EXPORT void LayerIteratorActions::BackToFront::next(LayerIterator<Layer, LayerList, RenderSurface, BackToFront>&);
template void LayerIteratorActions::BackToFront::begin(LayerIterator<LayerImpl, LayerImplList, RenderSurfaceImpl, BackToFront>&); template CC_EXPORT void LayerIteratorActions::BackToFront::begin(LayerIterator<LayerImpl, LayerImplList, RenderSurfaceImpl, BackToFront>&);
template void LayerIteratorActions::BackToFront::end(LayerIterator<LayerImpl, LayerImplList, RenderSurfaceImpl, BackToFront>&); template CC_EXPORT void LayerIteratorActions::BackToFront::end(LayerIterator<LayerImpl, LayerImplList, RenderSurfaceImpl, BackToFront>&);
template void LayerIteratorActions::BackToFront::next(LayerIterator<LayerImpl, LayerImplList, RenderSurfaceImpl, BackToFront>&); template CC_EXPORT void LayerIteratorActions::BackToFront::next(LayerIterator<LayerImpl, LayerImplList, RenderSurfaceImpl, BackToFront>&);
template void LayerIteratorActions::FrontToBack::next(LayerIterator<Layer, LayerList, RenderSurface, FrontToBack>&); template CC_EXPORT void LayerIteratorActions::FrontToBack::next(LayerIterator<Layer, LayerList, RenderSurface, FrontToBack>&);
template void LayerIteratorActions::FrontToBack::end(LayerIterator<Layer, LayerList, RenderSurface, FrontToBack>&); template CC_EXPORT void LayerIteratorActions::FrontToBack::end(LayerIterator<Layer, LayerList, RenderSurface, FrontToBack>&);
template void LayerIteratorActions::FrontToBack::begin(LayerIterator<Layer, LayerList, RenderSurface, FrontToBack>&); template CC_EXPORT void LayerIteratorActions::FrontToBack::begin(LayerIterator<Layer, LayerList, RenderSurface, FrontToBack>&);
template void LayerIteratorActions::FrontToBack::goToHighestInSubtree(LayerIterator<Layer, LayerList, RenderSurface, FrontToBack>&); template CC_EXPORT void LayerIteratorActions::FrontToBack::goToHighestInSubtree(LayerIterator<Layer, LayerList, RenderSurface, FrontToBack>&);
template void LayerIteratorActions::FrontToBack::next(LayerIterator<LayerImpl, LayerImplList, RenderSurfaceImpl, FrontToBack>&); template CC_EXPORT void LayerIteratorActions::FrontToBack::next(LayerIterator<LayerImpl, LayerImplList, RenderSurfaceImpl, FrontToBack>&);
template void LayerIteratorActions::FrontToBack::end(LayerIterator<LayerImpl, LayerImplList, RenderSurfaceImpl, FrontToBack>&); template CC_EXPORT void LayerIteratorActions::FrontToBack::end(LayerIterator<LayerImpl, LayerImplList, RenderSurfaceImpl, FrontToBack>&);
template void LayerIteratorActions::FrontToBack::begin(LayerIterator<LayerImpl, LayerImplList, RenderSurfaceImpl, FrontToBack>&); template CC_EXPORT void LayerIteratorActions::FrontToBack::begin(LayerIterator<LayerImpl, LayerImplList, RenderSurfaceImpl, FrontToBack>&);
template void LayerIteratorActions::FrontToBack::goToHighestInSubtree(LayerIterator<LayerImpl, LayerImplList, RenderSurfaceImpl, FrontToBack>&); template CC_EXPORT void LayerIteratorActions::FrontToBack::goToHighestInSubtree(LayerIterator<LayerImpl, LayerImplList, RenderSurfaceImpl, FrontToBack>&);
} // namespace cc } // namespace cc

@ -5,9 +5,9 @@
#ifndef CCLayerIterator_h #ifndef CCLayerIterator_h
#define CCLayerIterator_h #define CCLayerIterator_h
#include "cc/layer_tree_host_common.h"
#include "base/memory/ref_counted.h" #include "base/memory/ref_counted.h"
#include "cc/cc_export.h"
#include "cc/layer_tree_host_common.h"
namespace cc { namespace cc {
@ -168,9 +168,9 @@ private:
}; };
// Orderings for iterating over the RenderSurfaceImpl-Layer tree. // Orderings for iterating over the RenderSurfaceImpl-Layer tree.
struct LayerIteratorActions { struct CC_EXPORT LayerIteratorActions {
// Walks layers sorted by z-order from back to front. // Walks layers sorted by z-order from back to front.
class BackToFront { class CC_EXPORT BackToFront {
public: public:
template <typename LayerType, typename LayerList, typename RenderSurfaceType, typename ActionType> template <typename LayerType, typename LayerList, typename RenderSurfaceType, typename ActionType>
void begin(LayerIterator<LayerType, LayerList, RenderSurfaceType, ActionType>&); void begin(LayerIterator<LayerType, LayerList, RenderSurfaceType, ActionType>&);
@ -186,7 +186,7 @@ struct LayerIteratorActions {
}; };
// Walks layers sorted by z-order from front to back // Walks layers sorted by z-order from front to back
class FrontToBack { class CC_EXPORT FrontToBack {
public: public:
template <typename LayerType, typename LayerList, typename RenderSurfaceType, typename ActionType> template <typename LayerType, typename LayerList, typename RenderSurfaceType, typename ActionType>
void begin(LayerIterator<LayerType, LayerList, RenderSurfaceType, ActionType>&); void begin(LayerIterator<LayerType, LayerList, RenderSurfaceType, ActionType>&);

@ -6,6 +6,8 @@
#ifndef LayerPainterChromium_h #ifndef LayerPainterChromium_h
#define LayerPainterChromium_h #define LayerPainterChromium_h
#include "cc/cc_export.h"
class SkCanvas; class SkCanvas;
namespace gfx { namespace gfx {
@ -15,7 +17,7 @@ class RectF;
namespace cc { namespace cc {
class LayerPainter { class CC_EXPORT LayerPainter {
public: public:
virtual ~LayerPainter() { } virtual ~LayerPainter() { }
virtual void paint(SkCanvas*, const gfx::Rect& contentRect, gfx::RectF& opaque) = 0; virtual void paint(SkCanvas*, const gfx::Rect& contentRect, gfx::RectF& opaque) = 0;

@ -6,6 +6,7 @@
#ifndef CCLayerQuad_h #ifndef CCLayerQuad_h
#define CCLayerQuad_h #define CCLayerQuad_h
#include "cc/cc_export.h"
#include "ui/gfx/point_f.h" #include "ui/gfx/point_f.h"
namespace gfx { namespace gfx {
@ -16,7 +17,7 @@ static const float kAntiAliasingInflateDistance = 0.5f;
namespace cc { namespace cc {
class LayerQuad { class CC_EXPORT LayerQuad {
public: public:
class Edge { class Edge {
public: public:

@ -7,6 +7,7 @@
#include "base/basictypes.h" #include "base/basictypes.h"
#include "base/hash_tables.h" #include "base/hash_tables.h"
#include "cc/cc_export.h"
#include "cc/layer_impl.h" #include "cc/layer_impl.h"
#include "ui/gfx/point3_f.h" #include "ui/gfx/point3_f.h"
#include "ui/gfx/quad_f.h" #include "ui/gfx/quad_f.h"
@ -38,7 +39,7 @@ namespace cc {
struct GraphEdge; struct GraphEdge;
// Holds various useful properties derived from a layer's 3D outline. // Holds various useful properties derived from a layer's 3D outline.
struct LayerShape { struct CC_EXPORT LayerShape {
LayerShape(); LayerShape();
LayerShape(float width, float height, const WebKit::WebTransformationMatrix& drawTransform); LayerShape(float width, float height, const WebKit::WebTransformationMatrix& drawTransform);
~LayerShape(); ~LayerShape();
@ -77,7 +78,7 @@ struct GraphEdge {
class LayerSorter { class CC_EXPORT LayerSorter {
public: public:
LayerSorter(); LayerSorter();
~LayerSorter(); ~LayerSorter();

@ -8,6 +8,7 @@
#include "base/basictypes.h" #include "base/basictypes.h"
#include "base/memory/scoped_ptr.h" #include "base/memory/scoped_ptr.h"
#include "cc/cc_export.h"
#include "cc/hash_pair.h" #include "cc/hash_pair.h"
#include "cc/scoped_ptr_hash_map.h" #include "cc/scoped_ptr_hash_map.h"
#include "cc/tiling_data.h" #include "cc/tiling_data.h"
@ -16,7 +17,7 @@
namespace cc { namespace cc {
class LayerTilingData { class CC_EXPORT LayerTilingData {
public: public:
enum BorderTexelOption { HasBorderTexels, NoBorderTexels }; enum BorderTexelOption { HasBorderTexels, NoBorderTexels };

@ -14,6 +14,7 @@
#include "base/memory/scoped_ptr.h" #include "base/memory/scoped_ptr.h"
#include "base/time.h" #include "base/time.h"
#include "cc/animation_events.h" #include "cc/animation_events.h"
#include "cc/cc_export.h"
#include "cc/graphics_context.h" #include "cc/graphics_context.h"
#include "cc/layer_tree_host_client.h" #include "cc/layer_tree_host_client.h"
#include "cc/layer_tree_host_common.h" #include "cc/layer_tree_host_common.h"
@ -49,7 +50,7 @@ class HeadsUpDisplayLayer;
class Region; class Region;
struct ScrollAndScaleSet; struct ScrollAndScaleSet;
struct LayerTreeSettings { struct CC_EXPORT LayerTreeSettings {
LayerTreeSettings(); LayerTreeSettings();
~LayerTreeSettings(); ~LayerTreeSettings();
@ -90,7 +91,7 @@ struct RendererCapabilities {
int maxTextureSize; int maxTextureSize;
}; };
class LayerTreeHost : public RateLimiterClient { class CC_EXPORT LayerTreeHost : public RateLimiterClient {
public: public:
static scoped_ptr<LayerTreeHost> create(LayerTreeHostClient*, const LayerTreeSettings&); static scoped_ptr<LayerTreeHost> create(LayerTreeHostClient*, const LayerTreeSettings&);
virtual ~LayerTreeHost(); virtual ~LayerTreeHost();

@ -6,6 +6,7 @@
#define CCLayerTreeHostCommon_h #define CCLayerTreeHostCommon_h
#include "base/memory/ref_counted.h" #include "base/memory/ref_counted.h"
#include "cc/cc_export.h"
#include "cc/scoped_ptr_vector.h" #include "cc/scoped_ptr_vector.h"
#include "ui/gfx/rect.h" #include "ui/gfx/rect.h"
#include "IntSize.h" #include "IntSize.h"
@ -17,7 +18,7 @@ class LayerImpl;
class LayerSorter; class LayerSorter;
class Layer; class Layer;
class LayerTreeHostCommon { class CC_EXPORT LayerTreeHostCommon {
public: public:
static gfx::Rect calculateVisibleRect(const gfx::Rect& targetSurfaceRect, const gfx::Rect& layerBoundRect, const WebKit::WebTransformationMatrix&); static gfx::Rect calculateVisibleRect(const gfx::Rect& targetSurfaceRect, const gfx::Rect& layerBoundRect, const WebKit::WebTransformationMatrix&);
@ -49,7 +50,7 @@ public:
}; };
}; };
struct ScrollAndScaleSet { struct CC_EXPORT ScrollAndScaleSet {
ScrollAndScaleSet(); ScrollAndScaleSet();
~ScrollAndScaleSet(); ~ScrollAndScaleSet();

@ -579,8 +579,8 @@ bool LayerTreeHostImpl::CullRenderPassesWithNoQuads::shouldRemoveRenderPass(cons
} }
// Defined for linking tests. // Defined for linking tests.
template void LayerTreeHostImpl::removeRenderPasses<LayerTreeHostImpl::CullRenderPassesWithCachedTextures>(CullRenderPassesWithCachedTextures, FrameData&); template CC_EXPORT void LayerTreeHostImpl::removeRenderPasses<LayerTreeHostImpl::CullRenderPassesWithCachedTextures>(CullRenderPassesWithCachedTextures, FrameData&);
template void LayerTreeHostImpl::removeRenderPasses<LayerTreeHostImpl::CullRenderPassesWithNoQuads>(CullRenderPassesWithNoQuads, FrameData&); template CC_EXPORT void LayerTreeHostImpl::removeRenderPasses<LayerTreeHostImpl::CullRenderPassesWithNoQuads>(CullRenderPassesWithNoQuads, FrameData&);
// static // static
template<typename RenderPassCuller> template<typename RenderPassCuller>

@ -10,6 +10,7 @@
#include "base/memory/scoped_ptr.h" #include "base/memory/scoped_ptr.h"
#include "base/time.h" #include "base/time.h"
#include "cc/animation_events.h" #include "cc/animation_events.h"
#include "cc/cc_export.h"
#include "cc/input_handler.h" #include "cc/input_handler.h"
#include "cc/layer_sorter.h" #include "cc/layer_sorter.h"
#include "cc/render_pass.h" #include "cc/render_pass.h"
@ -100,9 +101,9 @@ private:
}; };
// LayerTreeHostImpl owns the LayerImpl tree as well as associated rendering state // LayerTreeHostImpl owns the LayerImpl tree as well as associated rendering state
class LayerTreeHostImpl : public InputHandlerClient, class CC_EXPORT LayerTreeHostImpl : public InputHandlerClient,
public RendererClient, public RendererClient,
public WebKit::WebCompositorOutputSurfaceClient { public NON_EXPORTED_BASE(WebKit::WebCompositorOutputSurfaceClient) {
typedef std::vector<LayerImpl*> LayerList; typedef std::vector<LayerImpl*> LayerList;
public: public:
@ -119,7 +120,7 @@ public:
virtual void startPageScaleAnimation(const IntSize& targetPosition, bool anchorPoint, float pageScale, base::TimeTicks startTime, base::TimeDelta duration) OVERRIDE; virtual void startPageScaleAnimation(const IntSize& targetPosition, bool anchorPoint, float pageScale, base::TimeTicks startTime, base::TimeDelta duration) OVERRIDE;
virtual void scheduleAnimation() OVERRIDE; virtual void scheduleAnimation() OVERRIDE;
struct FrameData : public RenderPassSink { struct CC_EXPORT FrameData : public RenderPassSink {
FrameData(); FrameData();
~FrameData(); ~FrameData();
@ -233,7 +234,7 @@ public:
DebugRectHistory* debugRectHistory() const { return m_debugRectHistory.get(); } DebugRectHistory* debugRectHistory() const { return m_debugRectHistory.get(); }
ResourceProvider* resourceProvider() const { return m_resourceProvider.get(); } ResourceProvider* resourceProvider() const { return m_resourceProvider.get(); }
class CullRenderPassesWithCachedTextures { class CC_EXPORT CullRenderPassesWithCachedTextures {
public: public:
bool shouldRemoveRenderPass(const RenderPassDrawQuad&, const FrameData&) const; bool shouldRemoveRenderPass(const RenderPassDrawQuad&, const FrameData&) const;
@ -249,7 +250,7 @@ public:
Renderer& m_renderer; Renderer& m_renderer;
}; };
class CullRenderPassesWithNoQuads { class CC_EXPORT CullRenderPassesWithNoQuads {
public: public:
bool shouldRemoveRenderPass(const RenderPassDrawQuad&, const FrameData&) const; bool shouldRemoveRenderPass(const RenderPassDrawQuad&, const FrameData&) const;

@ -6,6 +6,7 @@
#define LayerUpdater_h #define LayerUpdater_h
#include "base/memory/ref_counted.h" #include "base/memory/ref_counted.h"
#include "cc/cc_export.h"
#include "cc/prioritized_texture.h" #include "cc/prioritized_texture.h"
#include "third_party/khronos/GLES2/gl2.h" #include "third_party/khronos/GLES2/gl2.h"
@ -20,10 +21,10 @@ class TextureManager;
struct RenderingStats; struct RenderingStats;
class ResourceUpdateQueue; class ResourceUpdateQueue;
class LayerUpdater : public base::RefCounted<LayerUpdater> { class CC_EXPORT LayerUpdater : public base::RefCounted<LayerUpdater> {
public: public:
// Allows updaters to store per-resource update properties. // Allows updaters to store per-resource update properties.
class Resource { class CC_EXPORT Resource {
public: public:
virtual ~Resource(); virtual ~Resource();

@ -6,10 +6,11 @@
#define managed_memory_policy_h #define managed_memory_policy_h
#include "base/basictypes.h" #include "base/basictypes.h"
#include "cc/cc_export.h"
namespace cc { namespace cc {
struct ManagedMemoryPolicy { struct CC_EXPORT ManagedMemoryPolicy {
ManagedMemoryPolicy(size_t bytesLimitWhenVisible); ManagedMemoryPolicy(size_t bytesLimitWhenVisible);
ManagedMemoryPolicy(size_t bytesLimitWhenVisible, ManagedMemoryPolicy(size_t bytesLimitWhenVisible,
int priorityCutoffWhenVisible, int priorityCutoffWhenVisible,

@ -6,6 +6,7 @@
#define CCMathUtil_h #define CCMathUtil_h
#include "base/logging.h" #include "base/logging.h"
#include "cc/cc_export.h"
#include "ui/gfx/point_f.h" #include "ui/gfx/point_f.h"
#include "ui/gfx/point3_f.h" #include "ui/gfx/point3_f.h"
@ -65,7 +66,7 @@ struct HomogeneousCoordinate {
double w; double w;
}; };
class MathUtil { class CC_EXPORT MathUtil {
public: public:
// Background: WebTransformationMatrix code in WebCore does not do the right thing in // Background: WebTransformationMatrix code in WebCore does not do the right thing in

@ -29,6 +29,11 @@ OcclusionTrackerBase<LayerType, RenderSurfaceType>::OcclusionTrackerBase(gfx::Re
{ {
} }
template<typename LayerType, typename RenderSurfaceType>
OcclusionTrackerBase<LayerType, RenderSurfaceType>::~OcclusionTrackerBase()
{
}
template<typename LayerType, typename RenderSurfaceType> template<typename LayerType, typename RenderSurfaceType>
void OcclusionTrackerBase<LayerType, RenderSurfaceType>::enterLayer(const LayerIteratorPosition<LayerType>& layerIterator) void OcclusionTrackerBase<LayerType, RenderSurfaceType>::enterLayer(const LayerIteratorPosition<LayerType>& layerIterator)
{ {
@ -459,30 +464,8 @@ gfx::Rect OcclusionTrackerBase<LayerType, RenderSurfaceType>::layerClipRectInTar
return layer->drawableContentRect(); return layer->drawableContentRect();
} }
// Declare the possible functions here for the linker. // Instantiate (and export) templates here for the linker.
template OcclusionTrackerBase<Layer, RenderSurface>::OcclusionTrackerBase(gfx::Rect rootTargetRect, bool recordMetricsForFrame); template class CC_EXPORT OcclusionTrackerBase<Layer, RenderSurface>;
template void OcclusionTrackerBase<Layer, RenderSurface>::enterLayer(const LayerIteratorPosition<Layer>&); template class CC_EXPORT OcclusionTrackerBase<LayerImpl, RenderSurfaceImpl>;
template void OcclusionTrackerBase<Layer, RenderSurface>::leaveLayer(const LayerIteratorPosition<Layer>&);
template void OcclusionTrackerBase<Layer, RenderSurface>::enterRenderTarget(const Layer* newTarget);
template void OcclusionTrackerBase<Layer, RenderSurface>::finishedRenderTarget(const Layer* finishedTarget);
template void OcclusionTrackerBase<Layer, RenderSurface>::leaveToRenderTarget(const Layer* newTarget);
template void OcclusionTrackerBase<Layer, RenderSurface>::markOccludedBehindLayer(const Layer*);
template bool OcclusionTrackerBase<Layer, RenderSurface>::occluded(const Layer*, const gfx::Rect& contentRect, const WebKit::WebTransformationMatrix& drawTransform, bool implDrawTransformIsUnknown, const gfx::Rect& clippedRectInTarget, bool* hasOcclusionFromOutsideTargetSurface) const;
template gfx::Rect OcclusionTrackerBase<Layer, RenderSurface>::unoccludedContentRect(const Layer*, const gfx::Rect& contentRect, const WebKit::WebTransformationMatrix& drawTransform, bool implDrawTransformIsUnknown, const gfx::Rect& clippedRectInTarget, bool* hasOcclusionFromOutsideTargetSurface) const;
template gfx::Rect OcclusionTrackerBase<Layer, RenderSurface>::unoccludedContributingSurfaceContentRect(const Layer*, bool forReplica, const gfx::Rect& contentRect, bool* hasOcclusionFromOutsideTargetSurface) const;
template gfx::Rect OcclusionTrackerBase<Layer, RenderSurface>::layerClipRectInTarget(const Layer*) const;
template OcclusionTrackerBase<LayerImpl, RenderSurfaceImpl>::OcclusionTrackerBase(gfx::Rect rootTargetRect, bool recordMetricsForFrame);
template void OcclusionTrackerBase<LayerImpl, RenderSurfaceImpl>::enterLayer(const LayerIteratorPosition<LayerImpl>&);
template void OcclusionTrackerBase<LayerImpl, RenderSurfaceImpl>::leaveLayer(const LayerIteratorPosition<LayerImpl>&);
template void OcclusionTrackerBase<LayerImpl, RenderSurfaceImpl>::enterRenderTarget(const LayerImpl* newTarget);
template void OcclusionTrackerBase<LayerImpl, RenderSurfaceImpl>::finishedRenderTarget(const LayerImpl* finishedTarget);
template void OcclusionTrackerBase<LayerImpl, RenderSurfaceImpl>::leaveToRenderTarget(const LayerImpl* newTarget);
template void OcclusionTrackerBase<LayerImpl, RenderSurfaceImpl>::markOccludedBehindLayer(const LayerImpl*);
template bool OcclusionTrackerBase<LayerImpl, RenderSurfaceImpl>::occluded(const LayerImpl*, const gfx::Rect& contentRect, const WebKit::WebTransformationMatrix& drawTransform, bool implDrawTransformIsUnknown, const gfx::Rect& clippedRectInTarget, bool* hasOcclusionFromOutsideTargetSurface) const;
template gfx::Rect OcclusionTrackerBase<LayerImpl, RenderSurfaceImpl>::unoccludedContentRect(const LayerImpl*, const gfx::Rect& contentRect, const WebKit::WebTransformationMatrix& drawTransform, bool implDrawTransformIsUnknown, const gfx::Rect& clippedRectInTarget, bool* hasOcclusionFromOutsideTargetSurface) const;
template gfx::Rect OcclusionTrackerBase<LayerImpl, RenderSurfaceImpl>::unoccludedContributingSurfaceContentRect(const LayerImpl*, bool forReplica, const gfx::Rect& contentRect, bool* hasOcclusionFromOutsideTargetSurface) const;
template gfx::Rect OcclusionTrackerBase<LayerImpl, RenderSurfaceImpl>::layerClipRectInTarget(const LayerImpl*) const;
} // namespace cc } // namespace cc

@ -7,6 +7,7 @@
#include "Region.h" #include "Region.h"
#include "base/basictypes.h" #include "base/basictypes.h"
#include "cc/cc_export.h"
#include "cc/layer_iterator.h" #include "cc/layer_iterator.h"
#include "ui/gfx/rect.h" #include "ui/gfx/rect.h"
@ -23,9 +24,10 @@ class RenderSurface;
// If the current layer owns a RenderSurfaceImpl, then occlusion on that RenderSurfaceImpl may also be queried via surfaceOccluded() and surfaceUnoccludedContentRect(). // If the current layer owns a RenderSurfaceImpl, then occlusion on that RenderSurfaceImpl may also be queried via surfaceOccluded() and surfaceUnoccludedContentRect().
// Finally, once finished with the layer, occlusion behind the layer should be marked by calling markOccludedBehindLayer(). // Finally, once finished with the layer, occlusion behind the layer should be marked by calling markOccludedBehindLayer().
template<typename LayerType, typename RenderSurfaceType> template<typename LayerType, typename RenderSurfaceType>
class OcclusionTrackerBase { class CC_EXPORT OcclusionTrackerBase {
public: public:
OcclusionTrackerBase(gfx::Rect rootTargetRect, bool recordMetricsForFrame); OcclusionTrackerBase(gfx::Rect rootTargetRect, bool recordMetricsForFrame);
~OcclusionTrackerBase();
// Called at the beginning of each step in the LayerIterator's front-to-back traversal. // Called at the beginning of each step in the LayerIterator's front-to-back traversal.
void enterLayer(const LayerIteratorPosition<LayerType>&); void enterLayer(const LayerIteratorPosition<LayerType>&);

@ -8,6 +8,7 @@
#include "base/basictypes.h" #include "base/basictypes.h"
#include "base/logging.h" #include "base/logging.h"
#include "base/memory/scoped_ptr.h" #include "base/memory/scoped_ptr.h"
#include "cc/cc_export.h"
#include "cc/priority_calculator.h" #include "cc/priority_calculator.h"
#include "cc/resource_provider.h" #include "cc/resource_provider.h"
#include "cc/texture.h" #include "cc/texture.h"
@ -20,7 +21,7 @@ namespace cc {
class PrioritizedTextureManager; class PrioritizedTextureManager;
class PrioritizedTexture { class CC_EXPORT PrioritizedTexture {
public: public:
static scoped_ptr<PrioritizedTexture> create(PrioritizedTextureManager* manager, gfx::Size size, GLenum format) static scoped_ptr<PrioritizedTexture> create(PrioritizedTextureManager* manager, gfx::Size size, GLenum format)
{ {

@ -11,6 +11,7 @@
#include "base/basictypes.h" #include "base/basictypes.h"
#include "base/hash_tables.h" #include "base/hash_tables.h"
#include "base/memory/scoped_ptr.h" #include "base/memory/scoped_ptr.h"
#include "cc/cc_export.h"
#include "cc/prioritized_texture.h" #include "cc/prioritized_texture.h"
#include "cc/priority_calculator.h" #include "cc/priority_calculator.h"
#include "cc/texture.h" #include "cc/texture.h"
@ -32,7 +33,7 @@ namespace cc {
class PriorityCalculator; class PriorityCalculator;
class PrioritizedTextureManager { class CC_EXPORT PrioritizedTextureManager {
public: public:
static scoped_ptr<PrioritizedTextureManager> create(size_t maxMemoryLimitBytes, int maxTextureSize, int pool) static scoped_ptr<PrioritizedTextureManager> create(size_t maxMemoryLimitBytes, int maxTextureSize, int pool)
{ {

@ -5,13 +5,15 @@
#ifndef CCPriorityCalculator_h #ifndef CCPriorityCalculator_h
#define CCPriorityCalculator_h #define CCPriorityCalculator_h
#include "cc/cc_export.h"
namespace gfx { namespace gfx {
class Rect; class Rect;
} }
namespace cc { namespace cc {
class PriorityCalculator { class CC_EXPORT PriorityCalculator {
public: public:
static int uiPriority(bool drawsToRootSurface); static int uiPriority(bool drawsToRootSurface);
static int visiblePriority(bool drawsToRootSurface); static int visiblePriority(bool drawsToRootSurface);

@ -9,6 +9,7 @@
#include "base/logging.h" #include "base/logging.h"
#include "base/time.h" #include "base/time.h"
#include <public/WebCompositorOutputSurface.h> #include <public/WebCompositorOutputSurface.h>
#include "cc/cc_export.h"
namespace gfx { namespace gfx {
class Rect; class Rect;
@ -23,7 +24,7 @@ struct RendererCapabilities;
// Abstract class responsible for proxying commands from the main-thread side of // Abstract class responsible for proxying commands from the main-thread side of
// the compositor over to the compositor implementation. // the compositor over to the compositor implementation.
class Proxy { class CC_EXPORT Proxy {
public: public:
static void setMainThread(Thread*); static void setMainThread(Thread*);
static Thread* mainThread(); static Thread* mainThread();

@ -5,6 +5,7 @@
#ifndef CCQuadCuller_h #ifndef CCQuadCuller_h
#define CCQuadCuller_h #define CCQuadCuller_h
#include "cc/cc_export.h"
#include "cc/quad_sink.h" #include "cc/quad_sink.h"
#include "cc/render_pass.h" #include "cc/render_pass.h"
@ -14,7 +15,7 @@ class RenderSurfaceImpl;
template<typename LayerType, typename SurfaceType> template<typename LayerType, typename SurfaceType>
class OcclusionTrackerBase; class OcclusionTrackerBase;
class QuadCuller : public QuadSink { class CC_EXPORT QuadCuller : public QuadSink {
public: public:
QuadCuller(QuadList&, SharedQuadStateList&, LayerImpl*, const OcclusionTrackerBase<LayerImpl, RenderSurfaceImpl>*, bool showCullingWithDebugBorderQuads, bool forSurface); QuadCuller(QuadList&, SharedQuadStateList&, LayerImpl*, const OcclusionTrackerBase<LayerImpl, RenderSurfaceImpl>*, bool showCullingWithDebugBorderQuads, bool forSurface);
virtual ~QuadCuller() { } virtual ~QuadCuller() { }

@ -6,6 +6,7 @@
#define CCQuadSink_h #define CCQuadSink_h
#include "base/memory/scoped_ptr.h" #include "base/memory/scoped_ptr.h"
#include "cc/cc_export.h"
namespace cc { namespace cc {
@ -14,7 +15,7 @@ class DrawQuad;
struct AppendQuadsData; struct AppendQuadsData;
struct SharedQuadState; struct SharedQuadState;
class QuadSink { class CC_EXPORT QuadSink {
public: public:
virtual ~QuadSink() { } virtual ~QuadSink() { }

@ -6,6 +6,7 @@
#define CCRenderPass_h #define CCRenderPass_h
#include "base/basictypes.h" #include "base/basictypes.h"
#include "cc/cc_export.h"
#include "cc/draw_quad.h" #include "cc/draw_quad.h"
#include "cc/hash_pair.h" #include "cc/hash_pair.h"
#include "cc/scoped_ptr_hash_map.h" #include "cc/scoped_ptr_hash_map.h"
@ -44,7 +45,7 @@ public:
typedef ScopedPtrVector<SharedQuadState> SharedQuadStateList; typedef ScopedPtrVector<SharedQuadState> SharedQuadStateList;
class RenderPass { class CC_EXPORT RenderPass {
public: public:
~RenderPass(); ~RenderPass();

@ -7,13 +7,14 @@
#include "base/basictypes.h" #include "base/basictypes.h"
#include "base/memory/scoped_ptr.h" #include "base/memory/scoped_ptr.h"
#include "cc/cc_export.h"
#include "cc/draw_quad.h" #include "cc/draw_quad.h"
#include "cc/render_pass.h" #include "cc/render_pass.h"
#include "cc/resource_provider.h" #include "cc/resource_provider.h"
namespace cc { namespace cc {
class RenderPassDrawQuad : public DrawQuad { class CC_EXPORT RenderPassDrawQuad : public DrawQuad {
public: public:
static scoped_ptr<RenderPassDrawQuad> create(const SharedQuadState*, const gfx::Rect&, RenderPass::Id renderPassId, bool isReplica, ResourceProvider::ResourceId maskResourceId, const gfx::Rect& contentsChangedSinceLastFrame, float maskTexCoordScaleX, float maskTexCoordScaleY, float maskTexCoordOffsetX, float maskTexCoordOffsetY); static scoped_ptr<RenderPassDrawQuad> create(const SharedQuadState*, const gfx::Rect&, RenderPass::Id renderPassId, bool isReplica, ResourceProvider::ResourceId maskResourceId, const gfx::Rect& contentsChangedSinceLastFrame, float maskTexCoordScaleX, float maskTexCoordScaleY, float maskTexCoordOffsetX, float maskTexCoordOffsetY);

@ -6,12 +6,13 @@
#define CCRenderPassSink_h #define CCRenderPassSink_h
#include "base/memory/scoped_ptr.h" #include "base/memory/scoped_ptr.h"
#include "cc/cc_export.h"
namespace cc { namespace cc {
class RenderPass; class RenderPass;
class RenderPassSink { class CC_EXPORT RenderPassSink {
public: public:
virtual void appendRenderPass(scoped_ptr<RenderPass>) = 0; virtual void appendRenderPass(scoped_ptr<RenderPass>) = 0;
}; };

@ -12,12 +12,13 @@
#include "ui/gfx/rect_f.h" #include "ui/gfx/rect_f.h"
#include <public/WebTransformationMatrix.h> #include <public/WebTransformationMatrix.h>
#include <vector> #include <vector>
#include "cc/cc_export.h"
namespace cc { namespace cc {
class Layer; class Layer;
class RenderSurface { class CC_EXPORT RenderSurface {
public: public:
explicit RenderSurface(Layer*); explicit RenderSurface(Layer*);
~RenderSurface(); ~RenderSurface();

@ -6,6 +6,8 @@
#ifndef CCRenderSurfaceFilters_h #ifndef CCRenderSurfaceFilters_h
#define CCRenderSurfaceFilters_h #define CCRenderSurfaceFilters_h
#include "cc/cc_export.h"
class GrContext; class GrContext;
class SkBitmap; class SkBitmap;
@ -20,7 +22,7 @@ class WebGraphicsContext3D;
namespace cc { namespace cc {
class RenderSurfaceFilters { class CC_EXPORT RenderSurfaceFilters {
public: public:
static SkBitmap apply(const WebKit::WebFilterOperations& filters, unsigned textureId, const gfx::SizeF&, WebKit::WebGraphicsContext3D*, GrContext*); static SkBitmap apply(const WebKit::WebFilterOperations& filters, unsigned textureId, const gfx::SizeF&, WebKit::WebGraphicsContext3D*, GrContext*);
static WebKit::WebFilterOperations optimize(const WebKit::WebFilterOperations& filters); static WebKit::WebFilterOperations optimize(const WebKit::WebFilterOperations& filters);

@ -7,6 +7,7 @@
#include "base/basictypes.h" #include "base/basictypes.h"
#include "base/memory/scoped_ptr.h" #include "base/memory/scoped_ptr.h"
#include "cc/cc_export.h"
#include "cc/render_pass.h" #include "cc/render_pass.h"
#include "cc/shared_quad_state.h" #include "cc/shared_quad_state.h"
#include "ui/gfx/rect.h" #include "ui/gfx/rect.h"
@ -23,7 +24,7 @@ class LayerImpl;
struct AppendQuadsData; struct AppendQuadsData;
class RenderSurfaceImpl { class CC_EXPORT RenderSurfaceImpl {
public: public:
explicit RenderSurfaceImpl(LayerImpl*); explicit RenderSurfaceImpl(LayerImpl*);
virtual ~RenderSurfaceImpl(); virtual ~RenderSurfaceImpl();

@ -6,6 +6,7 @@
#define CCRenderer_h #define CCRenderer_h
#include "base/basictypes.h" #include "base/basictypes.h"
#include "cc/cc_export.h"
#include "cc/layer_tree_host.h" #include "cc/layer_tree_host.h"
#include "cc/managed_memory_policy.h" #include "cc/managed_memory_policy.h"
#include "cc/render_pass.h" #include "cc/render_pass.h"
@ -14,7 +15,7 @@ namespace cc {
class ScopedTexture; class ScopedTexture;
class RendererClient { class CC_EXPORT RendererClient {
public: public:
virtual const gfx::Size& deviceViewportSize() const = 0; virtual const gfx::Size& deviceViewportSize() const = 0;
virtual const LayerTreeSettings& settings() const = 0; virtual const LayerTreeSettings& settings() const = 0;
@ -27,7 +28,7 @@ protected:
virtual ~RendererClient() { } virtual ~RendererClient() { }
}; };
class Renderer { class CC_EXPORT Renderer {
public: public:
// This enum defines the various resource pools for the ResourceProvider // This enum defines the various resource pools for the ResourceProvider
// where textures get allocated. // where textures get allocated.

@ -8,6 +8,7 @@
#include "base/basictypes.h" #include "base/basictypes.h"
#include "base/hash_tables.h" #include "base/hash_tables.h"
#include "base/memory/scoped_ptr.h" #include "base/memory/scoped_ptr.h"
#include "cc/cc_export.h"
#include "cc/graphics_context.h" #include "cc/graphics_context.h"
#include "cc/texture_copier.h" #include "cc/texture_copier.h"
#include "third_party/khronos/GLES2/gl2.h" #include "third_party/khronos/GLES2/gl2.h"
@ -28,13 +29,11 @@ class Vector2d;
namespace cc { namespace cc {
class LayerTextureSubImage;
class TextureCopier;
class TextureUploader; class TextureUploader;
// Thread-safety notes: this class is not thread-safe and can only be called // Thread-safety notes: this class is not thread-safe and can only be called
// from the thread it was created on (in practice, the compositor thread). // from the thread it was created on (in practice, the compositor thread).
class ResourceProvider { class CC_EXPORT ResourceProvider {
public: public:
typedef unsigned ResourceId; typedef unsigned ResourceId;
typedef std::vector<ResourceId> ResourceIdArray; typedef std::vector<ResourceId> ResourceIdArray;
@ -54,7 +53,7 @@ public:
Mailbox mailbox; Mailbox mailbox;
}; };
typedef std::vector<TransferableResource> TransferableResourceArray; typedef std::vector<TransferableResource> TransferableResourceArray;
struct TransferableResourceList { struct CC_EXPORT TransferableResourceList {
TransferableResourceList(); TransferableResourceList();
~TransferableResourceList(); ~TransferableResourceList();
@ -154,7 +153,7 @@ public:
// needed to read and write the resource contents. The user must ensure // needed to read and write the resource contents. The user must ensure
// that they only use GL locks on GL resources, etc, and this is enforced // that they only use GL locks on GL resources, etc, and this is enforced
// by assertions. // by assertions.
class ScopedReadLockGL { class CC_EXPORT ScopedReadLockGL {
public: public:
ScopedReadLockGL(ResourceProvider*, ResourceProvider::ResourceId); ScopedReadLockGL(ResourceProvider*, ResourceProvider::ResourceId);
~ScopedReadLockGL(); ~ScopedReadLockGL();
@ -169,7 +168,7 @@ public:
DISALLOW_COPY_AND_ASSIGN(ScopedReadLockGL); DISALLOW_COPY_AND_ASSIGN(ScopedReadLockGL);
}; };
class ScopedWriteLockGL { class CC_EXPORT ScopedWriteLockGL {
public: public:
ScopedWriteLockGL(ResourceProvider*, ResourceProvider::ResourceId); ScopedWriteLockGL(ResourceProvider*, ResourceProvider::ResourceId);
~ScopedWriteLockGL(); ~ScopedWriteLockGL();
@ -184,7 +183,7 @@ public:
DISALLOW_COPY_AND_ASSIGN(ScopedWriteLockGL); DISALLOW_COPY_AND_ASSIGN(ScopedWriteLockGL);
}; };
class ScopedReadLockSoftware { class CC_EXPORT ScopedReadLockSoftware {
public: public:
ScopedReadLockSoftware(ResourceProvider*, ResourceProvider::ResourceId); ScopedReadLockSoftware(ResourceProvider*, ResourceProvider::ResourceId);
~ScopedReadLockSoftware(); ~ScopedReadLockSoftware();
@ -199,7 +198,7 @@ public:
DISALLOW_COPY_AND_ASSIGN(ScopedReadLockSoftware); DISALLOW_COPY_AND_ASSIGN(ScopedReadLockSoftware);
}; };
class ScopedWriteLockSoftware { class CC_EXPORT ScopedWriteLockSoftware {
public: public:
ScopedWriteLockSoftware(ResourceProvider*, ResourceProvider::ResourceId); ScopedWriteLockSoftware(ResourceProvider*, ResourceProvider::ResourceId);
~ScopedWriteLockSoftware(); ~ScopedWriteLockSoftware();

@ -7,6 +7,7 @@
#include "ui/gfx/rect.h" #include "ui/gfx/rect.h"
#include "ui/gfx/vector2d.h" #include "ui/gfx/vector2d.h"
#include "cc/cc_export.h"
class SkBitmap; class SkBitmap;
class SkPicture; class SkPicture;
@ -15,7 +16,7 @@ namespace cc {
class PrioritizedTexture; class PrioritizedTexture;
struct ResourceUpdate { struct CC_EXPORT ResourceUpdate {
static ResourceUpdate Create(PrioritizedTexture*, static ResourceUpdate Create(PrioritizedTexture*,
const SkBitmap*, const SkBitmap*,
gfx::Rect content_rect, gfx::Rect content_rect,

@ -9,6 +9,7 @@
#include "base/memory/scoped_ptr.h" #include "base/memory/scoped_ptr.h"
#include "base/memory/weak_ptr.h" #include "base/memory/weak_ptr.h"
#include "base/time.h" #include "base/time.h"
#include "cc/cc_export.h"
#include "cc/resource_update_queue.h" #include "cc/resource_update_queue.h"
namespace cc { namespace cc {
@ -24,7 +25,7 @@ protected:
virtual ~ResourceUpdateControllerClient() { } virtual ~ResourceUpdateControllerClient() { }
}; };
class ResourceUpdateController { class CC_EXPORT ResourceUpdateController {
public: public:
static scoped_ptr<ResourceUpdateController> create(ResourceUpdateControllerClient* client, Thread* thread, scoped_ptr<ResourceUpdateQueue> queue, ResourceProvider* resourceProvider) static scoped_ptr<ResourceUpdateController> create(ResourceUpdateControllerClient* client, Thread* thread, scoped_ptr<ResourceUpdateQueue> queue, ResourceProvider* resourceProvider)
{ {

@ -6,13 +6,14 @@
#define CCResourceUpdateQueue_h #define CCResourceUpdateQueue_h
#include "base/basictypes.h" #include "base/basictypes.h"
#include "cc/cc_export.h"
#include "cc/resource_update.h" #include "cc/resource_update.h"
#include "cc/texture_copier.h" #include "cc/texture_copier.h"
#include <deque> #include <deque>
namespace cc { namespace cc {
class ResourceUpdateQueue { class CC_EXPORT ResourceUpdateQueue {
public: public:
ResourceUpdateQueue(); ResourceUpdateQueue();
virtual ~ResourceUpdateQueue(); virtual ~ResourceUpdateQueue();

@ -8,6 +8,7 @@
#include "base/basictypes.h" #include "base/basictypes.h"
#include "base/memory/scoped_ptr.h" #include "base/memory/scoped_ptr.h"
#include "base/time.h" #include "base/time.h"
#include "cc/cc_export.h"
#include "cc/frame_rate_controller.h" #include "cc/frame_rate_controller.h"
#include "cc/scheduler_state_machine.h" #include "cc/scheduler_state_machine.h"
@ -44,7 +45,7 @@ protected:
virtual ~SchedulerClient() { } virtual ~SchedulerClient() { }
}; };
class Scheduler : FrameRateControllerClient { class CC_EXPORT Scheduler : FrameRateControllerClient {
public: public:
static scoped_ptr<Scheduler> create(SchedulerClient* client, scoped_ptr<FrameRateController> frameRateController) static scoped_ptr<Scheduler> create(SchedulerClient* client, scoped_ptr<FrameRateController> frameRateController)
{ {

@ -8,6 +8,7 @@
#include <string> #include <string>
#include "base/basictypes.h" #include "base/basictypes.h"
#include "cc/cc_export.h"
namespace cc { namespace cc {
@ -21,7 +22,7 @@ namespace cc {
// //
// The scheduler seperates "what to do next" from the updating of its internal state to // The scheduler seperates "what to do next" from the updating of its internal state to
// make testing cleaner. // make testing cleaner.
class SchedulerStateMachine { class CC_EXPORT SchedulerStateMachine {
public: public:
SchedulerStateMachine(); SchedulerStateMachine();

@ -8,6 +8,7 @@
#include "base/basictypes.h" #include "base/basictypes.h"
#include "base/logging.h" #include "base/logging.h"
#include "base/memory/scoped_ptr.h" #include "base/memory/scoped_ptr.h"
#include "cc/cc_export.h"
#include "cc/texture.h" #include "cc/texture.h"
#ifndef NDEBUG #ifndef NDEBUG
@ -16,7 +17,7 @@
namespace cc { namespace cc {
class ScopedTexture : protected Texture { class CC_EXPORT ScopedTexture : protected Texture {
public: public:
static scoped_ptr<ScopedTexture> create(ResourceProvider* resourceProvider) { return make_scoped_ptr(new ScopedTexture(resourceProvider)); } static scoped_ptr<ScopedTexture> create(ResourceProvider* resourceProvider) { return make_scoped_ptr(new ScopedTexture(resourceProvider)); }
virtual ~ScopedTexture(); virtual ~ScopedTexture();

@ -7,6 +7,7 @@
#include "base/memory/ref_counted.h" #include "base/memory/ref_counted.h"
#include "base/callback.h" #include "base/callback.h"
#include "cc/cc_export.h"
#include "cc/thread.h" #include "cc/thread.h"
#include "base/location.h" #include "base/location.h"
#include "base/logging.h" #include "base/logging.h"
@ -23,7 +24,7 @@ namespace cc {
// Implementation note: Unlike ScopedRunnableMethodFactory in Chromium, pending tasks are not cancelled by actually // Implementation note: Unlike ScopedRunnableMethodFactory in Chromium, pending tasks are not cancelled by actually
// destroying the proxy. Instead each pending task holds a reference to the proxy to avoid maintaining an explicit // destroying the proxy. Instead each pending task holds a reference to the proxy to avoid maintaining an explicit
// list of outstanding tasks. // list of outstanding tasks.
class ScopedThreadProxy : public base::RefCountedThreadSafe<ScopedThreadProxy> { class CC_EXPORT ScopedThreadProxy : public base::RefCountedThreadSafe<ScopedThreadProxy> {
public: public:
static scoped_refptr<ScopedThreadProxy> create(cc::Thread* targetThread) static scoped_refptr<ScopedThreadProxy> create(cc::Thread* targetThread)
{ {

@ -6,6 +6,7 @@
#define CCScrollbarAnimationController_h #define CCScrollbarAnimationController_h
#include "base/memory/scoped_ptr.h" #include "base/memory/scoped_ptr.h"
#include "cc/cc_export.h"
#include "FloatPoint.h" #include "FloatPoint.h"
#include "IntSize.h" #include "IntSize.h"
@ -20,7 +21,7 @@ class ScrollbarLayerImpl;
// This abstract class represents the compositor-side analogy of ScrollbarAnimator. // This abstract class represents the compositor-side analogy of ScrollbarAnimator.
// Individual platforms should subclass it to provide specialized implementation. // Individual platforms should subclass it to provide specialized implementation.
class ScrollbarAnimationController { class CC_EXPORT ScrollbarAnimationController {
public: public:
static scoped_ptr<ScrollbarAnimationController> create(LayerImpl* scrollLayer); static scoped_ptr<ScrollbarAnimationController> create(LayerImpl* scrollLayer);

@ -5,11 +5,12 @@
#ifndef CCScrollbarAnimationControllerLinearFade_h #ifndef CCScrollbarAnimationControllerLinearFade_h
#define CCScrollbarAnimationControllerLinearFade_h #define CCScrollbarAnimationControllerLinearFade_h
#include "cc/cc_export.h"
#include "cc/scrollbar_animation_controller.h" #include "cc/scrollbar_animation_controller.h"
namespace cc { namespace cc {
class ScrollbarAnimationControllerLinearFade : public ScrollbarAnimationController { class CC_EXPORT ScrollbarAnimationControllerLinearFade : public ScrollbarAnimationController {
public: public:
static scoped_ptr<ScrollbarAnimationControllerLinearFade> create(LayerImpl* scrollLayer, double fadeoutDelay, double fadeoutLength); static scoped_ptr<ScrollbarAnimationControllerLinearFade> create(LayerImpl* scrollLayer, double fadeoutDelay, double fadeoutLength);

@ -6,6 +6,7 @@
#define CCScrollbarGeometryFixedThumb_h #define CCScrollbarGeometryFixedThumb_h
#include "IntSize.h" #include "IntSize.h"
#include "cc/cc_export.h"
#include "cc/scrollbar_geometry_stub.h" #include "cc/scrollbar_geometry_stub.h"
namespace cc { namespace cc {
@ -14,7 +15,7 @@ namespace cc {
// it always returns a fixed thumb length. This allows a page to zoom (changing // it always returns a fixed thumb length. This allows a page to zoom (changing
// the total size of the scrollable area, changing the thumb length) while not // the total size of the scrollable area, changing the thumb length) while not
// requiring the thumb resource to be repainted. // requiring the thumb resource to be repainted.
class ScrollbarGeometryFixedThumb : public ScrollbarGeometryStub { class CC_EXPORT ScrollbarGeometryFixedThumb : public ScrollbarGeometryStub {
public: public:
static scoped_ptr<ScrollbarGeometryFixedThumb> create(scoped_ptr<WebKit::WebScrollbarThemeGeometry>); static scoped_ptr<ScrollbarGeometryFixedThumb> create(scoped_ptr<WebKit::WebScrollbarThemeGeometry>);
virtual ~ScrollbarGeometryFixedThumb(); virtual ~ScrollbarGeometryFixedThumb();

@ -6,6 +6,7 @@
#define CCScrollbarGeometryStub_h #define CCScrollbarGeometryStub_h
#include "base/memory/scoped_ptr.h" #include "base/memory/scoped_ptr.h"
#include "cc/cc_export.h"
#include <public/WebScrollbarThemeGeometry.h> #include <public/WebScrollbarThemeGeometry.h>
namespace cc { namespace cc {
@ -13,7 +14,7 @@ namespace cc {
// This subclass wraps an existing scrollbar geometry class so that // This subclass wraps an existing scrollbar geometry class so that
// another class can derive from it and override specific functions, while // another class can derive from it and override specific functions, while
// passing through the remaining ones. // passing through the remaining ones.
class ScrollbarGeometryStub : public WebKit::WebScrollbarThemeGeometry { class CC_EXPORT ScrollbarGeometryStub : public NON_EXPORTED_BASE(WebKit::WebScrollbarThemeGeometry) {
public: public:
virtual ~ScrollbarGeometryStub(); virtual ~ScrollbarGeometryStub();
@ -44,6 +45,8 @@ protected:
private: private:
scoped_ptr<WebKit::WebScrollbarThemeGeometry> m_geometry; scoped_ptr<WebKit::WebScrollbarThemeGeometry> m_geometry;
DISALLOW_COPY_AND_ASSIGN(ScrollbarGeometryStub);
}; };
} }

@ -7,6 +7,7 @@
#define ScrollbarLayerChromium_h #define ScrollbarLayerChromium_h
#include "cc/caching_bitmap_content_layer_updater.h" #include "cc/caching_bitmap_content_layer_updater.h"
#include "cc/cc_export.h"
#include "cc/contents_scaling_layer.h" #include "cc/contents_scaling_layer.h"
#include <public/WebScrollbar.h> #include <public/WebScrollbar.h>
#include <public/WebScrollbarThemeGeometry.h> #include <public/WebScrollbarThemeGeometry.h>
@ -18,7 +19,7 @@ class ResourceUpdateQueue;
class Scrollbar; class Scrollbar;
class ScrollbarThemeComposite; class ScrollbarThemeComposite;
class ScrollbarLayer : public ContentsScalingLayer { class CC_EXPORT ScrollbarLayer : public ContentsScalingLayer {
public: public:
virtual scoped_ptr<LayerImpl> createLayerImpl() OVERRIDE; virtual scoped_ptr<LayerImpl> createLayerImpl() OVERRIDE;

@ -5,6 +5,7 @@
#ifndef CCScrollbarLayerImpl_h #ifndef CCScrollbarLayerImpl_h
#define CCScrollbarLayerImpl_h #define CCScrollbarLayerImpl_h
#include "cc/cc_export.h"
#include "cc/layer_impl.h" #include "cc/layer_impl.h"
#include "cc/scrollbar_geometry_fixed_thumb.h" #include "cc/scrollbar_geometry_fixed_thumb.h"
#include <public/WebRect.h> #include <public/WebRect.h>
@ -15,7 +16,7 @@ namespace cc {
class ScrollView; class ScrollView;
class ScrollbarLayerImpl : public LayerImpl { class CC_EXPORT ScrollbarLayerImpl : public LayerImpl {
public: public:
static scoped_ptr<ScrollbarLayerImpl> create(int id); static scoped_ptr<ScrollbarLayerImpl> create(int id);
virtual ~ScrollbarLayerImpl(); virtual ~ScrollbarLayerImpl();

@ -6,6 +6,7 @@
#define CCSettings_h #define CCSettings_h
#include "webkit/glue/webkit_glue_export.h" #include "webkit/glue/webkit_glue_export.h"
#include "cc/cc_export.h"
namespace cc { namespace cc {
@ -13,7 +14,7 @@ namespace cc {
// LayerTreeSettings if a ui and renderer compositor might not want the same // LayerTreeSettings if a ui and renderer compositor might not want the same
// setting. // setting.
class Settings { class CC_EXPORT Settings {
public: public:
static bool perTilePaintingEnabled(); static bool perTilePaintingEnabled();
static bool partialSwapEnabled(); static bool partialSwapEnabled();

@ -8,10 +8,11 @@
#include "base/memory/scoped_ptr.h" #include "base/memory/scoped_ptr.h"
#include "ui/gfx/rect.h" #include "ui/gfx/rect.h"
#include <public/WebTransformationMatrix.h> #include <public/WebTransformationMatrix.h>
#include "cc/cc_export.h"
namespace cc { namespace cc {
struct SharedQuadState { struct CC_EXPORT SharedQuadState {
int id; int id;
// Transforms from quad's original content space to its target content space. // Transforms from quad's original content space to its target content space.

@ -6,6 +6,7 @@
#define CCRendererSoftware_h #define CCRendererSoftware_h
#include "base/basictypes.h" #include "base/basictypes.h"
#include "cc/cc_export.h"
#include "cc/direct_renderer.h" #include "cc/direct_renderer.h"
namespace WebKit { namespace WebKit {
@ -22,7 +23,7 @@ class TextureDrawQuad;
class TileDrawQuad; class TileDrawQuad;
class RenderPassDrawQuad; class RenderPassDrawQuad;
class SoftwareRenderer : public DirectRenderer { class CC_EXPORT SoftwareRenderer : public DirectRenderer {
public: public:
static scoped_ptr<SoftwareRenderer> create(RendererClient*, ResourceProvider*, WebKit::WebCompositorSoftwareOutputDevice*); static scoped_ptr<SoftwareRenderer> create(RendererClient*, ResourceProvider*, WebKit::WebCompositorSoftwareOutputDevice*);
virtual ~SoftwareRenderer(); virtual ~SoftwareRenderer();

@ -6,6 +6,7 @@
#define CCSolidColorDrawQuad_h #define CCSolidColorDrawQuad_h
#include "base/memory/scoped_ptr.h" #include "base/memory/scoped_ptr.h"
#include "cc/cc_export.h"
#include "cc/draw_quad.h" #include "cc/draw_quad.h"
#include "third_party/skia/include/core/SkColor.h" #include "third_party/skia/include/core/SkColor.h"
@ -13,7 +14,7 @@ namespace cc {
#pragma pack(push, 4) #pragma pack(push, 4)
class SolidColorDrawQuad : public DrawQuad { class CC_EXPORT SolidColorDrawQuad : public DrawQuad {
public: public:
static scoped_ptr<SolidColorDrawQuad> create(const SharedQuadState*, const gfx::Rect&, SkColor); static scoped_ptr<SolidColorDrawQuad> create(const SharedQuadState*, const gfx::Rect&, SkColor);

@ -6,13 +6,14 @@
#ifndef SolidColorLayerChromium_h #ifndef SolidColorLayerChromium_h
#define SolidColorLayerChromium_h #define SolidColorLayerChromium_h
#include "cc/cc_export.h"
#include "cc/layer.h" #include "cc/layer.h"
namespace cc { namespace cc {
// A Layer that renders a solid color. The color is specified by using // A Layer that renders a solid color. The color is specified by using
// setBackgroundColor() on the base class. // setBackgroundColor() on the base class.
class SolidColorLayer : public Layer { class CC_EXPORT SolidColorLayer : public Layer {
public: public:
static scoped_refptr<SolidColorLayer> create(); static scoped_refptr<SolidColorLayer> create();

@ -5,12 +5,13 @@
#ifndef CCSolidColorLayerImpl_h #ifndef CCSolidColorLayerImpl_h
#define CCSolidColorLayerImpl_h #define CCSolidColorLayerImpl_h
#include "cc/cc_export.h"
#include "cc/layer_impl.h" #include "cc/layer_impl.h"
#include <public/WebTransformationMatrix.h> #include <public/WebTransformationMatrix.h>
namespace cc { namespace cc {
class SolidColorLayerImpl : public LayerImpl { class CC_EXPORT SolidColorLayerImpl : public LayerImpl {
public: public:
static scoped_ptr<SolidColorLayerImpl> create(int id) static scoped_ptr<SolidColorLayerImpl> create(int id)
{ {

@ -6,6 +6,7 @@
#define CCStreamVideoDrawQuad_h #define CCStreamVideoDrawQuad_h
#include "base/memory/scoped_ptr.h" #include "base/memory/scoped_ptr.h"
#include "cc/cc_export.h"
#include "cc/draw_quad.h" #include "cc/draw_quad.h"
#include <public/WebTransformationMatrix.h> #include <public/WebTransformationMatrix.h>
@ -13,7 +14,7 @@ namespace cc {
#pragma pack(push, 4) #pragma pack(push, 4)
class StreamVideoDrawQuad : public DrawQuad { class CC_EXPORT StreamVideoDrawQuad : public DrawQuad {
public: public:
static scoped_ptr<StreamVideoDrawQuad> create(const SharedQuadState*, const gfx::Rect&, unsigned textureId, const WebKit::WebTransformationMatrix&); static scoped_ptr<StreamVideoDrawQuad> create(const SharedQuadState*, const gfx::Rect&, unsigned textureId, const WebKit::WebTransformationMatrix&);

@ -7,7 +7,7 @@
#ifndef CC_SWITCHES_H_ #ifndef CC_SWITCHES_H_
#define CC_SWITCHES_H_ #define CC_SWITCHES_H_
#include "webkit/glue/webkit_glue_export.h" #include "cc/cc_export.h"
// Since cc is used from the render process, anything that goes here also needs // Since cc is used from the render process, anything that goes here also needs
// to be added to render_process_host_impl.cc. // to be added to render_process_host_impl.cc.
@ -15,12 +15,12 @@
namespace cc { namespace cc {
namespace switches { namespace switches {
WEBKIT_GLUE_EXPORT extern const char kBackgroundColorInsteadOfCheckerboard[]; CC_EXPORT extern const char kBackgroundColorInsteadOfCheckerboard[];
WEBKIT_GLUE_EXPORT extern const char kDisableThreadedAnimation[]; CC_EXPORT extern const char kDisableThreadedAnimation[];
WEBKIT_GLUE_EXPORT extern const char kEnablePartialSwap[]; CC_EXPORT extern const char kEnablePartialSwap[];
WEBKIT_GLUE_EXPORT extern const char kEnablePerTilePainting[]; CC_EXPORT extern const char kEnablePerTilePainting[];
WEBKIT_GLUE_EXPORT extern const char kEnablePinchInCompositor[]; CC_EXPORT extern const char kEnablePinchInCompositor[];
WEBKIT_GLUE_EXPORT extern const char kJankInsteadOfCheckerboard[]; CC_EXPORT extern const char kJankInsteadOfCheckerboard[];
} // namespace switches } // namespace switches
} // namespace cc } // namespace cc

@ -5,13 +5,14 @@
#ifndef CCTexture_h #ifndef CCTexture_h
#define CCTexture_h #define CCTexture_h
#include "cc/cc_export.h"
#include "cc/resource_provider.h" #include "cc/resource_provider.h"
#include "third_party/khronos/GLES2/gl2.h" #include "third_party/khronos/GLES2/gl2.h"
#include "ui/gfx/size.h" #include "ui/gfx/size.h"
namespace cc { namespace cc {
class Texture { class CC_EXPORT Texture {
public: public:
Texture() : m_id(0) { } Texture() : m_id(0) { }
Texture(unsigned id, gfx::Size size, GLenum format) Texture(unsigned id, gfx::Size size, GLenum format)

@ -7,6 +7,7 @@
#include "base/basictypes.h" #include "base/basictypes.h"
#include "base/memory/scoped_ptr.h" #include "base/memory/scoped_ptr.h"
#include "cc/cc_export.h"
#include "cc/program_binding.h" #include "cc/program_binding.h"
#include "cc/shader.h" #include "cc/shader.h"
#include "third_party/khronos/GLES2/gl2.h" #include "third_party/khronos/GLES2/gl2.h"
@ -18,7 +19,7 @@ class WebGraphicsContext3D;
namespace cc { namespace cc {
class TextureCopier { class CC_EXPORT TextureCopier {
public: public:
struct Parameters { struct Parameters {
unsigned sourceTexture; unsigned sourceTexture;
@ -34,7 +35,7 @@ public:
virtual ~TextureCopier() { } virtual ~TextureCopier() { }
}; };
class AcceleratedTextureCopier : public TextureCopier { class CC_EXPORT AcceleratedTextureCopier : public TextureCopier {
public: public:
static scoped_ptr<AcceleratedTextureCopier> create(WebKit::WebGraphicsContext3D* context, bool usingBindUniforms) static scoped_ptr<AcceleratedTextureCopier> create(WebKit::WebGraphicsContext3D* context, bool usingBindUniforms)
{ {

@ -6,6 +6,7 @@
#define CCTextureDrawQuad_h #define CCTextureDrawQuad_h
#include "base/memory/scoped_ptr.h" #include "base/memory/scoped_ptr.h"
#include "cc/cc_export.h"
#include "cc/draw_quad.h" #include "cc/draw_quad.h"
#include "ui/gfx/rect_f.h" #include "ui/gfx/rect_f.h"
@ -13,7 +14,7 @@ namespace cc {
#pragma pack(push, 4) #pragma pack(push, 4)
class TextureDrawQuad : public DrawQuad { class CC_EXPORT TextureDrawQuad : public DrawQuad {
public: public:
static scoped_ptr<TextureDrawQuad> create(const SharedQuadState*, const gfx::Rect&, unsigned resourceId, bool premultipliedAlpha, const gfx::RectF& uvRect, bool flipped); static scoped_ptr<TextureDrawQuad> create(const SharedQuadState*, const gfx::Rect&, unsigned resourceId, bool premultipliedAlpha, const gfx::RectF& uvRect, bool flipped);
gfx::RectF uvRect() const { return m_uvRect; } gfx::RectF uvRect() const { return m_uvRect; }

@ -5,6 +5,7 @@
#ifndef TextureLayerChromium_h #ifndef TextureLayerChromium_h
#define TextureLayerChromium_h #define TextureLayerChromium_h
#include "cc/cc_export.h"
#include "cc/layer.h" #include "cc/layer.h"
namespace WebKit { namespace WebKit {
@ -16,7 +17,7 @@ namespace cc {
class TextureLayerClient; class TextureLayerClient;
// A Layer containing a the rendered output of a plugin instance. // A Layer containing a the rendered output of a plugin instance.
class TextureLayer : public Layer { class CC_EXPORT TextureLayer : public Layer {
public: public:
// If this texture layer requires special preparation logic for each frame driven by // If this texture layer requires special preparation logic for each frame driven by
// the compositor, pass in a non-nil client. Pass in a nil client pointer if texture updates // the compositor, pass in a non-nil client. Pass in a nil client pointer if texture updates

@ -5,11 +5,12 @@
#ifndef CCTextureLayerImpl_h #ifndef CCTextureLayerImpl_h
#define CCTextureLayerImpl_h #define CCTextureLayerImpl_h
#include "cc/cc_export.h"
#include "cc/layer_impl.h" #include "cc/layer_impl.h"
namespace cc { namespace cc {
class TextureLayerImpl : public LayerImpl { class CC_EXPORT TextureLayerImpl : public LayerImpl {
public: public:
static scoped_ptr<TextureLayerImpl> create(int id) static scoped_ptr<TextureLayerImpl> create(int id)
{ {

@ -5,10 +5,12 @@
#ifndef CC_TEXTURE_UPLOADER_H_ #ifndef CC_TEXTURE_UPLOADER_H_
#define CC_TEXTURE_UPLOADER_H_ #define CC_TEXTURE_UPLOADER_H_
#include <set>
#include "base/basictypes.h" #include "base/basictypes.h"
#include "base/memory/scoped_ptr.h" #include "base/memory/scoped_ptr.h"
#include "cc/cc_export.h"
#include "cc/scoped_ptr_deque.h" #include "cc/scoped_ptr_deque.h"
#include <set>
#include "third_party/khronos/GLES2/gl2.h" #include "third_party/khronos/GLES2/gl2.h"
namespace WebKit { namespace WebKit {
@ -23,7 +25,7 @@ class Vector2d;
namespace cc { namespace cc {
class TextureUploader { class CC_EXPORT TextureUploader {
public: public:
static scoped_ptr<TextureUploader> create( static scoped_ptr<TextureUploader> create(
WebKit::WebGraphicsContext3D* context, bool useMapTexSubImage) WebKit::WebGraphicsContext3D* context, bool useMapTexSubImage)

@ -7,12 +7,13 @@
#include "base/callback.h" #include "base/callback.h"
#include "base/basictypes.h" #include "base/basictypes.h"
#include "cc/cc_export.h"
namespace cc { namespace cc {
// Thread provides basic infrastructure for messaging with the compositor in a // Thread provides basic infrastructure for messaging with the compositor in a
// platform-neutral way. // platform-neutral way.
class Thread { class CC_EXPORT Thread {
public: public:
virtual ~Thread() { } virtual ~Thread() { }

@ -8,12 +8,13 @@
#include "base/callback.h" #include "base/callback.h"
#include "base/memory/scoped_ptr.h" #include "base/memory/scoped_ptr.h"
#include "base/message_loop_proxy.h" #include "base/message_loop_proxy.h"
#include "cc/cc_export.h"
#include "cc/thread.h" #include "cc/thread.h"
namespace cc { namespace cc {
// Implements cc::Thread in terms of base::MessageLoopProxy. // Implements cc::Thread in terms of base::MessageLoopProxy.
class ThreadImpl : public Thread { class CC_EXPORT ThreadImpl : public Thread {
public: public:
// Creates a ThreadImpl wrapping the current thread. // Creates a ThreadImpl wrapping the current thread.
static scoped_ptr<cc::Thread> createForCurrentThread(); static scoped_ptr<cc::Thread> createForCurrentThread();

@ -6,6 +6,7 @@
#define CCTileDrawQuad_h #define CCTileDrawQuad_h
#include "base/memory/scoped_ptr.h" #include "base/memory/scoped_ptr.h"
#include "cc/cc_export.h"
#include "cc/draw_quad.h" #include "cc/draw_quad.h"
#include "third_party/khronos/GLES2/gl2.h" #include "third_party/khronos/GLES2/gl2.h"
#include "ui/gfx/point.h" #include "ui/gfx/point.h"
@ -15,7 +16,7 @@ namespace cc {
#pragma pack(push, 4) #pragma pack(push, 4)
class TileDrawQuad : public DrawQuad { class CC_EXPORT TileDrawQuad : public DrawQuad {
public: public:
static scoped_ptr<TileDrawQuad> create(const SharedQuadState*, const gfx::Rect& quadRect, const gfx::Rect& opaqueRect, unsigned resourceId, const gfx::Vector2d& textureOffset, const gfx::Size& textureSize, GLint textureFilter, bool swizzleContents, bool leftEdgeAA, bool topEdgeAA, bool rightEdgeAA, bool bottomEdgeAA); static scoped_ptr<TileDrawQuad> create(const SharedQuadState*, const gfx::Rect& quadRect, const gfx::Rect& opaqueRect, unsigned resourceId, const gfx::Vector2d& textureOffset, const gfx::Size& textureSize, GLint textureFilter, bool swizzleContents, bool leftEdgeAA, bool topEdgeAA, bool rightEdgeAA, bool bottomEdgeAA);

@ -5,14 +5,15 @@
#ifndef TiledLayerChromium_h #ifndef TiledLayerChromium_h
#define TiledLayerChromium_h #define TiledLayerChromium_h
#include "cc/cc_export.h"
#include "cc/contents_scaling_layer.h" #include "cc/contents_scaling_layer.h"
#include "cc/layer_updater.h"
#include "cc/layer_tiling_data.h" #include "cc/layer_tiling_data.h"
#include "cc/layer_updater.h"
namespace cc { namespace cc {
class UpdatableTile; class UpdatableTile;
class TiledLayer : public ContentsScalingLayer { class CC_EXPORT TiledLayer : public ContentsScalingLayer {
public: public:
enum TilingOption { AlwaysTile, NeverTile, AutoTile }; enum TilingOption { AlwaysTile, NeverTile, AutoTile };

@ -5,6 +5,7 @@
#ifndef CCTiledLayerImpl_h #ifndef CCTiledLayerImpl_h
#define CCTiledLayerImpl_h #define CCTiledLayerImpl_h
#include "cc/cc_export.h"
#include "cc/layer_impl.h" #include "cc/layer_impl.h"
#include <public/WebTransformationMatrix.h> #include <public/WebTransformationMatrix.h>
@ -13,7 +14,7 @@ namespace cc {
class LayerTilingData; class LayerTilingData;
class DrawableTile; class DrawableTile;
class TiledLayerImpl : public LayerImpl { class CC_EXPORT TiledLayerImpl : public LayerImpl {
public: public:
static scoped_ptr<TiledLayerImpl> create(int id) static scoped_ptr<TiledLayerImpl> create(int id)
{ {

@ -7,6 +7,7 @@
#include "base/basictypes.h" #include "base/basictypes.h"
#include "base/logging.h" #include "base/logging.h"
#include "cc/cc_export.h"
#include "ui/gfx/size.h" #include "ui/gfx/size.h"
namespace gfx { namespace gfx {
@ -16,7 +17,7 @@ class Vector2d;
namespace cc { namespace cc {
class TilingData { class CC_EXPORT TilingData {
public: public:
TilingData(gfx::Size max_texture_size, gfx::Size total_size, bool has_border_texels); TilingData(gfx::Size max_texture_size, gfx::Size total_size, bool has_border_texels);
~TilingData(); ~TilingData();

@ -7,6 +7,7 @@
#include "base/memory/ref_counted.h" #include "base/memory/ref_counted.h"
#include "base/time.h" #include "base/time.h"
#include "cc/cc_export.h"
namespace cc { namespace cc {
@ -25,7 +26,7 @@ protected:
// //
// Be sure to call setActive(false) before releasing your reference to the // Be sure to call setActive(false) before releasing your reference to the
// timer, or it will keep on ticking! // timer, or it will keep on ticking!
class TimeSource : public base::RefCounted<TimeSource> { class CC_EXPORT TimeSource : public base::RefCounted<TimeSource> {
public: public:
virtual void setClient(TimeSourceClient*) = 0; virtual void setClient(TimeSourceClient*) = 0;
virtual void setActive(bool) = 0; virtual void setActive(bool) = 0;

@ -7,11 +7,12 @@
#include "UnitBezier.h" #include "UnitBezier.h"
#include "cc/animation_curve.h" #include "cc/animation_curve.h"
#include "cc/cc_export.h"
namespace cc { namespace cc {
// See http://www.w3.org/TR/css3-transitions/. // See http://www.w3.org/TR/css3-transitions/.
class TimingFunction : public FloatAnimationCurve { class CC_EXPORT TimingFunction : public FloatAnimationCurve {
public: public:
virtual ~TimingFunction(); virtual ~TimingFunction();
@ -22,7 +23,7 @@ protected:
TimingFunction(); TimingFunction();
}; };
class CubicBezierTimingFunction : public TimingFunction { class CC_EXPORT CubicBezierTimingFunction : public TimingFunction {
public: public:
static scoped_ptr<CubicBezierTimingFunction> create(double x1, double y1, double x2, double y2); static scoped_ptr<CubicBezierTimingFunction> create(double x1, double y1, double x2, double y2);
virtual ~CubicBezierTimingFunction(); virtual ~CubicBezierTimingFunction();
@ -37,22 +38,22 @@ protected:
UnitBezier m_curve; UnitBezier m_curve;
}; };
class EaseTimingFunction { class CC_EXPORT EaseTimingFunction {
public: public:
static scoped_ptr<TimingFunction> create(); static scoped_ptr<TimingFunction> create();
}; };
class EaseInTimingFunction { class CC_EXPORT EaseInTimingFunction {
public: public:
static scoped_ptr<TimingFunction> create(); static scoped_ptr<TimingFunction> create();
}; };
class EaseOutTimingFunction { class CC_EXPORT EaseOutTimingFunction {
public: public:
static scoped_ptr<TimingFunction> create(); static scoped_ptr<TimingFunction> create();
}; };
class EaseInOutTimingFunction { class CC_EXPORT EaseInOutTimingFunction {
public: public:
static scoped_ptr<TimingFunction> create(); static scoped_ptr<TimingFunction> create();
}; };

@ -7,6 +7,7 @@
#include "base/basictypes.h" #include "base/basictypes.h"
#include "base/memory/scoped_ptr.h" #include "base/memory/scoped_ptr.h"
#include "cc/cc_export.h"
#include "cc/scoped_ptr_hash_map.h" #include "cc/scoped_ptr_hash_map.h"
namespace cc { namespace cc {
@ -15,7 +16,7 @@ class LayerImpl;
class LayerTreeHostImpl; class LayerTreeHostImpl;
class Layer; class Layer;
class TreeSynchronizer { class CC_EXPORT TreeSynchronizer {
public: public:
// Accepts a Layer tree and returns a reference to a LayerImpl tree that duplicates the structure // Accepts a Layer tree and returns a reference to a LayerImpl tree that duplicates the structure
// of the Layer tree, reusing the LayerImpls in the tree provided by oldLayerImplRoot if possible. // of the Layer tree, reusing the LayerImpls in the tree provided by oldLayerImplRoot if possible.

@ -6,6 +6,7 @@
#define VideoLayerChromium_h #define VideoLayerChromium_h
#include "base/callback.h" #include "base/callback.h"
#include "cc/cc_export.h"
#include "cc/layer.h" #include "cc/layer.h"
namespace WebKit { namespace WebKit {
@ -22,7 +23,7 @@ namespace cc {
class VideoLayerImpl; class VideoLayerImpl;
// A Layer that contains a Video element. // A Layer that contains a Video element.
class VideoLayer : public Layer { class CC_EXPORT VideoLayer : public Layer {
public: public:
typedef base::Callback<media::VideoFrame* (WebKit::WebVideoFrame*)> FrameUnwrapper; typedef base::Callback<media::VideoFrame* (WebKit::WebVideoFrame*)> FrameUnwrapper;

@ -7,6 +7,7 @@
#include "base/callback.h" #include "base/callback.h"
#include "base/synchronization/lock.h" #include "base/synchronization/lock.h"
#include "cc/cc_export.h"
#include "cc/layer_impl.h" #include "cc/layer_impl.h"
#include "media/base/video_frame.h" #include "media/base/video_frame.h"
#include "third_party/khronos/GLES2/gl2.h" #include "third_party/khronos/GLES2/gl2.h"
@ -27,8 +28,8 @@ namespace cc {
class LayerTreeHostImpl; class LayerTreeHostImpl;
class VideoLayerImpl; class VideoLayerImpl;
class VideoLayerImpl : public LayerImpl class CC_EXPORT VideoLayerImpl : public LayerImpl
, public WebKit::WebVideoFrameProvider::Client { , public WebKit::WebVideoFrameProvider::Client {
public: public:
typedef base::Callback<media::VideoFrame* (WebKit::WebVideoFrame*)> FrameUnwrapper; typedef base::Callback<media::VideoFrame* (WebKit::WebVideoFrame*)> FrameUnwrapper;

@ -7,12 +7,13 @@
#include "base/basictypes.h" #include "base/basictypes.h"
#include "base/memory/scoped_ptr.h" #include "base/memory/scoped_ptr.h"
#include "cc/cc_export.h"
#include "cc/draw_quad.h" #include "cc/draw_quad.h"
#include "cc/video_layer_impl.h" #include "cc/video_layer_impl.h"
namespace cc { namespace cc {
class YUVVideoDrawQuad : public DrawQuad { class CC_EXPORT YUVVideoDrawQuad : public DrawQuad {
public: public:
static scoped_ptr<YUVVideoDrawQuad> create(const SharedQuadState*, const gfx::Rect&, const VideoLayerImpl::FramePlane& yPlane, const VideoLayerImpl::FramePlane& uPlane, const VideoLayerImpl::FramePlane& vPlane); static scoped_ptr<YUVVideoDrawQuad> create(const SharedQuadState*, const gfx::Rect&, const VideoLayerImpl::FramePlane& yPlane, const VideoLayerImpl::FramePlane& uPlane, const VideoLayerImpl::FramePlane& vPlane);

@ -33,6 +33,7 @@
'sync_file_system_proto', 'sync_file_system_proto',
'variations_seed_proto', 'variations_seed_proto',
'../build/temp_gyp/googleurl.gyp:googleurl', '../build/temp_gyp/googleurl.gyp:googleurl',
'../cc/cc.gyp:cc',
'../content/content.gyp:content_browser', '../content/content.gyp:content_browser',
'../content/content.gyp:content_common', '../content/content.gyp:content_common',
'../crypto/crypto.gyp:crypto', '../crypto/crypto.gyp:crypto',

@ -915,6 +915,7 @@
}, { # OS!="ios" }, { # OS!="ios"
'dependencies': [ 'dependencies': [
'browser/debugger/devtools_resources.gyp:devtools_resources', 'browser/debugger/devtools_resources.gyp:devtools_resources',
'../cc/cc.gyp:cc',
'../net/net.gyp:http_server', '../net/net.gyp:http_server',
'../ppapi/ppapi_internal.gyp:ppapi_ipc', '../ppapi/ppapi_internal.gyp:ppapi_ipc',
'../printing/printing.gyp:printing', '../printing/printing.gyp:printing',

Some files were not shown because too many files have changed in this diff Show More