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); |