Home | History | Annotate | Download | only in debug
      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
      3 // found in the LICENSE file.
      4 
      5 #include "cc/debug/debug_colors.h"
      6 
      7 #include "cc/trees/layer_tree_impl.h"
      8 
      9 namespace cc {
     10 
     11 static float Scale(float width, const LayerTreeImpl* tree_impl) {
     12   return width * (tree_impl ? tree_impl->device_scale_factor() : 1);
     13 }
     14 
     15 // ======= Layer border colors =======
     16 
     17 // Tiled content layers are orange.
     18 SkColor DebugColors::TiledContentLayerBorderColor() {
     19   return SkColorSetARGB(128, 255, 128, 0);
     20 }
     21 int DebugColors::TiledContentLayerBorderWidth(const LayerTreeImpl* tree_impl) {
     22   return Scale(2, tree_impl);
     23 }
     24 
     25 // Image layers are olive.
     26 SkColor DebugColors::ImageLayerBorderColor() {
     27   return SkColorSetARGB(128, 128, 128, 0);
     28 }
     29 int DebugColors::ImageLayerBorderWidth(const LayerTreeImpl* tree_impl) {
     30   return Scale(2, tree_impl);
     31 }
     32 
     33 // Non-tiled content layers area green.
     34 SkColor DebugColors::ContentLayerBorderColor() {
     35   return SkColorSetARGB(128, 0, 128, 32);
     36 }
     37 int DebugColors::ContentLayerBorderWidth(const LayerTreeImpl* tree_impl) {
     38   return Scale(2, tree_impl);
     39 }
     40 
     41 // Masking layers are pale blue and wide.
     42 SkColor DebugColors::MaskingLayerBorderColor() {
     43   return SkColorSetARGB(48, 128, 255, 255);
     44 }
     45 int DebugColors::MaskingLayerBorderWidth(const LayerTreeImpl* tree_impl) {
     46   return Scale(20, tree_impl);
     47 }
     48 
     49 // Other container layers are yellow.
     50 SkColor DebugColors::ContainerLayerBorderColor() {
     51   return SkColorSetARGB(192, 255, 255, 0);
     52 }
     53 int DebugColors::ContainerLayerBorderWidth(const LayerTreeImpl* tree_impl) {
     54   return Scale(2, tree_impl);
     55 }
     56 
     57 // Render surfaces are blue.
     58 SkColor DebugColors::SurfaceBorderColor() {
     59   return SkColorSetARGB(100, 0, 0, 255);
     60 }
     61 int DebugColors::SurfaceBorderWidth(const LayerTreeImpl* tree_impl) {
     62   return Scale(2, tree_impl);
     63 }
     64 
     65 // Replicas of render surfaces are purple.
     66 SkColor DebugColors::SurfaceReplicaBorderColor() {
     67   return SkColorSetARGB(100, 160, 0, 255);
     68 }
     69 int DebugColors::SurfaceReplicaBorderWidth(const LayerTreeImpl* tree_impl) {
     70   return Scale(2, tree_impl);
     71 }
     72 
     73 // ======= Tile colors =======
     74 
     75 // High-res tile borders are cyan.
     76 SkColor DebugColors::HighResTileBorderColor() {
     77   return SkColorSetARGB(100, 80, 200, 200);
     78 }
     79 int DebugColors::HighResTileBorderWidth(const LayerTreeImpl* tree_impl) {
     80   return Scale(1, tree_impl);
     81 }
     82 
     83 // Low-res tile borders are purple.
     84 SkColor DebugColors::LowResTileBorderColor() {
     85   return SkColorSetARGB(100, 212, 83, 192);
     86 }
     87 int DebugColors::LowResTileBorderWidth(const LayerTreeImpl* tree_impl) {
     88   return Scale(2, tree_impl);
     89 }
     90 
     91 // Other high-resolution tile borders are yellow.
     92 SkColor DebugColors::ExtraHighResTileBorderColor() {
     93   return SkColorSetARGB(100, 239, 231, 20);
     94 }
     95 int DebugColors::ExtraHighResTileBorderWidth(const LayerTreeImpl* tree_impl) {
     96   return Scale(2, tree_impl);
     97 }
     98 
     99 // Other low-resolution tile borders are green.
    100 SkColor DebugColors::ExtraLowResTileBorderColor() {
    101   return SkColorSetARGB(100, 93, 186, 18);
    102 }
    103 int DebugColors::ExtraLowResTileBorderWidth(const LayerTreeImpl* tree_impl) {
    104   return Scale(2, tree_impl);
    105 }
    106 
    107 // Missing tile borders are red.
    108 SkColor DebugColors::MissingTileBorderColor() {
    109   return SkColorSetARGB(100, 255, 0, 0);
    110 }
    111 int DebugColors::MissingTileBorderWidth(const LayerTreeImpl* tree_impl) {
    112   return Scale(1, tree_impl);
    113 }
    114 
    115 // Culled tile borders are brown.
    116 SkColor DebugColors::CulledTileBorderColor() {
    117   return SkColorSetARGB(120, 160, 100, 0);
    118 }
    119 int DebugColors::CulledTileBorderWidth(const LayerTreeImpl* tree_impl) {
    120   return Scale(1, tree_impl);
    121 }
    122 
    123 // Solid color tile borders are grey.
    124 SkColor DebugColors::SolidColorTileBorderColor() {
    125   return SkColorSetARGB(128, 128, 128, 128);
    126 }
    127 int DebugColors::SolidColorTileBorderWidth(const LayerTreeImpl* tree_impl) {
    128   return Scale(1, tree_impl);
    129 }
    130 
    131 // Picture tile borders are dark grey.
    132 SkColor DebugColors::PictureTileBorderColor() {
    133   return SkColorSetARGB(64, 64, 64, 0);
    134 }
    135 int DebugColors::PictureTileBorderWidth(const LayerTreeImpl* tree_impl) {
    136   return Scale(1, tree_impl);
    137 }
    138 
    139 // Direct picture borders are chartreuse.
    140 SkColor DebugColors::DirectPictureBorderColor() {
    141   return SkColorSetARGB(255, 127, 255, 0);
    142 }
    143 int DebugColors::DirectPictureBorderWidth(const LayerTreeImpl* tree_impl) {
    144   return Scale(1, tree_impl);
    145 }
    146 
    147 // ======= Checkerboard colors =======
    148 
    149 // Non-debug checkerboards are grey.
    150 SkColor DebugColors::DefaultCheckerboardColor() {
    151   return SkColorSetRGB(241, 241, 241);
    152 }
    153 
    154 // Invalidated tiles get sky blue checkerboards.
    155 SkColor DebugColors::InvalidatedTileCheckerboardColor() {
    156   return SkColorSetRGB(128, 200, 245);
    157 }
    158 
    159 // Evicted tiles get pale red checkerboards.
    160 SkColor DebugColors::EvictedTileCheckerboardColor() {
    161   return SkColorSetRGB(255, 200, 200);
    162 }
    163 
    164 // ======= Debug rect colors =======
    165 
    166 // Paint rects in red.
    167 SkColor DebugColors::PaintRectBorderColor() {
    168   return SkColorSetARGB(255, 255, 0, 0);
    169 }
    170 int DebugColors::PaintRectBorderWidth() { return 2; }
    171 SkColor DebugColors::PaintRectFillColor() {
    172   return SkColorSetARGB(30, 255, 0, 0);
    173 }
    174 
    175 // Property-changed rects in blue.
    176 SkColor DebugColors::PropertyChangedRectBorderColor() {
    177   return SkColorSetARGB(255, 0, 0, 255);
    178 }
    179 int DebugColors::PropertyChangedRectBorderWidth() { return 2; }
    180 SkColor DebugColors::PropertyChangedRectFillColor() {
    181   return SkColorSetARGB(30, 0, 0, 255);
    182 }
    183 
    184 // Surface damage rects in yellow-orange.
    185 SkColor DebugColors::SurfaceDamageRectBorderColor() {
    186   return SkColorSetARGB(255, 200, 100, 0);
    187 }
    188 int DebugColors::SurfaceDamageRectBorderWidth() { return 2; }
    189 SkColor DebugColors::SurfaceDamageRectFillColor() {
    190   return SkColorSetARGB(30, 200, 100, 0);
    191 }
    192 
    193 // Surface replica screen space rects in green.
    194 SkColor DebugColors::ScreenSpaceLayerRectBorderColor() {
    195   return SkColorSetARGB(255, 100, 200, 0);
    196 }
    197 int DebugColors::ScreenSpaceLayerRectBorderWidth() { return 2; }
    198 SkColor DebugColors::ScreenSpaceLayerRectFillColor() {
    199   return SkColorSetARGB(30, 100, 200, 0);
    200 }
    201 
    202 // Layer screen space rects in purple.
    203 SkColor DebugColors::ScreenSpaceSurfaceReplicaRectBorderColor() {
    204   return SkColorSetARGB(255, 100, 0, 200);
    205 }
    206 int DebugColors::ScreenSpaceSurfaceReplicaRectBorderWidth() { return 2; }
    207 SkColor DebugColors::ScreenSpaceSurfaceReplicaRectFillColor() {
    208   return SkColorSetARGB(10, 100, 0, 200);
    209 }
    210 
    211 // Occluding rects in pink.
    212 SkColor DebugColors::OccludingRectBorderColor() {
    213   return SkColorSetARGB(255, 245, 136, 255);
    214 }
    215 int DebugColors::OccludingRectBorderWidth() { return 2; }
    216 SkColor DebugColors::OccludingRectFillColor() {
    217   return SkColorSetARGB(10, 245, 136, 255);
    218 }
    219 
    220 // Non-Occluding rects in a reddish color.
    221 SkColor DebugColors::NonOccludingRectBorderColor() {
    222   return SkColorSetARGB(255, 200, 0, 100);
    223 }
    224 int DebugColors::NonOccludingRectBorderWidth() { return 2; }
    225 SkColor DebugColors::NonOccludingRectFillColor() {
    226   return SkColorSetARGB(10, 200, 0, 100);
    227 }
    228 
    229 // Touch-event-handler rects in yellow.
    230 SkColor DebugColors::TouchEventHandlerRectBorderColor() {
    231   return SkColorSetARGB(255, 239, 229, 60);
    232 }
    233 int DebugColors::TouchEventHandlerRectBorderWidth() { return 2; }
    234 SkColor DebugColors::TouchEventHandlerRectFillColor() {
    235   return SkColorSetARGB(30, 239, 229, 60);
    236 }
    237 
    238 // Wheel-event-handler rects in green.
    239 SkColor DebugColors::WheelEventHandlerRectBorderColor() {
    240   return SkColorSetARGB(255, 189, 209, 57);
    241 }
    242 int DebugColors::WheelEventHandlerRectBorderWidth() { return 2; }
    243 SkColor DebugColors::WheelEventHandlerRectFillColor() {
    244   return SkColorSetARGB(30, 189, 209, 57);
    245 }
    246 
    247 // Non-fast-scrollable rects in orange.
    248 SkColor DebugColors::NonFastScrollableRectBorderColor() {
    249   return SkColorSetARGB(255, 238, 163, 59);
    250 }
    251 int DebugColors::NonFastScrollableRectBorderWidth() { return 2; }
    252 SkColor DebugColors::NonFastScrollableRectFillColor() {
    253   return SkColorSetARGB(30, 238, 163, 59);
    254 }
    255 
    256 // Animation bounds are lime-green.
    257 SkColor DebugColors::LayerAnimationBoundsBorderColor() {
    258   return SkColorSetARGB(255, 112, 229, 0);
    259 }
    260 int DebugColors::LayerAnimationBoundsBorderWidth() { return 2; }
    261 SkColor DebugColors::LayerAnimationBoundsFillColor() {
    262   return SkColorSetARGB(30, 112, 229, 0);
    263 }
    264 
    265 // Non-Painted rects in cyan.
    266 SkColor DebugColors::NonPaintedFillColor() { return SK_ColorCYAN; }
    267 
    268 // Missing picture rects in magenta.
    269 SkColor DebugColors::MissingPictureFillColor() { return SK_ColorMAGENTA; }
    270 
    271 // Picture borders in transparent blue.
    272 SkColor DebugColors::PictureBorderColor() {
    273   return SkColorSetARGB(100, 0, 0, 200);
    274 }
    275 
    276 // ======= HUD widget colors =======
    277 
    278 SkColor DebugColors::HUDBackgroundColor() {
    279   return SkColorSetARGB(215, 17, 17, 17);
    280 }
    281 SkColor DebugColors::HUDSeparatorLineColor() {
    282   return SkColorSetARGB(255, 130, 130, 130);
    283 }
    284 SkColor DebugColors::HUDIndicatorLineColor() {
    285   return SkColorSetARGB(255, 80, 80, 80);
    286 }
    287 
    288 SkColor DebugColors::PlatformLayerTreeTextColor() { return SK_ColorRED; }
    289 SkColor DebugColors::FPSDisplayTextAndGraphColor() { return SK_ColorRED; }
    290 SkColor DebugColors::MemoryDisplayTextColor() {
    291   return SkColorSetARGB(255, 220, 220, 220);
    292 }
    293 
    294 // Paint time display in green (similar to paint times in the WebInspector)
    295 SkColor DebugColors::PaintTimeDisplayTextAndGraphColor() {
    296   return SkColorSetRGB(75, 155, 55);
    297 }
    298 
    299 }  // namespace cc
    300