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

Side by Side Diff: cc/layers/heads_up_display_layer_impl.cc

Issue 1377823002: Change HUD colors to distinguish status easily. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Updated memory graph. Created 5 years, 2 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 unified diff | Download patch
« no previous file with comments | « cc/layers/heads_up_display_layer_impl.h ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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/layers/heads_up_display_layer_impl.h" 5 #include "cc/layers/heads_up_display_layer_impl.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <vector> 8 #include <vector>
9 9
10 #include "base/numerics/safe_conversions.h" 10 #include "base/numerics/safe_conversions.h"
11 #include "base/strings/stringprintf.h" 11 #include "base/strings/stringprintf.h"
12 #include "base/trace_event/trace_event.h" 12 #include "base/trace_event/trace_event.h"
13 #include "base/trace_event/trace_event_argument.h" 13 #include "base/trace_event/trace_event_argument.h"
14 #include "cc/debug/debug_colors.h" 14 #include "cc/debug/debug_colors.h"
15 #include "cc/debug/frame_rate_counter.h" 15 #include "cc/debug/frame_rate_counter.h"
16 #include "cc/output/begin_frame_args.h" 16 #include "cc/output/begin_frame_args.h"
17 #include "cc/output/renderer.h" 17 #include "cc/output/renderer.h"
18 #include "cc/quads/texture_draw_quad.h" 18 #include "cc/quads/texture_draw_quad.h"
19 #include "cc/resources/memory_history.h" 19 #include "cc/resources/memory_history.h"
20 #include "cc/trees/layer_tree_host_impl.h" 20 #include "cc/trees/layer_tree_host_impl.h"
21 #include "cc/trees/layer_tree_impl.h" 21 #include "cc/trees/layer_tree_impl.h"
22 #include "skia/ext/platform_canvas.h" 22 #include "skia/ext/platform_canvas.h"
23 #include "third_party/skia/include/core/SkPaint.h" 23 #include "third_party/skia/include/core/SkPaint.h"
24 #include "third_party/skia/include/core/SkPath.h" 24 #include "third_party/skia/include/core/SkPath.h"
25 #include "third_party/skia/include/core/SkRRect.h"
25 #include "third_party/skia/include/core/SkTypeface.h" 26 #include "third_party/skia/include/core/SkTypeface.h"
26 #include "third_party/skia/include/effects/SkColorMatrixFilter.h" 27 #include "third_party/skia/include/effects/SkColorMatrixFilter.h"
28 #include "third_party/skia/include/effects/SkGradientShader.h"
27 #include "ui/gfx/geometry/point.h" 29 #include "ui/gfx/geometry/point.h"
28 #include "ui/gfx/geometry/size.h" 30 #include "ui/gfx/geometry/size.h"
29 #include "ui/gfx/geometry/size_conversions.h" 31 #include "ui/gfx/geometry/size_conversions.h"
30 #include "ui/gfx/hud_font.h" 32 #include "ui/gfx/hud_font.h"
31 33
32 namespace cc { 34 namespace cc {
33 35
34 static inline SkPaint CreatePaint() { 36 static inline SkPaint CreatePaint() {
35 SkPaint paint; 37 SkPaint paint;
36 #if (SK_R32_SHIFT || SK_B32_SHIFT != 16) 38 #if (SK_R32_SHIFT || SK_B32_SHIFT != 16)
(...skipping 226 matching lines...) Expand 10 before | Expand all | Expand 10 after
263 if (debug_state.ShowHudRects()) { 265 if (debug_state.ShowHudRects()) {
264 DrawDebugRects(canvas, layer_tree_impl()->debug_rect_history()); 266 DrawDebugRects(canvas, layer_tree_impl()->debug_rect_history());
265 if (IsAnimatingHUDContents()) { 267 if (IsAnimatingHUDContents()) {
266 layer_tree_impl()->SetNeedsRedraw(); 268 layer_tree_impl()->SetNeedsRedraw();
267 } 269 }
268 } 270 }
269 271
270 if (!debug_state.show_fps_counter) 272 if (!debug_state.show_fps_counter)
271 return; 273 return;
272 274
273 SkRect area = 275 SkRect area = DrawFPSDisplay(canvas, layer_tree_impl()->frame_rate_counter(),
274 DrawFPSDisplay(canvas, layer_tree_impl()->frame_rate_counter(), 0, 0); 276 0, 0, false);
277 area = DrawDisplaySeparator(canvas, 0, area.bottom(),
278 SkMaxScalar(area.width(), 150));
279 bool show_memory_display =
280 debug_state.ShowMemoryStats() && !!memory_entry_.total_bytes_used;
275 area = DrawGpuRasterizationStatus(canvas, 0, area.bottom(), 281 area = DrawGpuRasterizationStatus(canvas, 0, area.bottom(),
276 SkMaxScalar(area.width(), 150)); 282 SkMaxScalar(area.width(), 150),
277 283 !show_memory_display);
278 if (debug_state.ShowMemoryStats()) 284 if (show_memory_display) {
279 DrawMemoryDisplay(canvas, 0, area.bottom(), SkMaxScalar(area.width(), 150)); 285 area = DrawDisplaySeparator(canvas, 0, area.bottom(),
286 SkMaxScalar(area.width(), 150));
287 DrawMemoryDisplay(canvas, 0, area.bottom(), SkMaxScalar(area.width(), 150),
288 true);
289 }
280 } 290 }
281 int HeadsUpDisplayLayerImpl::MeasureText(SkPaint* paint, 291 int HeadsUpDisplayLayerImpl::MeasureText(SkPaint* paint,
282 const std::string& text, 292 const std::string& text,
283 int size) const { 293 int size) const {
284 const bool anti_alias = paint->isAntiAlias(); 294 const bool anti_alias = paint->isAntiAlias();
285 paint->setAntiAlias(true); 295 paint->setAntiAlias(true);
286 paint->setTextSize(size); 296 paint->setTextSize(size);
287 paint->setTypeface(typeface_.get()); 297 paint->setTypeface(typeface_.get());
288 SkScalar text_width = paint->measureText(text.c_str(), text.length()); 298 SkScalar text_width = paint->measureText(text.c_str(), text.length());
289 299
290 paint->setAntiAlias(anti_alias); 300 paint->setAntiAlias(anti_alias);
291 return SkScalarCeilToInt(text_width); 301 return SkScalarCeilToInt(text_width);
292 } 302 }
293 void HeadsUpDisplayLayerImpl::DrawText(SkCanvas* canvas, 303 void HeadsUpDisplayLayerImpl::DrawText(SkCanvas* canvas,
294 SkPaint* paint, 304 SkPaint* paint,
295 const std::string& text, 305 const std::string& text,
296 SkPaint::Align align, 306 SkPaint::Align align,
297 int size, 307 int size,
298 int x, 308 int x,
299 int y) const { 309 int y) const {
300 const bool anti_alias = paint->isAntiAlias(); 310 const bool anti_alias = paint->isAntiAlias();
301 paint->setAntiAlias(true); 311 paint->setAntiAlias(true);
302
303 paint->setTextSize(size); 312 paint->setTextSize(size);
304 paint->setTextAlign(align); 313 paint->setTextAlign(align);
305 paint->setTypeface(typeface_.get()); 314 paint->setTypeface(typeface_.get());
306 canvas->drawText(text.c_str(), text.length(), x, y, *paint); 315 canvas->drawText(text.c_str(), text.length(), x, y, *paint);
307
308 paint->setAntiAlias(anti_alias); 316 paint->setAntiAlias(anti_alias);
309 } 317 }
310 318
311 void HeadsUpDisplayLayerImpl::DrawText(SkCanvas* canvas, 319 void HeadsUpDisplayLayerImpl::DrawText(SkCanvas* canvas,
312 SkPaint* paint, 320 SkPaint* paint,
313 const std::string& text, 321 const std::string& text,
314 SkPaint::Align align, 322 SkPaint::Align align,
315 int size, 323 int size,
316 const SkPoint& pos) const { 324 const SkPoint& pos) const {
317 DrawText(canvas, paint, text, align, size, pos.x(), pos.y()); 325 DrawText(canvas, paint, text, align, size, pos.x(), pos.y());
318 } 326 }
319 327
320 void HeadsUpDisplayLayerImpl::DrawGraphBackground(SkCanvas* canvas, 328 void HeadsUpDisplayLayerImpl::DrawGraphBackground(SkCanvas* canvas,
321 SkPaint* paint, 329 SkPaint* paint,
322 const SkRect& bounds) const { 330 const SkRect& bounds,
331 bool rounded) const {
323 paint->setColor(DebugColors::HUDBackgroundColor()); 332 paint->setColor(DebugColors::HUDBackgroundColor());
324 canvas->drawRect(bounds, *paint); 333
334 if (rounded) {
danakj 2015/10/08 17:48:09 I don't think it's really worth adding code to mak
prashant.n 2015/10/09 01:01:52 Hmm. I will remove them.
335 const bool anti_alias = paint->isAntiAlias();
336 paint->setAntiAlias(true);
337 SkRRect rounded_bounds;
338 rounded_bounds.setNinePatch(bounds, 4, 0, 0, 4);
339 canvas->drawRRect(rounded_bounds, *paint);
340 paint->setAntiAlias(anti_alias);
341 } else {
342 canvas->drawRect(bounds, *paint);
343 }
325 } 344 }
326 345
327 void HeadsUpDisplayLayerImpl::DrawGraphLines(SkCanvas* canvas, 346 void HeadsUpDisplayLayerImpl::DrawGraphLines(SkCanvas* canvas,
328 SkPaint* paint, 347 SkPaint* paint,
329 const SkRect& bounds, 348 const SkRect& bounds,
330 const Graph& graph) const { 349 const Graph& graph) const {
331 // Draw top and bottom line. 350 // Draw top and bottom line.
332 paint->setColor(DebugColors::HUDSeparatorLineColor()); 351 paint->setColor(DebugColors::HUDSeparatorLineColor());
333 canvas->drawLine(bounds.left(), 352 canvas->drawLine(bounds.left(),
334 bounds.top() - 1, 353 bounds.top() - 1,
(...skipping 15 matching lines...) Expand all
350 bounds.right(), 369 bounds.right(),
351 bounds.top() + indicator_top, 370 bounds.top() + indicator_top,
352 *paint); 371 *paint);
353 paint->setXfermode(nullptr); 372 paint->setXfermode(nullptr);
354 } 373 }
355 374
356 SkRect HeadsUpDisplayLayerImpl::DrawFPSDisplay( 375 SkRect HeadsUpDisplayLayerImpl::DrawFPSDisplay(
357 SkCanvas* canvas, 376 SkCanvas* canvas,
358 const FrameRateCounter* fps_counter, 377 const FrameRateCounter* fps_counter,
359 int right, 378 int right,
360 int top) const { 379 int top,
380 bool last_display) const {
361 const int kPadding = 4; 381 const int kPadding = 4;
362 const int kGap = 6; 382 const int kGap = 6;
363 383
364 const int kFontHeight = 15; 384 const int kTitleFontHeight = 13;
385 const int kFontHeight = 12;
365 386
366 const int kGraphWidth = 387 const int kGraphWidth =
367 base::saturated_cast<int>(fps_counter->time_stamp_history_size()) - 2; 388 base::saturated_cast<int>(fps_counter->time_stamp_history_size()) - 2;
368 const int kGraphHeight = 40; 389 const int kGraphHeight = 40;
369 390
370 const int kHistogramWidth = 37; 391 const int kHistogramWidth = 37;
371 392
372 int width = kGraphWidth + kHistogramWidth + 4 * kPadding; 393 int width = kGraphWidth + kHistogramWidth + 4 * kPadding;
373 int height = kFontHeight + kGraphHeight + 4 * kPadding + 2; 394 int height = kTitleFontHeight + kFontHeight + kGraphHeight + 6 * kPadding + 2;
374 int left = bounds().width() - width - right; 395 int left = bounds().width() - width - right;
375 SkRect area = SkRect::MakeXYWH(left, top, width, height); 396 SkRect area = SkRect::MakeXYWH(left, top, width, height);
376 397
377 SkPaint paint = CreatePaint(); 398 SkPaint paint = CreatePaint();
378 DrawGraphBackground(canvas, &paint, area); 399 DrawGraphBackground(canvas, &paint, area, last_display);
379 400
401 SkRect title_bounds = SkRect::MakeXYWH(
402 left + kPadding, top + kPadding, kGraphWidth + kHistogramWidth + kGap + 2,
403 kTitleFontHeight);
380 SkRect text_bounds = 404 SkRect text_bounds =
381 SkRect::MakeXYWH(left + kPadding, 405 SkRect::MakeXYWH(left + kPadding, title_bounds.bottom() + 2 * kPadding,
382 top + kPadding, 406 kGraphWidth + kHistogramWidth + kGap + 2, kFontHeight);
383 kGraphWidth + kHistogramWidth + kGap + 2,
384 kFontHeight);
385 SkRect graph_bounds = SkRect::MakeXYWH(left + kPadding, 407 SkRect graph_bounds = SkRect::MakeXYWH(left + kPadding,
386 text_bounds.bottom() + 2 * kPadding, 408 text_bounds.bottom() + 2 * kPadding,
387 kGraphWidth, 409 kGraphWidth,
388 kGraphHeight); 410 kGraphHeight);
389 SkRect histogram_bounds = SkRect::MakeXYWH(graph_bounds.right() + kGap, 411 SkRect histogram_bounds = SkRect::MakeXYWH(graph_bounds.right() + kGap,
390 graph_bounds.top(), 412 graph_bounds.top(),
391 kHistogramWidth, 413 kHistogramWidth,
392 kGraphHeight); 414 kGraphHeight);
393 415
416 const std::string title("Frame Rate");
394 const std::string value_text = 417 const std::string value_text =
395 base::StringPrintf("FPS:%5.1f", fps_graph_.value); 418 base::StringPrintf("%5.1f fps", fps_graph_.value);
396 const std::string min_max_text = 419 const std::string min_max_text =
397 base::StringPrintf("%.0f-%.0f", fps_graph_.min, fps_graph_.max); 420 base::StringPrintf("%.0f-%.0f", fps_graph_.min, fps_graph_.max);
398 421
399 VLOG(1) << value_text; 422 VLOG(1) << value_text;
400 423
424 paint.setColor(DebugColors::HUDTitleColor());
425 DrawText(canvas, &paint, title, SkPaint::kLeft_Align, kTitleFontHeight,
426 title_bounds.left(), title_bounds.bottom());
427
401 paint.setColor(DebugColors::FPSDisplayTextAndGraphColor()); 428 paint.setColor(DebugColors::FPSDisplayTextAndGraphColor());
402 DrawText(canvas, 429 DrawText(canvas,
403 &paint, 430 &paint,
404 value_text, 431 value_text,
405 SkPaint::kLeft_Align, 432 SkPaint::kLeft_Align,
406 kFontHeight, 433 kFontHeight,
407 text_bounds.left(), 434 text_bounds.left(),
408 text_bounds.bottom()); 435 text_bounds.bottom());
409 DrawText(canvas, 436 DrawText(canvas,
410 &paint, 437 &paint,
(...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after
490 paint.setStyle(SkPaint::kStroke_Style); 517 paint.setStyle(SkPaint::kStroke_Style);
491 paint.setStrokeWidth(1); 518 paint.setStrokeWidth(1);
492 canvas->drawPath(path, paint); 519 canvas->drawPath(path, paint);
493 520
494 return area; 521 return area;
495 } 522 }
496 523
497 SkRect HeadsUpDisplayLayerImpl::DrawMemoryDisplay(SkCanvas* canvas, 524 SkRect HeadsUpDisplayLayerImpl::DrawMemoryDisplay(SkCanvas* canvas,
498 int right, 525 int right,
499 int top, 526 int top,
500 int width) const { 527 int width,
501 if (!memory_entry_.total_bytes_used) 528 bool last_display) const {
502 return SkRect::MakeEmpty(); 529 const int kPadding = 4;
530 const int kTitleFontHeight = 13;
531 const int kFontHeight = 12;
503 532
504 const int kPadding = 4; 533 const int height = kTitleFontHeight + 2 * kFontHeight + 5 * kPadding;
505 const int kFontHeight = 13;
506
507 const int height = 3 * kFontHeight + 4 * kPadding;
508 const int left = bounds().width() - width - right; 534 const int left = bounds().width() - width - right;
509 const SkRect area = SkRect::MakeXYWH(left, top, width, height); 535 const SkRect area = SkRect::MakeXYWH(left, top, width, height);
510 536
511 const double kMegabyte = 1024.0 * 1024.0; 537 const double kMegabyte = 1024.0 * 1024.0;
512 538
513 SkPaint paint = CreatePaint(); 539 SkPaint paint = CreatePaint();
514 DrawGraphBackground(canvas, &paint, area); 540 DrawGraphBackground(canvas, &paint, area, last_display);
515 541
516 SkPoint title_pos = SkPoint::Make(left + kPadding, top + kFontHeight); 542 SkPoint title_pos =
543 SkPoint::Make(left + kPadding, top + kFontHeight + kPadding);
517 SkPoint stat1_pos = SkPoint::Make(left + width - kPadding - 1, 544 SkPoint stat1_pos = SkPoint::Make(left + width - kPadding - 1,
518 top + kPadding + 2 * kFontHeight); 545 top + kPadding + 2 * kFontHeight);
519 SkPoint stat2_pos = SkPoint::Make(left + width - kPadding - 1, 546 SkPoint stat2_pos = SkPoint::Make(left + width - kPadding - 1,
520 top + 2 * kPadding + 3 * kFontHeight); 547 top + 2 * kPadding + 3 * kFontHeight);
521 548
522 paint.setColor(DebugColors::MemoryDisplayTextColor()); 549 paint.setColor(DebugColors::HUDTitleColor());
523 DrawText(canvas, 550 DrawText(canvas, &paint, "GPU Memory", SkPaint::kLeft_Align, kTitleFontHeight,
524 &paint,
525 "GPU memory",
526 SkPaint::kLeft_Align,
527 kFontHeight,
528 title_pos); 551 title_pos);
529 552
553 paint.setColor(DebugColors::MemoryDisplayTextColor());
530 std::string text = base::StringPrintf( 554 std::string text = base::StringPrintf(
531 "%6.1f MB used", memory_entry_.total_bytes_used / kMegabyte); 555 "%6.1f MB used", memory_entry_.total_bytes_used / kMegabyte);
532 DrawText(canvas, &paint, text, SkPaint::kRight_Align, kFontHeight, stat1_pos); 556 DrawText(canvas, &paint, text, SkPaint::kRight_Align, kFontHeight, stat1_pos);
533 557
534 if (!memory_entry_.had_enough_memory) 558 if (!memory_entry_.had_enough_memory)
535 paint.setColor(SK_ColorRED); 559 paint.setColor(SK_ColorRED);
536 text = base::StringPrintf("%6.1f MB max ", 560 text = base::StringPrintf("%6.1f MB max ",
537 memory_entry_.total_budget_in_bytes / kMegabyte); 561 memory_entry_.total_budget_in_bytes / kMegabyte);
538 DrawText(canvas, &paint, text, SkPaint::kRight_Align, kFontHeight, stat2_pos); 562 DrawText(canvas, &paint, text, SkPaint::kRight_Align, kFontHeight, stat2_pos);
539 563
564 // Draw memory graph.
565 int length = 2 * kFontHeight + kPadding + 12;
566 SkRect oval =
567 SkRect::MakeXYWH(left + kPadding * 6,
568 top + kTitleFontHeight + kPadding * 3, length, length);
569 paint.setAntiAlias(true);
570 paint.setStyle(SkPaint::kFill_Style);
571
572 paint.setColor(SkColorSetARGB(64, 255, 255, 0));
573 canvas->drawArc(oval, 180, 180, true, paint);
574
575 int radius = length / 2;
576 int cx = oval.left() + radius;
577 int cy = oval.top() + radius;
578 double angle = ((double)memory_entry_.total_bytes_used /
579 memory_entry_.total_budget_in_bytes) *
580 180;
581
582 SkColor colors[] = {SK_ColorRED, SK_ColorGREEN, SK_ColorGREEN,
583 SkColorSetARGB(255, 255, 140, 0), SK_ColorRED};
584 const SkScalar pos[] = {0.2, 0.4, 0.6, 0.8, 1.0};
585 skia::RefPtr<SkShader> gradient_shader =
586 skia::AdoptRef(SkGradientShader::CreateSweep(cx, cy, colors, pos, 5));
587 paint.setShader(gradient_shader.get());
588 paint.setFlags(SkPaint::kAntiAlias_Flag);
589
590 // Draw current status.
591 paint.setStyle(SkPaint::kStroke_Style);
592 paint.setAlpha(32);
593 paint.setStrokeWidth(4);
594 canvas->drawArc(oval, 180, angle, true, paint);
595
596 paint.setStyle(SkPaint::kFill_Style);
597 paint.setColor(SkColorSetARGB(255, 0, 255, 0));
598 canvas->drawArc(oval, 180, angle, true, paint);
599 paint.setShader(NULL);
600
540 return area; 601 return area;
541 } 602 }
542 603
543 SkRect HeadsUpDisplayLayerImpl::DrawGpuRasterizationStatus(SkCanvas* canvas, 604 SkRect HeadsUpDisplayLayerImpl::DrawGpuRasterizationStatus(
544 int right, 605 SkCanvas* canvas,
545 int top, 606 int right,
546 int width) const { 607 int top,
608 int width,
609 bool last_display) const {
547 std::string status; 610 std::string status;
548 SkColor color = SK_ColorRED; 611 SkColor color = SK_ColorRED;
549 switch (layer_tree_impl()->GetGpuRasterizationStatus()) { 612 switch (layer_tree_impl()->GetGpuRasterizationStatus()) {
550 case GpuRasterizationStatus::ON: 613 case GpuRasterizationStatus::ON:
551 status = "on"; 614 status = "on";
552 color = SK_ColorGREEN; 615 color = SK_ColorGREEN;
553 break; 616 break;
554 case GpuRasterizationStatus::ON_FORCED: 617 case GpuRasterizationStatus::ON_FORCED:
555 status = "on (forced)"; 618 status = "on (forced)";
556 color = SK_ColorGREEN; 619 color = SK_ColorGREEN;
(...skipping 13 matching lines...) Expand all
570 case GpuRasterizationStatus::OFF_CONTENT: 633 case GpuRasterizationStatus::OFF_CONTENT:
571 status = "off (content)"; 634 status = "off (content)";
572 color = SK_ColorYELLOW; 635 color = SK_ColorYELLOW;
573 break; 636 break;
574 } 637 }
575 638
576 if (status.empty()) 639 if (status.empty())
577 return SkRect::MakeEmpty(); 640 return SkRect::MakeEmpty();
578 641
579 const int kPadding = 4; 642 const int kPadding = 4;
580 const int kFontHeight = 13; 643 const int kTitleFontHeight = 13;
644 const int kFontHeight = 12;
581 645
582 const int height = 2 * kFontHeight + 3 * kPadding; 646 const int height = kTitleFontHeight + kFontHeight + 3 * kPadding;
583 const int left = bounds().width() - width - right; 647 const int left = bounds().width() - width - right;
584 const SkRect area = SkRect::MakeXYWH(left, top, width, height); 648 const SkRect area = SkRect::MakeXYWH(left, top, width, height);
585 649
586 SkPaint paint = CreatePaint(); 650 SkPaint paint = CreatePaint();
587 DrawGraphBackground(canvas, &paint, area); 651 DrawGraphBackground(canvas, &paint, area, last_display);
588 652
589 SkPoint gpu_status_pos = SkPoint::Make(left + width - kPadding, 653 SkPoint gpu_status_pos = SkPoint::Make(left + width - kPadding,
590 top + 2 * kFontHeight + 2 * kPadding); 654 top + 2 * kFontHeight + 2 * kPadding);
591 655 paint.setColor(DebugColors::HUDTitleColor());
656 DrawText(canvas, &paint, "GPU Raster", SkPaint::kLeft_Align, kTitleFontHeight,
657 left + kPadding, top + kFontHeight + kPadding);
592 paint.setColor(color); 658 paint.setColor(color);
593 DrawText(canvas, &paint, "GPU raster: ", SkPaint::kLeft_Align, kFontHeight,
594 left + kPadding, top + kFontHeight + kPadding);
595 DrawText(canvas, &paint, status, SkPaint::kRight_Align, kFontHeight, 659 DrawText(canvas, &paint, status, SkPaint::kRight_Align, kFontHeight,
596 gpu_status_pos); 660 gpu_status_pos);
597 661
598 return area; 662 return area;
599 } 663 }
600 664
665 SkRect HeadsUpDisplayLayerImpl::DrawDisplaySeparator(SkCanvas* canvas,
666 int right,
667 int top,
668 int width) const {
669 const int height = 1;
670 const int left = bounds().width() - width - right;
671 const SkRect area = SkRect::MakeXYWH(left, top, width, height);
672 SkPaint paint = CreatePaint();
673 paint.setColor(DebugColors::HUDDisplaySeparatorColor());
danakj 2015/10/08 17:48:09 Similar comment here, I don't know that these sepa
prashant.n 2015/10/09 01:01:52 Adding separators between different displays makes
danakj 2015/10/09 04:41:35 I disagee, as I would like as little code in the H
prashant.n 2015/10/09 05:05:12 Basically it shows that fps counter and GPU status
danakj 2015/10/09 16:59:57 This isn't user-targeted UI like the chrome UI is.
prashant.n 2015/10/10 00:29:35 IMO, even the ui is not user targetted, it is publ
674 canvas->drawRect(area, paint);
675 return area;
676 }
677
601 void HeadsUpDisplayLayerImpl::DrawDebugRect( 678 void HeadsUpDisplayLayerImpl::DrawDebugRect(
602 SkCanvas* canvas, 679 SkCanvas* canvas,
603 SkPaint* paint, 680 SkPaint* paint,
604 const DebugRect& rect, 681 const DebugRect& rect,
605 SkColor stroke_color, 682 SkColor stroke_color,
606 SkColor fill_color, 683 SkColor fill_color,
607 float stroke_width, 684 float stroke_width,
608 const std::string& label_text) const { 685 const std::string& label_text) const {
609 gfx::Rect debug_layer_rect = 686 gfx::Rect debug_layer_rect =
610 gfx::ScaleToEnclosingRect(rect.rect, 1.0 / internal_contents_scale_, 687 gfx::ScaleToEnclosingRect(rect.rect, 1.0 / internal_contents_scale_,
(...skipping 146 matching lines...) Expand 10 before | Expand all | Expand 10 after
757 return "cc::HeadsUpDisplayLayerImpl"; 834 return "cc::HeadsUpDisplayLayerImpl";
758 } 835 }
759 836
760 void HeadsUpDisplayLayerImpl::AsValueInto( 837 void HeadsUpDisplayLayerImpl::AsValueInto(
761 base::trace_event::TracedValue* dict) const { 838 base::trace_event::TracedValue* dict) const {
762 LayerImpl::AsValueInto(dict); 839 LayerImpl::AsValueInto(dict);
763 dict->SetString("layer_name", "Heads Up Display Layer"); 840 dict->SetString("layer_name", "Heads Up Display Layer");
764 } 841 }
765 842
766 } // namespace cc 843 } // namespace cc
OLDNEW
« no previous file with comments | « cc/layers/heads_up_display_layer_impl.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698