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

Unified Diff: cc/software_renderer.cc

Issue 11359172: ui: Remove implicit flooring in skia rect conversion methods. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Make root window transform in tests produce an integer result 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 | « ash/wm/image_grid_unittest.cc ('k') | content/browser/renderer_host/render_widget_host_view_aura.cc » ('j') | 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 565218a6b0e8fa3447620cf33baf796b4ffdd605..5c31d7b12e9c6c024aa48c7b46d582d9149bce56 100644
--- a/cc/software_renderer.cc
+++ b/cc/software_renderer.cc
@@ -15,6 +15,7 @@
#include "third_party/skia/include/core/SkShader.h"
#include "third_party/skia/include/effects/SkLayerRasterizer.h"
#include "ui/gfx/rect_conversions.h"
+#include "ui/gfx/skia_util.h"
#include <public/WebCompositorSoftwareOutputDevice.h>
#include <public/WebImage.h>
#include <public/WebSize.h>
@@ -28,28 +29,18 @@ namespace cc {
namespace {
-SkRect toSkRect(const gfx::RectF& rect)
-{
- return SkRect::MakeXYWH(rect.x(), rect.y(), rect.width(), rect.height());
-}
-
-SkIRect toSkIRect(const gfx::Rect& rect)
-{
- return SkIRect::MakeXYWH(rect.x(), rect.y(), rect.width(), rect.height());
-}
-
void toSkMatrix(SkMatrix* flattened, const WebTransformationMatrix& m)
{
// Convert from 4x4 to 3x3 by dropping the third row and column.
- flattened->set(0, m.m11());
- flattened->set(1, m.m21());
- flattened->set(2, m.m41());
- flattened->set(3, m.m12());
- flattened->set(4, m.m22());
- flattened->set(5, m.m42());
- flattened->set(6, m.m14());
- flattened->set(7, m.m24());
- flattened->set(8, m.m44());
+ flattened->set(0, SkDoubleToScalar(m.m11()));
+ flattened->set(1, SkDoubleToScalar(m.m21()));
+ flattened->set(2, SkDoubleToScalar(m.m41()));
+ flattened->set(3, SkDoubleToScalar(m.m12()));
+ flattened->set(4, SkDoubleToScalar(m.m22()));
+ flattened->set(5, SkDoubleToScalar(m.m42()));
+ flattened->set(6, SkDoubleToScalar(m.m14()));
+ flattened->set(7, SkDoubleToScalar(m.m24()));
+ flattened->set(8, SkDoubleToScalar(m.m44()));
}
bool isScaleAndTranslate(const SkMatrix& matrix)
@@ -138,7 +129,7 @@ bool SoftwareRenderer::bindFramebufferToTexture(DrawingFrame& frame, const Scope
void SoftwareRenderer::setScissorTestRect(const gfx::Rect& scissorRect)
{
- m_skCurrentCanvas->clipRect(toSkRect(scissorRect), SkRegion::kReplace_Op);
+ m_skCurrentCanvas->clipRect(gfx::RectToSkRect(scissorRect), SkRegion::kReplace_Op);
}
void SoftwareRenderer::clearFramebuffer(DrawingFrame& frame)
@@ -219,7 +210,7 @@ void SoftwareRenderer::drawDebugBorderQuad(const DrawingFrame& frame, const Debu
{
// We need to apply the matrix manually to have pixel-sized stroke width.
SkPoint vertices[4];
- toSkRect(quadVertexRect()).toQuad(vertices);
+ gfx::RectFToSkRect(quadVertexRect()).toQuad(vertices);
SkPoint transformedVertices[4];
m_skCurrentCanvas->getTotalMatrix().mapPoints(transformedVertices, vertices, 4);
m_skCurrentCanvas->resetMatrix();
@@ -235,7 +226,7 @@ void SoftwareRenderer::drawSolidColorQuad(const DrawingFrame& frame, const Solid
{
m_skCurrentPaint.setColor(quad->color());
m_skCurrentPaint.setAlpha(quad->opacity() * SkColorGetA(quad->color()));
- m_skCurrentCanvas->drawRect(toSkRect(quadVertexRect()), m_skCurrentPaint);
+ m_skCurrentCanvas->drawRect(gfx::RectFToSkRect(quadVertexRect()), m_skCurrentPaint);
}
void SoftwareRenderer::drawTextureQuad(const DrawingFrame& frame, const TextureDrawQuad* quad)
@@ -249,11 +240,11 @@ 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());
- SkRect skUvRect = toSkRect(uvRect);
+ SkRect skUvRect = gfx::RectFToSkRect(uvRect);
if (quad->flipped())
m_skCurrentCanvas->scale(1, -1);
m_skCurrentCanvas->drawBitmapRectToRect(*bitmap, &skUvRect,
- toSkRect(quadVertexRect()),
+ gfx::RectFToSkRect(quadVertexRect()),
&m_skCurrentPaint);
}
@@ -267,7 +258,7 @@ void SoftwareRenderer::drawTileQuad(const DrawingFrame& frame, const TileDrawQua
quad->quadRect().width(), quad->quadRect().height());
m_skCurrentPaint.setFilterBitmap(true);
m_skCurrentCanvas->drawBitmapRectToRect(*lock.skBitmap(), &uvRect,
- toSkRect(quadVertexRect()),
+ gfx::RectFToSkRect(quadVertexRect()),
&m_skCurrentPaint);
}
@@ -280,7 +271,7 @@ void SoftwareRenderer::drawRenderPassQuad(const DrawingFrame& frame, const Rende
DCHECK(isSoftwareResource(contentTexture->id()));
ResourceProvider::ScopedReadLockSoftware lock(m_resourceProvider, contentTexture->id());
- SkRect destRect = toSkRect(quadVertexRect());
+ SkRect destRect = gfx::RectFToSkRect(quadVertexRect());
const SkBitmap* content = lock.skBitmap();
@@ -333,7 +324,7 @@ void SoftwareRenderer::drawUnsupportedQuad(const DrawingFrame& frame, const Draw
{
m_skCurrentPaint.setColor(SK_ColorMAGENTA);
m_skCurrentPaint.setAlpha(quad->opacity() * 255);
- m_skCurrentCanvas->drawRect(toSkRect(quadVertexRect()), m_skCurrentPaint);
+ m_skCurrentCanvas->drawRect(gfx::RectFToSkRect(quadVertexRect()), m_skCurrentPaint);
}
bool SoftwareRenderer::swapBuffers()
« no previous file with comments | « ash/wm/image_grid_unittest.cc ('k') | content/browser/renderer_host/render_widget_host_view_aura.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698