blob: 564452d9ede611215ff717c676e1e789f8f146a3 [file] [log] [blame]
// Copyright 2012 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "base/macros.h"
#include "cc/debug/debug_colors.h"
#include "cc/trees/layer_tree_impl.h"
namespace cc {
static float Scale(float width, const LayerTreeImpl* tree_impl) {
return width * (tree_impl ? tree_impl->device_scale_factor() : 1);
}
// ======= Layer border colors =======
// Tiled content layers are orange.
SkColor DebugColors::TiledContentLayerBorderColor() {
return SkColorSetARGB(128, 255, 128, 0);
}
int DebugColors::TiledContentLayerBorderWidth(const LayerTreeImpl* tree_impl) {
return Scale(2, tree_impl);
}
// Image layers are olive.
SkColor DebugColors::ImageLayerBorderColor() {
return SkColorSetARGB(128, 128, 128, 0);
}
int DebugColors::ImageLayerBorderWidth(const LayerTreeImpl* tree_impl) {
return Scale(2, tree_impl);
}
// Non-tiled content layers area green.
SkColor DebugColors::ContentLayerBorderColor() {
return SkColorSetARGB(128, 0, 128, 32);
}
int DebugColors::ContentLayerBorderWidth(const LayerTreeImpl* tree_impl) {
return Scale(2, tree_impl);
}
// Masking layers are pale blue and wide.
SkColor DebugColors::MaskingLayerBorderColor() {
return SkColorSetARGB(48, 128, 255, 255);
}
int DebugColors::MaskingLayerBorderWidth(const LayerTreeImpl* tree_impl) {
return Scale(20, tree_impl);
}
// Other container layers are yellow.
SkColor DebugColors::ContainerLayerBorderColor() {
return SkColorSetARGB(192, 255, 255, 0);
}
int DebugColors::ContainerLayerBorderWidth(const LayerTreeImpl* tree_impl) {
return Scale(2, tree_impl);
}
// Surface layers are a blue-ish green.
SkColor DebugColors::SurfaceLayerBorderColor() {
return SkColorSetARGB(128, 0, 255, 136);
}
int DebugColors::SurfaceLayerBorderWidth(const LayerTreeImpl* tree_impl) {
return Scale(2, tree_impl);
}
// Render surfaces are blue.
SkColor DebugColors::SurfaceBorderColor() {
return SkColorSetARGB(100, 0, 0, 255);
}
int DebugColors::SurfaceBorderWidth(const LayerTreeImpl* tree_impl) {
return Scale(2, tree_impl);
}
// Replicas of render surfaces are purple.
SkColor DebugColors::SurfaceReplicaBorderColor() {
return SkColorSetARGB(100, 160, 0, 255);
}
int DebugColors::SurfaceReplicaBorderWidth(const LayerTreeImpl* tree_impl) {
return Scale(2, tree_impl);
}
// ======= Tile colors =======
// High-res tile borders are cyan.
SkColor DebugColors::HighResTileBorderColor() {
return SkColorSetARGB(100, 80, 200, 200);
}
int DebugColors::HighResTileBorderWidth(const LayerTreeImpl* tree_impl) {
return Scale(1, tree_impl);
}
// Low-res tile borders are purple.
SkColor DebugColors::LowResTileBorderColor() {
return SkColorSetARGB(100, 212, 83, 192);
}
int DebugColors::LowResTileBorderWidth(const LayerTreeImpl* tree_impl) {
return Scale(2, tree_impl);
}
// Other high-resolution tile borders are yellow.
SkColor DebugColors::ExtraHighResTileBorderColor() {
return SkColorSetARGB(100, 239, 231, 20);
}
int DebugColors::ExtraHighResTileBorderWidth(const LayerTreeImpl* tree_impl) {
return Scale(2, tree_impl);
}
// Other low-resolution tile borders are green.
SkColor DebugColors::ExtraLowResTileBorderColor() {
return SkColorSetARGB(100, 93, 186, 18);
}
int DebugColors::ExtraLowResTileBorderWidth(const LayerTreeImpl* tree_impl) {
return Scale(2, tree_impl);
}
// Missing tile borders are dark grey.
SkColor DebugColors::MissingTileBorderColor() {
return SkColorSetARGB(64, 64, 64, 0);
}
int DebugColors::MissingTileBorderWidth(const LayerTreeImpl* tree_impl) {
return Scale(1, tree_impl);
}
// Solid color tile borders are grey.
SkColor DebugColors::SolidColorTileBorderColor() {
return SkColorSetARGB(128, 128, 128, 128);
}
int DebugColors::SolidColorTileBorderWidth(const LayerTreeImpl* tree_impl) {
return Scale(1, tree_impl);
}
// OOM tile borders are red.
SkColor DebugColors::OOMTileBorderColor() {
return SkColorSetARGB(100, 255, 0, 0);
}
int DebugColors::OOMTileBorderWidth(const LayerTreeImpl* tree_impl) {
return Scale(1, tree_impl);
}
// Direct picture borders are chartreuse.
SkColor DebugColors::DirectPictureBorderColor() {
return SkColorSetARGB(255, 127, 255, 0);
}
int DebugColors::DirectPictureBorderWidth(const LayerTreeImpl* tree_impl) {
return Scale(1, tree_impl);
}
// Compressed tile borders are blue.
SkColor DebugColors::CompressedTileBorderColor() {
return SkColorSetARGB(100, 20, 20, 240);
}
int DebugColors::CompressedTileBorderWidth(const LayerTreeImpl* tree_impl) {
return Scale(2, tree_impl);
}
// ======= Checkerboard colors =======
// Non-debug checkerboards are grey.
SkColor DebugColors::DefaultCheckerboardColor() {
return SkColorSetRGB(241, 241, 241);
}
// Invalidated tiles get sky blue checkerboards.
SkColor DebugColors::InvalidatedTileCheckerboardColor() {
return SkColorSetRGB(128, 200, 245);
}
// Evicted tiles get pale red checkerboards.
SkColor DebugColors::EvictedTileCheckerboardColor() {
return SkColorSetRGB(255, 200, 200);
}
// ======= Debug rect colors =======
static SkColor FadedGreen(int initial_value, int step) {
DCHECK_GE(step, 0);
DCHECK_LE(step, DebugColors::kFadeSteps);
int value = step * initial_value / DebugColors::kFadeSteps;
return SkColorSetARGB(value, 0, 195, 0);
}
// Paint rects in green.
SkColor DebugColors::PaintRectBorderColor(int step) {
return FadedGreen(255, step);
}
int DebugColors::PaintRectBorderWidth() { return 2; }
SkColor DebugColors::PaintRectFillColor(int step) {
return FadedGreen(60, step);
}
// Property-changed rects in blue.
SkColor DebugColors::PropertyChangedRectBorderColor() {
return SkColorSetARGB(255, 0, 0, 255);
}
int DebugColors::PropertyChangedRectBorderWidth() { return 2; }
SkColor DebugColors::PropertyChangedRectFillColor() {
return SkColorSetARGB(30, 0, 0, 255);
}
// Surface damage rects in yellow-orange.
SkColor DebugColors::SurfaceDamageRectBorderColor() {
return SkColorSetARGB(255, 200, 100, 0);
}
int DebugColors::SurfaceDamageRectBorderWidth() { return 2; }
SkColor DebugColors::SurfaceDamageRectFillColor() {
return SkColorSetARGB(30, 200, 100, 0);
}
// Surface replica screen space rects in green.
SkColor DebugColors::ScreenSpaceLayerRectBorderColor() {
return SkColorSetARGB(255, 100, 200, 0);
}
int DebugColors::ScreenSpaceLayerRectBorderWidth() { return 2; }
SkColor DebugColors::ScreenSpaceLayerRectFillColor() {
return SkColorSetARGB(30, 100, 200, 0);
}
// Layer screen space rects in purple.
SkColor DebugColors::ScreenSpaceSurfaceReplicaRectBorderColor() {
return SkColorSetARGB(255, 100, 0, 200);
}
int DebugColors::ScreenSpaceSurfaceReplicaRectBorderWidth() { return 2; }
SkColor DebugColors::ScreenSpaceSurfaceReplicaRectFillColor() {
return SkColorSetARGB(10, 100, 0, 200);
}
// Touch-event-handler rects in yellow.
SkColor DebugColors::TouchEventHandlerRectBorderColor() {
return SkColorSetARGB(255, 239, 229, 60);
}
int DebugColors::TouchEventHandlerRectBorderWidth() { return 2; }
SkColor DebugColors::TouchEventHandlerRectFillColor() {
return SkColorSetARGB(30, 239, 229, 60);
}
// Wheel-event-handler rects in green.
SkColor DebugColors::WheelEventHandlerRectBorderColor() {
return SkColorSetARGB(255, 189, 209, 57);
}
int DebugColors::WheelEventHandlerRectBorderWidth() { return 2; }
SkColor DebugColors::WheelEventHandlerRectFillColor() {
return SkColorSetARGB(30, 189, 209, 57);
}
// Scroll-event-handler rects in teal.
SkColor DebugColors::ScrollEventHandlerRectBorderColor() {
return SkColorSetARGB(255, 24, 167, 181);
}
int DebugColors::ScrollEventHandlerRectBorderWidth() { return 2; }
SkColor DebugColors::ScrollEventHandlerRectFillColor() {
return SkColorSetARGB(30, 24, 167, 181);
}
// Non-fast-scrollable rects in orange.
SkColor DebugColors::NonFastScrollableRectBorderColor() {
return SkColorSetARGB(255, 238, 163, 59);
}
int DebugColors::NonFastScrollableRectBorderWidth() { return 2; }
SkColor DebugColors::NonFastScrollableRectFillColor() {
return SkColorSetARGB(30, 238, 163, 59);
}
// Animation bounds are lime-green.
SkColor DebugColors::LayerAnimationBoundsBorderColor() {
return SkColorSetARGB(255, 112, 229, 0);
}
int DebugColors::LayerAnimationBoundsBorderWidth() { return 2; }
SkColor DebugColors::LayerAnimationBoundsFillColor() {
return SkColorSetARGB(30, 112, 229, 0);
}
// Non-Painted rects in cyan.
SkColor DebugColors::NonPaintedFillColor() { return SK_ColorCYAN; }
// Missing picture rects in magenta.
SkColor DebugColors::MissingPictureFillColor() { return SK_ColorMAGENTA; }
// Missing resize invalidations are in salmon pink.
SkColor DebugColors::MissingResizeInvalidations() {
return SkColorSetARGB(255, 255, 155, 170);
}
// Picture borders in transparent blue.
SkColor DebugColors::PictureBorderColor() {
return SkColorSetARGB(100, 0, 0, 200);
}
// ======= HUD widget colors =======
SkColor DebugColors::HUDBackgroundColor() {
return SkColorSetARGB(208, 17, 17, 17);
}
SkColor DebugColors::HUDSeparatorLineColor() {
return SkColorSetARGB(64, 0, 255, 0);
}
SkColor DebugColors::HUDIndicatorLineColor() {
return SK_ColorYELLOW;
}
SkColor DebugColors::HUDTitleColor() {
return SkColorSetARGB(255, 232, 232, 232);
}
SkColor DebugColors::PlatformLayerTreeTextColor() { return SK_ColorRED; }
SkColor DebugColors::FPSDisplayTextAndGraphColor() {
return SK_ColorGREEN;
}
SkColor DebugColors::MemoryDisplayTextColor() {
return SK_ColorCYAN;
}
// Paint time display in green (similar to paint times in the WebInspector)
SkColor DebugColors::PaintTimeDisplayTextAndGraphColor() {
return SkColorSetRGB(75, 155, 55);
}
} // namespace cc