Chromium Code Reviews| Index: core/cross/cairo/layer.h |
| =================================================================== |
| --- core/cross/cairo/layer.h (revision 66807) |
| +++ core/cross/cairo/layer.h (working copy) |
| @@ -29,97 +29,122 @@ |
| * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
| */ |
| -// An alternative class of Transform for 2d Image Rendering Mode. |
| +// A Layer is a rectangular region of the O2D canvas to be filled with a |
| +// particular Pattern, with automatic clipping based on stacking order. |
| #ifndef O3D_CORE_CROSS_CAIRO_LAYER_H_ |
| #define O3D_CORE_CROSS_CAIRO_LAYER_H_ |
| #include <vector> |
| -#include "core/cross/bounding_box.h" |
| -#include "core/cross/param.h" |
| -#include "core/cross/param_cache.h" |
| -#include "core/cross/param_object.h" |
| -#include "core/cross/types.h" |
| -#include "core/cross/cairo/texture_cairo.h" |
| +#include "core/cross/object_base.h" |
| +#include "core/cross/cairo/pattern.h" |
| + |
| namespace o3d { |
| +class IClassManager; |
| + |
| namespace o2d { |
| -class Layer : public ParamObject { |
| - friend class Client; |
| +class Layer : public ObjectBase { |
| public: |
| typedef SmartPointer<Layer> Ref; |
| - // Set the corresponding texture for this Layer instance. |
| - void SetTexture(Texture* texture) { |
| - texture_ = TextureCairo::Ref(down_cast<TextureCairo*>(texture)); |
| + Pattern* pattern() const { |
| + return pattern_; |
| } |
| - TextureCairo* GetTexture() { |
| - return texture_; |
| + void set_pattern(Pattern* pattern) { |
| + pattern_ = Pattern::Ref(pattern); |
| } |
| - float GetAlpha() { |
| + double alpha() const { |
| return alpha_; |
| } |
| - float GetScaleX() { |
| - return scale_x_; |
| + void set_alpha(double alpha) { |
| + alpha_ = alpha; |
| } |
| - float GetScaleY() { |
| - return scale_y_; |
| + double x() const { |
| + return x_; |
| } |
| - int GetTranslateX() { |
| - return translate_x_; |
| + void set_x(double x) { |
| + x_ = x; |
| } |
| - int GetTranslateY() { |
| - return translate_y_; |
| + double y() const { |
| + return y_; |
| } |
| - // Set the transparency of the Layer. |
| - void SetAlpha(float alpha) { alpha_ = alpha; } |
| + void set_y(double y) { |
| + y_ = y; |
| + } |
| - // Translate the given x,y from its origin. |
| - void Translate(float x, float y) { |
| - translate_x_ = x; |
| - translate_y_ = y; |
| + double width() const { |
| + return width_; |
| } |
| - // Scale the image to the given x,y. |
| - void Scale(float x, float y) { |
| - scale_x_ = x; |
| - scale_y_ = y; |
| + void set_width(double width) { |
| + width_ = width; |
| } |
| + double height() const { |
| + return height_; |
| + } |
| + |
| + void set_height(double height) { |
| + height_ = height; |
| + } |
| + |
| + double scale_x() const { |
| + return scale_x_; |
| + } |
| + |
| + void set_scale_x(double scale_x) { |
| + scale_x_ = scale_x; |
| + } |
| + |
| + double scale_y() const { |
| + return scale_y_; |
| + } |
| + |
| + void set_scale_y(double scale_y) { |
| + scale_y_ = scale_y; |
|
zhurunz
2010/11/24 01:11:38
Consider using some macro here for those get/set f
Tristan Schmelcher 2
2010/11/24 20:00:55
I expect several of them to diverge in the future,
|
| + } |
| + |
| private: |
| explicit Layer(ServiceLocator* service_locator); |
| friend class o3d::IClassManager; |
| static ObjectBase::Ref Create(ServiceLocator* service_locator); |
| - // Texture Container. |
| - TextureCairo::Ref texture_; |
| + // The pattern used to paint this Layer. |
| + Pattern::Ref pattern_; |
| - // Transparancy of the scene. |
| - float alpha_; |
| + // Transparancy of this layer. |
| + double alpha_; |
| - // The end-x-size of which the current size needs to scale. |
| - float scale_x_; |
| + // The x coordinate of the top-left corner of this layer. |
| + double x_; |
| - // The end-y-size of which the current size needs to scale. |
| - float scale_y_; |
| + // The y coordinate of the top-left corner of this layer. |
| + double y_; |
| - // Size of x to translate. |
| - float translate_x_; |
| + // The width of this layer. |
| + double width_; |
| - // Size of y to translate. |
| - float translate_y_; |
| + // The height of this layer. |
| + double height_; |
| - O3D_DECL_CLASS(Layer, ParamObject) |
| + // A scaling factor to apply to the pattern's x-axis. |
| + double scale_x_; |
| + |
| + // A scaling factor to apply to the pattern's y-axis. |
| + double scale_y_; |
| + |
| + O3D_DECL_CLASS(Layer, ObjectBase) |
| }; // Layer |
| } // namespace o2d |