Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(3783)

Unified Diff: cc/software_renderer.cc

Issue 11369079: Fixed tile filtering for the software compositor. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 8 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: cc/software_renderer.cc
diff --git a/cc/software_renderer.cc b/cc/software_renderer.cc
index 95920390b88975579eb0b02b6231526e3f707606..8202ef5db0e191211daa1b7bc7aa265204cb3005 100644
--- a/cc/software_renderer.cc
+++ b/cc/software_renderer.cc
@@ -257,10 +257,13 @@ void SoftwareRenderer::drawTextureQuad(const DrawingFrame& frame, const TextureD
ResourceProvider::ScopedReadLockSoftware lock(m_resourceProvider, quad->resourceId());
const SkBitmap* bitmap = lock.skBitmap();
gfx::RectF uvRect = gfx::ScaleRect(quad->uvRect(), bitmap->width(), bitmap->height());
- SkIRect skUvRect = toSkIRect(gfx::ToEnclosingRect(uvRect));
+ SkRect skUvRect = toSkRect(uvRect);
+
if (quad->flipped())
m_skCurrentCanvas->scale(1, -1);
- m_skCurrentCanvas->drawBitmapRect(*bitmap, &skUvRect, toSkRect(quadVertexRect()), &m_skCurrentPaint);
+ m_skCurrentCanvas->drawBitmapRectToRect(*bitmap, &skUvRect,
+ toSkRect(quadVertexRect()),
+ &m_skCurrentPaint);
}
void SoftwareRenderer::drawTileQuad(const DrawingFrame& frame, const TileDrawQuad* quad)
@@ -268,8 +271,14 @@ void SoftwareRenderer::drawTileQuad(const DrawingFrame& frame, const TileDrawQua
DCHECK(isSoftwareResource(quad->resourceId()));
ResourceProvider::ScopedReadLockSoftware lock(m_resourceProvider, quad->resourceId());
- SkIRect uvRect = toSkIRect(gfx::Rect(gfx::PointAtOffsetFromOrigin(quad->textureOffset()), quad->quadRect().size()));
- m_skCurrentCanvas->drawBitmapRect(*lock.skBitmap(), &uvRect, toSkRect(quadVertexRect()), &m_skCurrentPaint);
+ SkRect uvRect = SkRect::MakeXYWH(
+ quad->textureOffset().x(), quad->textureOffset().y(),
+ quad->quadRect().width(), quad->quadRect().height());
+ if (quad->textureFilter() != GL_NEAREST)
+ m_skCurrentPaint.setFilterBitmap(true);
+ m_skCurrentCanvas->drawBitmapRectToRect(*lock.skBitmap(), &uvRect,
+ toSkRect(quadVertexRect()),
+ &m_skCurrentPaint);
}
void SoftwareRenderer::drawRenderPassQuad(const DrawingFrame& frame, const RenderPassDrawQuad* quad)
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698