diff options
author | jamesr@chromium.org <jamesr@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-12-10 22:29:09 +0000 |
---|---|---|
committer | jamesr@chromium.org <jamesr@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-12-10 22:29:09 +0000 |
commit | ab5a94478fe4d9f6e9c32a525eea652b7e743014 (patch) | |
tree | 705e2570e91130301a187d0b5386694c35589e26 /cc/texture_draw_quad.cc | |
parent | 695e0d4c84455f13115b9822e25f7ec3c857a6e1 (diff) | |
download | chromium_src-ab5a94478fe4d9f6e9c32a525eea652b7e743014.zip chromium_src-ab5a94478fe4d9f6e9c32a525eea652b7e743014.tar.gz chromium_src-ab5a94478fe4d9f6e9c32a525eea652b7e743014.tar.bz2 |
Revert 171850
> This patch makes quad-clipping to a scissor window an explicit operation at quad-generation time. If the transform for the quad is a scale and or a transform clipping is a simple bounding box intersection and uv-recomputation.
>
> BUG=161871
>
>
> Review URL: https://chromiumcodereview.appspot.com/11418297
TBR=whunt@chromium.org
BUG=164997
Review URL: https://codereview.chromium.org/11517007
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@172152 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'cc/texture_draw_quad.cc')
-rw-r--r-- | cc/texture_draw_quad.cc | 44 |
1 files changed, 0 insertions, 44 deletions
diff --git a/cc/texture_draw_quad.cc b/cc/texture_draw_quad.cc index 97bf86f..d552c39 100644 --- a/cc/texture_draw_quad.cc +++ b/cc/texture_draw_quad.cc @@ -58,48 +58,4 @@ const TextureDrawQuad* TextureDrawQuad::MaterialCast( return static_cast<const TextureDrawQuad*>(quad); } -bool TextureDrawQuad::PerformClipping() { - // This only occurs if the rect is only scaled and translated (and thus still - // axis aligned). - if (!quadTransform().IsScaleOrTranslation()) - return false; - - // Grab our scale and offset. - float x_scale = quadTransform().matrix().getDouble(0,0); - float y_scale = quadTransform().matrix().getDouble(1,1); - gfx::Vector2dF offset( - quadTransform().matrix().getDouble(0,3), - quadTransform().matrix().getDouble(1,3)); - - // Transform the rect by the scale and offset. - gfx::RectF rectF = rect; - rectF.Scale(x_scale, y_scale); - rectF += offset; - - // Perform clipping and check to see if the result is empty. - gfx::RectF clippedRect = IntersectRects(rectF, clipRect()); - if (clippedRect.IsEmpty()) { - rect = gfx::Rect(); - uv_rect = gfx::RectF(); - return true; - } - - // Create a new uv-rect by clipping the old one to the new bounds. - uv_rect = gfx::RectF( - uv_rect.x()+uv_rect.width ()/rectF.width ()*(clippedRect.x()-rectF.x()), - uv_rect.y()+uv_rect.height()/rectF.height()*(clippedRect.y()-rectF.y()), - uv_rect.width () / rectF.width () * clippedRect.width (), - uv_rect.height() / rectF.height() * clippedRect.height()); - - // Move the clipped rectangle back into its space. - clippedRect -= offset; - clippedRect.Scale(1.0f / x_scale, 1.0f / y_scale); - rect = gfx::Rect( - static_cast<int>(clippedRect.x() + 0.5f), - static_cast<int>(clippedRect.y() + 0.5f), - static_cast<int>(clippedRect.width() + 0.5f), - static_cast<int>(clippedRect.height() + 0.5f)); - return true; -} - } // namespace cc |