Index: content/renderer/gpu/gpu_benchmarking_extension.cc |
diff --git a/content/renderer/gpu/gpu_benchmarking_extension.cc b/content/renderer/gpu/gpu_benchmarking_extension.cc |
index 2d1b65d89acfbddb7f33151c3a5c1632cba82de1..a366b6e719414bdc928f04f3368e71980b2d6138 100644 |
--- a/content/renderer/gpu/gpu_benchmarking_extension.cc |
+++ b/content/renderer/gpu/gpu_benchmarking_extension.cc |
@@ -81,6 +81,23 @@ class SkPictureRecorder : public WebViewBenchmarkSupport::PaintClient { |
SkPicture picture_; |
}; |
+class RenderingStatsEnumerator : public cc::RenderingStats::Enumerator { |
+ public: |
+ RenderingStatsEnumerator(v8::Handle<v8::Object> stats_object) |
+ : stats_object(stats_object) { } |
+ |
+ virtual void addInt64(const char* name, int64 value) { |
+ stats_object->Set(v8::String::New(name), v8::Number::New(value)); |
+ } |
+ |
+ virtual void addDouble(const char* name, double value) { |
+ stats_object->Set(v8::String::New(name), v8::Number::New(value)); |
+ } |
+ |
+ private: |
+ v8::Handle<v8::Object> stats_object; |
+}; |
+ |
} // namespace |
namespace content { |
@@ -158,42 +175,9 @@ class GpuBenchmarkingWrapper : public v8::Extension { |
content::GpuRenderingStats gpu_stats; |
render_view_impl->GetGpuRenderingStats(&gpu_stats); |
v8::Handle<v8::Object> stats_object = v8::Object::New(); |
- stats_object->Set(v8::String::New("numAnimationFrames"), |
- v8::Number::New( |
- stats.rendering_stats.numAnimationFrames)); |
- stats_object->Set(v8::String::New("numFramesSentToScreen"), |
- v8::Number::New( |
- stats.rendering_stats.numFramesSentToScreen)); |
- stats_object->Set(v8::String::New("droppedFrameCount"), |
- v8::Number::New( |
- stats.rendering_stats.droppedFrameCount)); |
- stats_object->Set(v8::String::New("totalPaintTimeInSeconds"), |
- v8::Number::New( |
- stats.rendering_stats.totalPaintTimeInSeconds)); |
- stats_object->Set(v8::String::New("totalRasterizeTimeInSeconds"), |
- v8::Number::New( |
- stats.rendering_stats.totalRasterizeTimeInSeconds)); |
- stats_object->Set(v8::String::New("totalCommitTimeInSeconds"), |
- v8::Number::New( |
- stats.rendering_stats.totalCommitTimeInSeconds)); |
- stats_object->Set(v8::String::New("totalCommitCount"), |
- v8::Number::New( |
- stats.rendering_stats.totalCommitCount)); |
- stats_object->Set(v8::String::New("numImplThreadScrolls"), |
- v8::Number::New( |
- stats.rendering_stats.numImplThreadScrolls)); |
- stats_object->Set(v8::String::New("numMainThreadScrolls"), |
- v8::Number::New( |
- stats.rendering_stats.numMainThreadScrolls)); |
- stats_object->Set(v8::String::New("totalPixelsPainted"), |
- v8::Number::New( |
- stats.rendering_stats.totalPixelsPainted)); |
- stats_object->Set(v8::String::New("totalPixelsRasterized"), |
- v8::Number::New( |
- stats.rendering_stats.totalPixelsRasterized)); |
- stats_object->Set(v8::String::New("numLayersInLayerTree"), |
- v8::Number::New( |
- stats.rendering_stats.numLayersInLayerTree)); |
+ |
+ RenderingStatsEnumerator enumerator(stats_object); |
+ stats.rendering_stats.enumerateFields(&enumerator); |
stats_object->Set(v8::String::New("globalTextureUploadCount"), |
nduca
2012/11/28 21:27:35
can we do this for the gpu stats too, as a followu
hartmanng
2012/11/28 23:18:17
Done.
|
v8::Number::New(gpu_stats.global_texture_upload_count)); |