| Index: cc/resources/layer_quad.h
|
| diff --git a/cc/resources/layer_quad.h b/cc/resources/layer_quad.h
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..99ba05462de752be733ea9d8ff6ff54621488084
|
| --- /dev/null
|
| +++ b/cc/resources/layer_quad.h
|
| @@ -0,0 +1,112 @@
|
| +// Copyright 2011 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_RESOURCES_LAYER_QUAD_H_
|
| +#define CC_RESOURCES_LAYER_QUAD_H_
|
| +
|
| +#include "base/basictypes.h"
|
| +#include "ui/gfx/geometry/point_f.h"
|
| +
|
| +namespace gfx {
|
| +class QuadF;
|
| +}
|
| +
|
| +static const float kAntiAliasingInflateDistance = 0.5f;
|
| +
|
| +namespace cc {
|
| +
|
| +class LayerQuad {
|
| + public:
|
| + class Edge {
|
| + public:
|
| + Edge() : x_(0), y_(0), z_(0), degenerate_(false) {}
|
| + Edge(const gfx::PointF& p, const gfx::PointF& q);
|
| +
|
| + float x() const { return x_; }
|
| + float y() const { return y_; }
|
| + float z() const { return z_; }
|
| +
|
| + void set_x(float x) { x_ = x; }
|
| + void set_y(float y) { y_ = y; }
|
| + void set_z(float z) { z_ = z; }
|
| + void set(float x, float y, float z) {
|
| + x_ = x;
|
| + y_ = y;
|
| + z_ = z;
|
| + }
|
| +
|
| + void move_x(float dx) { x_ += dx; }
|
| + void move_y(float dy) { y_ += dy; }
|
| + void move_z(float dz) { z_ += dz; }
|
| + void move(float dx, float dy, float dz) {
|
| + x_ += dx;
|
| + y_ += dy;
|
| + z_ += dz;
|
| + }
|
| +
|
| + void scale_x(float sx) { x_ *= sx; }
|
| + void scale_y(float sy) { y_ *= sy; }
|
| + void scale_z(float sz) { z_ *= sz; }
|
| + void scale(float sx, float sy, float sz) {
|
| + x_ *= sx;
|
| + y_ *= sy;
|
| + z_ *= sz;
|
| + }
|
| + void scale(float s) { scale(s, s, s); }
|
| +
|
| + bool degenerate() const { return degenerate_; }
|
| +
|
| + gfx::PointF Intersect(const Edge& e) const;
|
| +
|
| + private:
|
| + float x_;
|
| + float y_;
|
| + float z_;
|
| + bool degenerate_;
|
| + };
|
| +
|
| + LayerQuad(const Edge& left,
|
| + const Edge& top,
|
| + const Edge& right,
|
| + const Edge& bottom);
|
| + explicit LayerQuad(const gfx::QuadF& quad);
|
| +
|
| + Edge left() const { return left_; }
|
| + Edge top() const { return top_; }
|
| + Edge right() const { return right_; }
|
| + Edge bottom() const { return bottom_; }
|
| +
|
| + void InflateX(float dx) {
|
| + left_.move_z(dx);
|
| + right_.move_z(dx);
|
| + }
|
| + void InflateY(float dy) {
|
| + top_.move_z(dy);
|
| + bottom_.move_z(dy);
|
| + }
|
| + void Inflate(float d) {
|
| + InflateX(d);
|
| + InflateY(d);
|
| + }
|
| + void InflateAntiAliasingDistance() {
|
| + Inflate(kAntiAliasingInflateDistance);
|
| + }
|
| +
|
| + gfx::QuadF ToQuadF() const;
|
| +
|
| + void ToFloatArray(float flattened[12]) const;
|
| +
|
| + private:
|
| + Edge left_;
|
| + Edge top_;
|
| + Edge right_;
|
| + Edge bottom_;
|
| +
|
| + DISALLOW_COPY_AND_ASSIGN(LayerQuad);
|
| +};
|
| +
|
| +} // namespace cc
|
| +
|
| +#endif // CC_RESOURCES_LAYER_QUAD_H_
|
|
|