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

Unified Diff: content/renderer/skia_benchmarking/skia_benchmarking_extension.cc

Issue 19266015: [SkiaBenchmarkingExtension] Add draw command timing info. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Rebased. Created 7 years, 5 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
Index: content/renderer/skia_benchmarking/skia_benchmarking_extension.cc
diff --git a/content/renderer/skia_benchmarking_extension.cc b/content/renderer/skia_benchmarking/skia_benchmarking_extension.cc
similarity index 89%
rename from content/renderer/skia_benchmarking_extension.cc
rename to content/renderer/skia_benchmarking/skia_benchmarking_extension.cc
index 078b51d2cd24d425a6f499e5e6ba015a307e139d..e161f8116265581dee7e2dc2466a547e65d9ad51 100644
--- a/content/renderer/skia_benchmarking_extension.cc
+++ b/content/renderer/skia_benchmarking/skia_benchmarking_extension.cc
@@ -2,12 +2,13 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-#include "content/renderer/skia_benchmarking_extension.h"
+#include "content/renderer/skia_benchmarking/skia_benchmarking_extension.h"
#include "base/values.h"
#include "cc/base/math_util.h"
#include "cc/resources/picture.h"
#include "content/public/renderer/v8_value_converter.h"
+#include "content/renderer/skia_benchmarking/skia_benchmarking_canvas.h"
#include "third_party/WebKit/public/platform/WebArrayBuffer.h"
#include "third_party/WebKit/public/web/WebFrame.h"
#include "third_party/skia/include/core/SkCanvas.h"
@@ -20,6 +21,7 @@
#include "v8/include/v8.h"
using WebKit::WebFrame;
+using content::SkiaBenchmarkingCanvas;
namespace {
@@ -189,19 +191,23 @@ class SkiaBenchmarkingWrapper : public v8::Extension {
if (!picture.get())
return;
- gfx::Rect bounds = picture->LayerRect();
- SkDebugCanvas canvas(bounds.width(), bounds.height());
+ SkiaBenchmarkingCanvas canvas(picture->LayerRect());
picture->Replay(&canvas);
- v8::Local<v8::Array> result = v8::Array::New(canvas.getSize());
- for (int i = 0; i < canvas.getSize(); ++i) {
- DrawType cmd_type = canvas.getDrawCommandAt(i)->getType();
- v8::Handle<v8::Object> cmd = v8::Object::New();
- cmd->Set(v8::String::New("cmd_type"), v8::Integer::New(cmd_type));
- cmd->Set(v8::String::New("cmd_string"), v8::String::New(
- SkDrawCommand::GetCommandString(cmd_type)));
+ v8::Local<v8::Array> result = v8::Array::New(canvas.CommandCount());
+ for (size_t i = 0; i < canvas.CommandCount(); ++i) {
+ v8::Handle<v8::Object> v8_cmd = v8::Object::New();
+ SkDrawCommand* cmd = canvas.GetCommand(i);
+ DCHECK(cmd);
- SkTDArray<SkString*>* info = canvas.getCommandInfo(i);
+ DrawType cmd_type = cmd->getType();
+ v8_cmd->Set(v8::String::New("cmd_type"), v8::Integer::New(cmd_type));
+ v8_cmd->Set(v8::String::New("cmd_string"),
+ v8::String::New(SkDrawCommand::GetCommandString(cmd_type)));
+ v8_cmd->Set(v8::String::New("cmd_time"),
+ v8::Number::New(canvas.GetTime(i)));
+
+ SkTDArray<SkString*>* info = cmd->Info();
DCHECK(info);
v8::Local<v8::Array> v8_info = v8::Array::New(info->count());
@@ -210,10 +216,9 @@ class SkiaBenchmarkingWrapper : public v8::Extension {
DCHECK(info_str);
v8_info->Set(j, v8::String::New(info_str->c_str()));
}
+ v8_cmd->Set(v8::String::New("info"), v8_info);
- cmd->Set(v8::String::New("info"), v8_info);
-
- result->Set(i, cmd);
+ result->Set(i, v8_cmd);
}
args.GetReturnValue().Set(result);

Powered by Google App Engine
This is Rietveld 408576698