| Index: cc/layers/nine_patch_layer_impl.h
|
| diff --git a/cc/layers/nine_patch_layer_impl.h b/cc/layers/nine_patch_layer_impl.h
|
| index 1fe8e7f2a39eef00adcde12f0c688b94f23185d5..3511c3219138dfe4d88a4e5177c0c7ac85fe1f02 100644
|
| --- a/cc/layers/nine_patch_layer_impl.h
|
| +++ b/cc/layers/nine_patch_layer_impl.h
|
| @@ -34,29 +34,52 @@ class CC_EXPORT NinePatchLayerImpl : public UIResourceLayerImpl {
|
| // The bitmap stretches out the bounds of the layer. The following picture
|
| // illustrates the parameters associated with the dimensions.
|
| //
|
| - // Layer space layout Bitmap space layout
|
| + // Layer space layout
|
| //
|
| - // ------------------------ ~~~~~~~~~~ W ~~~~~~~~~~
|
| - // | : | : : |
|
| - // | C | : Y |
|
| - // | : | : : |
|
| - // | ------------ | :~~X~~------------ |
|
| - // | | | | : | : |
|
| - // | | | | : | : |
|
| - // |~~A~~| |~~B~~| H | Q |
|
| - // | | | | : | : |
|
| - // | ------------ | : ~~~~~P~~~~~ |
|
| - // | : | : |
|
| - // | D | : |
|
| - // | : | : |
|
| - // ------------------------ ------------------------
|
| + // --------------------------------
|
| + // | : : |
|
| + // | J C |
|
| + // | : : |
|
| + // | ------------------ |
|
| + // | | : | |
|
| + // |~~~I~~| ------------ | |
|
| + // | | | | | |
|
| + // | | | | | |
|
| + // |~~~A~~|~~| |~~|~B~~~~|
|
| + // | | | | | |
|
| + // | L ------------ | |
|
| + // | | : | |
|
| + // | ---K-------------- |
|
| + // | D |
|
| + // | : |
|
| + // | : |
|
| + // --------------------------------
|
| + //
|
| + // Bitmap space layout
|
| + //
|
| + // ~~~~~~~~~~ W ~~~~~~~~~~
|
| + // : : |
|
| + // : Y |
|
| + // : : |
|
| + // :~~X~~------------ |
|
| + // : | : |
|
| + // : | : |
|
| + // H | Q |
|
| + // : | : |
|
| + // : ~~~~~P~~~~~ |
|
| + // : |
|
| + // : |
|
| + // : |
|
| + // ------------------------
|
| //
|
| // |image_bounds| = (W, H)
|
| // |image_aperture| = (X, Y, P, Q)
|
| // |border| = (A, C, A + B, C + D)
|
| + // |occlusion_rectangle| = (I, J, K, L)
|
| // |fill_center| indicates whether to draw the center quad or not.
|
| void SetLayout(const gfx::Rect& image_aperture,
|
| const gfx::Rect& border,
|
| + const gfx::Rect& layer_occlusion,
|
| bool fill_center,
|
| bool nearest_neighbor);
|
|
|
| @@ -72,10 +95,21 @@ class CC_EXPORT NinePatchLayerImpl : public UIResourceLayerImpl {
|
| NinePatchLayerImpl(LayerTreeImpl* tree_impl, int id);
|
|
|
| private:
|
| + class Patch {
|
| + public:
|
| + Patch(const gfx::Rect& image_rect, const gfx::Rect& layer_rect);
|
| +
|
| + gfx::Rect image_rect;
|
| + gfx::Rect layer_rect;
|
| + };
|
| +
|
| const char* LayerTypeAsString() const override;
|
|
|
| void CheckGeometryLimitations();
|
|
|
| + std::vector<Patch> ComputeQuadsWithOcclusion() const;
|
| + std::vector<Patch> ComputeQuadsWithoutOcclusion() const;
|
| +
|
| // The transparent center region that shows the parent layer's contents in
|
| // image space.
|
| gfx::Rect image_aperture_;
|
| @@ -87,6 +121,8 @@ class CC_EXPORT NinePatchLayerImpl : public UIResourceLayerImpl {
|
|
|
| bool nearest_neighbor_;
|
|
|
| + gfx::Rect layer_occlusion_;
|
| +
|
| DISALLOW_COPY_AND_ASSIGN(NinePatchLayerImpl);
|
| };
|
|
|
|
|