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

Unified Diff: cc/CCRendererSoftware.cpp

Issue 11122003: [cc] Rename all cc/ filenames to Chromium style (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 8 years, 2 months 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 | « cc/CCRendererSoftware.h ('k') | cc/CCRenderingStats.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: cc/CCRendererSoftware.cpp
diff --git a/cc/CCRendererSoftware.cpp b/cc/CCRendererSoftware.cpp
deleted file mode 100644
index e833780d464933ade874621604ac69a05f30be63..0000000000000000000000000000000000000000
--- a/cc/CCRendererSoftware.cpp
+++ /dev/null
@@ -1,279 +0,0 @@
-// Copyright 2012 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "config.h"
-
-#include "CCRendererSoftware.h"
-
-#include "CCDebugBorderDrawQuad.h"
-#include "CCSolidColorDrawQuad.h"
-#include "CCTextureDrawQuad.h"
-#include "CCTileDrawQuad.h"
-#include "SkCanvas.h"
-#include "SkColor.h"
-#include "SkMatrix.h"
-#include "SkPixelRef.h"
-#include <GLES2/gl2.h>
-#include <public/WebImage.h>
-#include <public/WebSize.h>
-#include <public/WebTransformationMatrix.h>
-
-using WebKit::WebCompositorSoftwareOutputDevice;
-using WebKit::WebImage;
-using WebKit::WebSize;
-using WebKit::WebTransformationMatrix;
-
-namespace cc {
-
-namespace {
-
-SkRect toSkRect(const FloatRect& rect)
-{
- return SkRect::MakeXYWH(rect.x(), rect.y(), rect.width(), rect.height());
-}
-
-SkIRect toSkIRect(const IntRect& 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());
-}
-
-} // anonymous namespace
-
-PassOwnPtr<CCRendererSoftware> CCRendererSoftware::create(CCRendererClient* client, CCResourceProvider* resourceProvider, WebCompositorSoftwareOutputDevice* outputDevice)
-{
- return adoptPtr(new CCRendererSoftware(client, resourceProvider, outputDevice));
-}
-
-CCRendererSoftware::CCRendererSoftware(CCRendererClient* client, CCResourceProvider* resourceProvider, WebCompositorSoftwareOutputDevice* outputDevice)
- : CCDirectRenderer(client, resourceProvider)
- , m_visible(true)
- , m_outputDevice(outputDevice)
- , m_skCurrentCanvas(0)
-{
- m_resourceProvider->setDefaultResourceType(CCResourceProvider::Bitmap);
-
- m_capabilities.maxTextureSize = INT_MAX;
- m_capabilities.bestTextureFormat = GraphicsContext3D::RGBA;
- m_capabilities.contextHasCachedFrontBuffer = true;
- m_capabilities.usingSetVisibility = true;
-
- viewportChanged();
-}
-
-CCRendererSoftware::~CCRendererSoftware()
-{
-}
-
-const RendererCapabilities& CCRendererSoftware::capabilities() const
-{
- return m_capabilities;
-}
-
-void CCRendererSoftware::viewportChanged()
-{
- m_outputDevice->didChangeViewportSize(WebSize(viewportSize().width(), viewportSize().height()));
-}
-
-void CCRendererSoftware::beginDrawingFrame(DrawingFrame& frame)
-{
- m_skRootCanvas = adoptPtr(new SkCanvas(m_outputDevice->lock(true)->getSkBitmap()));
-}
-
-void CCRendererSoftware::finishDrawingFrame(DrawingFrame& frame)
-{
- m_currentFramebufferLock.clear();
- m_skCurrentCanvas = 0;
- m_skRootCanvas.clear();
- m_outputDevice->unlock();
-}
-
-bool CCRendererSoftware::flippedFramebuffer() const
-{
- return false;
-}
-
-void CCRendererSoftware::finish()
-{
-}
-
-void CCRendererSoftware::bindFramebufferToOutputSurface(DrawingFrame& frame)
-{
- m_currentFramebufferLock.clear();
- m_skCurrentCanvas = m_skRootCanvas.get();
-}
-
-bool CCRendererSoftware::bindFramebufferToTexture(DrawingFrame& frame, const CCScopedTexture* texture, const IntRect& framebufferRect)
-{
- m_currentFramebufferLock = adoptPtr(new CCResourceProvider::ScopedWriteLockSoftware(m_resourceProvider, texture->id()));
- m_skCurrentCanvas = m_currentFramebufferLock->skCanvas();
- initializeMatrices(frame, framebufferRect, false);
- setDrawViewportSize(framebufferRect.size());
-
- return true;
-}
-
-void CCRendererSoftware::enableScissorTestRect(const IntRect& scissorRect)
-{
- m_skCurrentCanvas->clipRect(toSkRect(scissorRect), SkRegion::kReplace_Op);
-}
-
-void CCRendererSoftware::disableScissorTest()
-{
- IntRect canvasRect(IntPoint(), viewportSize());
- m_skCurrentCanvas->clipRect(toSkRect(canvasRect), SkRegion::kReplace_Op);
-}
-
-void CCRendererSoftware::clearFramebuffer(DrawingFrame& frame)
-{
- m_skCurrentCanvas->clear(SK_ColorGREEN);
-}
-
-void CCRendererSoftware::setDrawViewportSize(const IntSize& viewportSize)
-{
-}
-
-bool CCRendererSoftware::isSoftwareResource(CCResourceProvider::ResourceId id) const
-{
- switch (m_resourceProvider->resourceType(id)) {
- case CCResourceProvider::GLTexture:
- return false;
- case CCResourceProvider::Bitmap:
- return true;
- }
-
- CRASH();
- return false;
-}
-
-void CCRendererSoftware::drawQuad(DrawingFrame& frame, const CCDrawQuad* quad)
-{
- WebTransformationMatrix quadRectMatrix;
- quadRectTransform(&quadRectMatrix, quad->quadTransform(), quad->quadRect());
- WebTransformationMatrix windowMatrix = frame.windowMatrix * frame.projectionMatrix * quadRectMatrix;
- SkMatrix skWindowMatrix;
- toSkMatrix(&skWindowMatrix, windowMatrix);
- m_skCurrentCanvas->setMatrix(skWindowMatrix);
-
- m_skCurrentPaint.reset();
- if (quad->needsBlending())
- m_skCurrentPaint.setAlpha(quad->opacity() * 255);
- else
- m_skCurrentPaint.setXfermodeMode(SkXfermode::kSrc_Mode);
-
- switch (quad->material()) {
- case CCDrawQuad::DebugBorder:
- drawDebugBorderQuad(frame, CCDebugBorderDrawQuad::materialCast(quad));
- break;
- case CCDrawQuad::SolidColor:
- drawSolidColorQuad(frame, CCSolidColorDrawQuad::materialCast(quad));
- break;
- case CCDrawQuad::TextureContent:
- drawTextureQuad(frame, CCTextureDrawQuad::materialCast(quad));
- break;
- case CCDrawQuad::TiledContent:
- drawTileQuad(frame, CCTileDrawQuad::materialCast(quad));
- break;
- default:
- drawUnsupportedQuad(frame, quad);
- break;
- }
-
- m_skCurrentCanvas->resetMatrix();
-}
-
-void CCRendererSoftware::drawDebugBorderQuad(const DrawingFrame& frame, const CCDebugBorderDrawQuad* quad)
-{
- // We need to apply the matrix manually to have pixel-sized stroke width.
- SkPoint vertices[4];
- toSkRect(quadVertexRect()).toQuad(vertices);
- SkPoint transformedVertices[4];
- m_skCurrentCanvas->getTotalMatrix().mapPoints(transformedVertices, vertices, 4);
- m_skCurrentCanvas->resetMatrix();
-
- m_skCurrentPaint.setColor(quad->color());
- m_skCurrentPaint.setAlpha(quad->opacity() * SkColorGetA(quad->color()));
- m_skCurrentPaint.setStyle(SkPaint::kStroke_Style);
- m_skCurrentPaint.setStrokeWidth(quad->width());
- m_skCurrentCanvas->drawPoints(SkCanvas::kPolygon_PointMode, 4, transformedVertices, m_skCurrentPaint);
-}
-
-void CCRendererSoftware::drawSolidColorQuad(const DrawingFrame& frame, const CCSolidColorDrawQuad* quad)
-{
- m_skCurrentPaint.setColor(quad->color());
- m_skCurrentPaint.setAlpha(quad->opacity() * SkColorGetA(quad->color()));
- m_skCurrentCanvas->drawRect(toSkRect(quadVertexRect()), m_skCurrentPaint);
-}
-
-void CCRendererSoftware::drawTextureQuad(const DrawingFrame& frame, const CCTextureDrawQuad* quad)
-{
- if (!isSoftwareResource(quad->resourceId())) {
- drawUnsupportedQuad(frame, quad);
- return;
- }
-
- // FIXME: Add support for non-premultiplied alpha.
- CCResourceProvider::ScopedReadLockSoftware quadResourceLock(m_resourceProvider, quad->resourceId());
- FloatRect uvRect = quad->uvRect();
- uvRect.scale(quad->quadRect().width(), quad->quadRect().height());
- SkIRect skUvRect = toSkIRect(enclosingIntRect(uvRect));
- if (quad->flipped())
- m_skCurrentCanvas->scale(1, -1);
- m_skCurrentCanvas->drawBitmapRect(*quadResourceLock.skBitmap(), &skUvRect, toSkRect(quadVertexRect()), &m_skCurrentPaint);
-}
-
-void CCRendererSoftware::drawTileQuad(const DrawingFrame& frame, const CCTileDrawQuad* quad)
-{
- ASSERT(isSoftwareResource(quad->resourceId()));
- CCResourceProvider::ScopedReadLockSoftware quadResourceLock(m_resourceProvider, quad->resourceId());
-
- SkIRect uvRect = toSkIRect(IntRect(quad->textureOffset(), quad->quadRect().size()));
- m_skCurrentCanvas->drawBitmapRect(*quadResourceLock.skBitmap(), &uvRect, toSkRect(quadVertexRect()), &m_skCurrentPaint);
-}
-
-void CCRendererSoftware::drawUnsupportedQuad(const DrawingFrame& frame, const CCDrawQuad* quad)
-{
- m_skCurrentPaint.setColor(SK_ColorMAGENTA);
- m_skCurrentPaint.setAlpha(quad->opacity() * 255);
- m_skCurrentCanvas->drawRect(toSkRect(quadVertexRect()), m_skCurrentPaint);
-}
-
-bool CCRendererSoftware::swapBuffers()
-{
- if (CCProxy::hasImplThread())
- m_client->onSwapBuffersComplete();
- return true;
-}
-
-void CCRendererSoftware::getFramebufferPixels(void *pixels, const IntRect& rect)
-{
- SkBitmap fullBitmap = m_outputDevice->lock(false)->getSkBitmap();
- SkBitmap subsetBitmap;
- SkIRect invertRect = SkIRect::MakeXYWH(rect.x(), viewportSize().height() - rect.maxY(), rect.width(), rect.height());
- fullBitmap.extractSubset(&subsetBitmap, invertRect);
- subsetBitmap.copyPixelsTo(pixels, rect.width() * rect.height() * 4, rect.width() * 4);
- m_outputDevice->unlock();
-}
-
-void CCRendererSoftware::setVisible(bool visible)
-{
- if (m_visible == visible)
- return;
- m_visible = visible;
-}
-
-}
« no previous file with comments | « cc/CCRendererSoftware.h ('k') | cc/CCRenderingStats.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698