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

Side by Side Diff: cc/software_renderer.cc

Issue 11363251: Added some instrumentation to 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright 2012 The Chromium Authors. All rights reserved. 1 // Copyright 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "cc/software_renderer.h" 5 #include "cc/software_renderer.h"
6 6
7 #include "base/debug/trace_event.h"
7 #include "cc/debug_border_draw_quad.h" 8 #include "cc/debug_border_draw_quad.h"
8 #include "cc/render_pass_draw_quad.h" 9 #include "cc/render_pass_draw_quad.h"
9 #include "cc/solid_color_draw_quad.h" 10 #include "cc/solid_color_draw_quad.h"
10 #include "cc/texture_draw_quad.h" 11 #include "cc/texture_draw_quad.h"
11 #include "cc/tile_draw_quad.h" 12 #include "cc/tile_draw_quad.h"
12 #include "third_party/skia/include/core/SkCanvas.h" 13 #include "third_party/skia/include/core/SkCanvas.h"
13 #include "third_party/skia/include/core/SkColor.h" 14 #include "third_party/skia/include/core/SkColor.h"
14 #include "third_party/skia/include/core/SkMatrix.h" 15 #include "third_party/skia/include/core/SkMatrix.h"
15 #include "third_party/skia/include/core/SkShader.h" 16 #include "third_party/skia/include/core/SkShader.h"
16 #include "third_party/skia/include/effects/SkLayerRasterizer.h" 17 #include "third_party/skia/include/effects/SkLayerRasterizer.h"
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after
84 return m_capabilities; 85 return m_capabilities;
85 } 86 }
86 87
87 void SoftwareRenderer::viewportChanged() 88 void SoftwareRenderer::viewportChanged()
88 { 89 {
89 m_outputDevice->didChangeViewportSize(WebSize(viewportSize().width(), viewpo rtSize().height())); 90 m_outputDevice->didChangeViewportSize(WebSize(viewportSize().width(), viewpo rtSize().height()));
90 } 91 }
91 92
92 void SoftwareRenderer::beginDrawingFrame(DrawingFrame& frame) 93 void SoftwareRenderer::beginDrawingFrame(DrawingFrame& frame)
93 { 94 {
95 TRACE_EVENT0("cc", "SoftwareRenderer::beginDrawingFrame");
94 m_skRootCanvas = make_scoped_ptr(new SkCanvas(m_outputDevice->lock(true)->ge tSkBitmap())); 96 m_skRootCanvas = make_scoped_ptr(new SkCanvas(m_outputDevice->lock(true)->ge tSkBitmap()));
95 } 97 }
96 98
97 void SoftwareRenderer::finishDrawingFrame(DrawingFrame& frame) 99 void SoftwareRenderer::finishDrawingFrame(DrawingFrame& frame)
98 { 100 {
101 TRACE_EVENT0("cc", "SoftwareRenderer::finishDrawingFrame");
99 m_currentFramebufferLock.reset(); 102 m_currentFramebufferLock.reset();
100 m_skCurrentCanvas = 0; 103 m_skCurrentCanvas = 0;
101 m_skRootCanvas.reset(); 104 m_skRootCanvas.reset();
102 m_outputDevice->unlock(); 105 m_outputDevice->unlock();
103 } 106 }
104 107
105 bool SoftwareRenderer::flippedFramebuffer() const 108 bool SoftwareRenderer::flippedFramebuffer() const
106 { 109 {
107 return false; 110 return false;
108 } 111 }
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
156 case ResourceProvider::Bitmap: 159 case ResourceProvider::Bitmap:
157 return true; 160 return true;
158 } 161 }
159 162
160 LOG(FATAL) << "Invalid resource type."; 163 LOG(FATAL) << "Invalid resource type.";
161 return false; 164 return false;
162 } 165 }
163 166
164 void SoftwareRenderer::drawQuad(DrawingFrame& frame, const DrawQuad* quad) 167 void SoftwareRenderer::drawQuad(DrawingFrame& frame, const DrawQuad* quad)
165 { 168 {
169 TRACE_EVENT0("cc", "SoftwareRenderer::drawQuad");
166 WebTransformationMatrix quadRectMatrix; 170 WebTransformationMatrix quadRectMatrix;
167 quadRectTransform(&quadRectMatrix, quad->quadTransform(), quad->quadRect()); 171 quadRectTransform(&quadRectMatrix, quad->quadTransform(), quad->quadRect());
168 WebTransformationMatrix contentsDeviceTransform = (frame.windowMatrix * fram e.projectionMatrix * quadRectMatrix).to2dTransform(); 172 WebTransformationMatrix contentsDeviceTransform = (frame.windowMatrix * fram e.projectionMatrix * quadRectMatrix).to2dTransform();
169 SkMatrix skDeviceMatrix; 173 SkMatrix skDeviceMatrix;
170 toSkMatrix(&skDeviceMatrix, contentsDeviceTransform); 174 toSkMatrix(&skDeviceMatrix, contentsDeviceTransform);
171 m_skCurrentCanvas->setMatrix(skDeviceMatrix); 175 m_skCurrentCanvas->setMatrix(skDeviceMatrix);
172 176
173 m_skCurrentPaint.reset(); 177 m_skCurrentPaint.reset();
174 if (!isScaleAndTranslate(skDeviceMatrix)) { 178 if (!isScaleAndTranslate(skDeviceMatrix)) {
175 m_skCurrentPaint.setAntiAlias(true); 179 m_skCurrentPaint.setAntiAlias(true);
(...skipping 153 matching lines...) Expand 10 before | Expand all | Expand 10 after
329 333
330 bool SoftwareRenderer::swapBuffers() 334 bool SoftwareRenderer::swapBuffers()
331 { 335 {
332 if (m_client->hasImplThread()) 336 if (m_client->hasImplThread())
333 m_client->onSwapBuffersComplete(); 337 m_client->onSwapBuffersComplete();
334 return true; 338 return true;
335 } 339 }
336 340
337 void SoftwareRenderer::getFramebufferPixels(void *pixels, const gfx::Rect& rect) 341 void SoftwareRenderer::getFramebufferPixels(void *pixels, const gfx::Rect& rect)
338 { 342 {
343 TRACE_EVENT0("cc", "SoftwareRenderer::getFramebufferPixels");
339 SkBitmap fullBitmap = m_outputDevice->lock(false)->getSkBitmap(); 344 SkBitmap fullBitmap = m_outputDevice->lock(false)->getSkBitmap();
340 SkBitmap subsetBitmap; 345 SkBitmap subsetBitmap;
341 SkIRect invertRect = SkIRect::MakeXYWH(rect.x(), viewportSize().height() - r ect.bottom(), rect.width(), rect.height()); 346 SkIRect invertRect = SkIRect::MakeXYWH(rect.x(), viewportSize().height() - r ect.bottom(), rect.width(), rect.height());
342 fullBitmap.extractSubset(&subsetBitmap, invertRect); 347 fullBitmap.extractSubset(&subsetBitmap, invertRect);
343 subsetBitmap.copyPixelsTo(pixels, rect.width() * rect.height() * 4, rect.wid th() * 4); 348 subsetBitmap.copyPixelsTo(pixels, rect.width() * rect.height() * 4, rect.wid th() * 4);
344 m_outputDevice->unlock(); 349 m_outputDevice->unlock();
345 } 350 }
346 351
347 void SoftwareRenderer::setVisible(bool visible) 352 void SoftwareRenderer::setVisible(bool visible)
348 { 353 {
349 if (m_visible == visible) 354 if (m_visible == visible)
350 return; 355 return;
351 m_visible = visible; 356 m_visible = visible;
352 } 357 }
353 358
354 } // namespace cc 359 } // namespace cc
OLDNEW
« no previous file with comments | « cc/direct_renderer.cc ('k') | content/renderer/gpu/compositor_software_output_device_gl_adapter.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698