From 2990ff51b4d9c26f815911d92fd7814bb9e80949 Mon Sep 17 00:00:00 2001 From: "enne@chromium.org" Date: Tue, 20 Nov 2012 04:17:54 +0000 Subject: cc: Make UV coords in TileDrawQuad a full RectF Previously, TileDrawQuad assumed that texels were 1:1 with geometry, so it only needed an offset into the texture to calculate the UVs. For impl-side painting where multiple contents scales might be in play, a given texture rect isn't going to be 1:1 with geometry rects and also will not be necessarily integer aligned. Also, some things (like edge antialiasing) still need to know the texture size so that it can do half-texel offsets, so this new texture rect needs to stay in "texel space" rather than 0-1 "uv space". R=danakj@chromium.org BUG=155209 Review URL: https://chromiumcodereview.appspot.com/11348109 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@168723 0039d316-1c4b-4281-b951-d872f2087c98 --- cc/software_renderer.cc | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) (limited to 'cc/software_renderer.cc') diff --git a/cc/software_renderer.cc b/cc/software_renderer.cc index 37467aa..e22ecec 100644 --- a/cc/software_renderer.cc +++ b/cc/software_renderer.cc @@ -258,9 +258,7 @@ void SoftwareRenderer::drawTileQuad(const DrawingFrame& frame, const TileDrawQua DCHECK(isSoftwareResource(quad->resourceId())); ResourceProvider::ScopedReadLockSoftware lock(m_resourceProvider, quad->resourceId()); - SkRect uvRect = SkRect::MakeXYWH( - quad->textureOffset().x(), quad->textureOffset().y(), - quad->rect.width(), quad->rect.height()); + SkRect uvRect = gfx::RectFToSkRect(quad->texCoordRect()); m_skCurrentPaint.setFilterBitmap(true); m_skCurrentCanvas->drawBitmapRectToRect(*lock.skBitmap(), &uvRect, gfx::RectFToSkRect(quadVertexRect()), -- cgit v1.1