| OLD | NEW |
| 1 <!DOCTYPE html> | 1 <!DOCTYPE html> |
| 2 <!-- | 2 <!-- |
| 3 Copyright (c) 2014 The Chromium Authors. All rights reserved. | 3 Copyright (c) 2014 The Chromium Authors. All rights reserved. |
| 4 Use of this source code is governed by a BSD-style license that can be | 4 Use of this source code is governed by a BSD-style license that can be |
| 5 found in the LICENSE file. | 5 found in the LICENSE file. |
| 6 --> | 6 --> |
| 7 | 7 |
| 8 <link rel="import" href="/tracing/ui/tracks/highlighter.html"> | |
| 9 <link rel="import" href="/tracing/ui/timeline_track_view.html"> | 8 <link rel="import" href="/tracing/ui/timeline_track_view.html"> |
| 10 <link rel="import" href="/tracing/ui/timeline_viewport.html"> | 9 <link rel="import" href="/tracing/ui/timeline_viewport.html"> |
| 10 <link rel="import" href="/tracing/ui/tracks/highlighter.html"> |
| 11 <link rel="import" href="/tracing/ui/tracks/model_track.html"> | 11 <link rel="import" href="/tracing/ui/tracks/model_track.html"> |
| 12 | 12 |
| 13 <script> | 13 <script> |
| 14 'use strict'; | 14 'use strict'; |
| 15 | 15 |
| 16 /** | 16 /** |
| 17 * @fileoverview Provides the VSyncHighlighter class. | 17 * @fileoverview Provides the VSyncHighlighter class. |
| 18 */ | 18 */ |
| 19 tr.exportTo('tr.ui.e.highlighter', function() { | 19 tr.exportTo('tr.ui.e.highlighter', function() { |
| 20 | 20 |
| (...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 74 this.times_ = model.device.vSyncTimestamps; | 74 this.times_ = model.device.vSyncTimestamps; |
| 75 }, | 75 }, |
| 76 | 76 |
| 77 drawHighlight: function(ctx, dt, viewLWorld, viewRWorld, viewHeight) { | 77 drawHighlight: function(ctx, dt, viewLWorld, viewRWorld, viewHeight) { |
| 78 if (!this.viewport_.highlightVSync) { | 78 if (!this.viewport_.highlightVSync) { |
| 79 return; | 79 return; |
| 80 } | 80 } |
| 81 | 81 |
| 82 var stripes = VSyncHighlighter.generateStripes( | 82 var stripes = VSyncHighlighter.generateStripes( |
| 83 this.times_, viewLWorld, viewRWorld); | 83 this.times_, viewLWorld, viewRWorld); |
| 84 if (stripes.length == 0) { | 84 if (stripes.length === 0) { |
| 85 return; | 85 return; |
| 86 } | 86 } |
| 87 | 87 |
| 88 var stripeRange = stripes[stripes.length - 1][1] - stripes[0][0]; | 88 var stripeRange = stripes[stripes.length - 1][1] - stripes[0][0]; |
| 89 var stripeDensity = stripes.length / (dt.scaleX * stripeRange); | 89 var stripeDensity = stripes.length / (dt.scaleX * stripeRange); |
| 90 var clampedStripeDensity = tr.b.clamp(stripeDensity, | 90 var clampedStripeDensity = tr.b.clamp(stripeDensity, |
| 91 VSyncHighlighter.VSYNC_DENSITY_OPAQUE, | 91 VSyncHighlighter.VSYNC_DENSITY_OPAQUE, |
| 92 VSyncHighlighter.VSYNC_DENSITY_TRANSPARENT); | 92 VSyncHighlighter.VSYNC_DENSITY_TRANSPARENT); |
| 93 var opacity = | 93 var opacity = |
| 94 (VSyncHighlighter.VSYNC_DENSITY_TRANSPARENT - clampedStripeDensity) / | 94 (VSyncHighlighter.VSYNC_DENSITY_TRANSPARENT - clampedStripeDensity) / |
| 95 VSyncHighlighter.VSYNC_DENSITY_RANGE; | 95 VSyncHighlighter.VSYNC_DENSITY_RANGE; |
| 96 if (opacity == 0) { | 96 if (opacity === 0) { |
| 97 return; | 97 return; |
| 98 } | 98 } |
| 99 | 99 |
| 100 var pixelRatio = window.devicePixelRatio || 1; | 100 var pixelRatio = window.devicePixelRatio || 1; |
| 101 var height = viewHeight * pixelRatio; | 101 var height = viewHeight * pixelRatio; |
| 102 | 102 |
| 103 var c = VSyncHighlighter.VSYNC_HIGHLIGHT_COLOR; | 103 var c = VSyncHighlighter.VSYNC_HIGHLIGHT_COLOR; |
| 104 ctx.fillStyle = c.toStringWithAlphaOverride( | 104 ctx.fillStyle = c.toStringWithAlphaOverride( |
| 105 VSyncHighlighter.VSYNC_HIGHLIGHT_ALPHA * opacity); | 105 VSyncHighlighter.VSYNC_HIGHLIGHT_ALPHA * opacity); |
| 106 | 106 |
| 107 for (var i = 0; i < stripes.length; i++) { | 107 for (var i = 0; i < stripes.length; i++) { |
| 108 var xLeftView = dt.xWorldToView(stripes[i][0]); | 108 var xLeftView = dt.xWorldToView(stripes[i][0]); |
| 109 var xRightView = dt.xWorldToView(stripes[i][1]); | 109 var xRightView = dt.xWorldToView(stripes[i][1]); |
| 110 ctx.fillRect(xLeftView, 0, xRightView - xLeftView, height); | 110 ctx.fillRect(xLeftView, 0, xRightView - xLeftView, height); |
| 111 } | 111 } |
| 112 } | 112 } |
| 113 }; | 113 }; |
| 114 | 114 |
| 115 // Register the highlighter. | 115 // Register the highlighter. |
| 116 tr.ui.tracks.Highlighter.register(VSyncHighlighter); | 116 tr.ui.tracks.Highlighter.register(VSyncHighlighter); |
| 117 | 117 |
| 118 return { | 118 return { |
| 119 VSyncHighlighter: VSyncHighlighter | 119 VSyncHighlighter: VSyncHighlighter |
| 120 }; | 120 }; |
| 121 }); | 121 }); |
| 122 </script> | 122 </script> |
| OLD | NEW |