| // Copyright (c) 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 "cc/switches.h" |
| |
| #include "base/command_line.h" |
| |
| namespace cc { |
| namespace switches { |
| |
| // On platforms where checkerboards are used, prefer background colors instead |
| // of checkerboards. |
| const char kBackgroundColorInsteadOfCheckerboard[] = |
| "background-color-instead-of-checkerboard"; |
| |
| const char kDisableThreadedAnimation[] = "disable-threaded-animation"; |
| |
| // Send a message for every frame from the impl thread to the parent compositor. |
| const char kEnableCompositorFrameMessage[] = "enable-compositor-frame-message"; |
| |
| // Paint content on the main thread instead of the compositor thread. |
| // Overrides the kEnableImplSidePainting flag. |
| const char kDisableImplSidePainting[] = "disable-impl-side-painting"; |
| |
| // Paint content on the compositor thread instead of the main thread. |
| const char kEnableImplSidePainting[] = "enable-impl-side-painting"; |
| |
| const char kEnablePartialSwap[] = "enable-partial-swap"; |
| |
| const char kEnablePerTilePainting[] = "enable-per-tile-painting"; |
| |
| // Try to finish display pipeline before vsync tick |
| const char kEnableRightAlignedScheduling[] = "enable-right-aligned-scheduling"; |
| |
| const char kEnableTopControlsPositionCalculation[] = |
| "enable-top-controls-position-calculation"; |
| |
| // Enable solid tile color, transparent tile, and cheapness prediction metrics. |
| const char kEnablePredictionBenchmarking[] = "enable-prediction-benchmarking"; |
| |
| // The height of the movable top controls. |
| const char kTopControlsHeight[] = "top-controls-height"; |
| |
| // Percentage of the top controls need to be hidden before they will auto hide. |
| const char kTopControlsHideThreshold[] = "top-controls-hide-threshold"; |
| |
| // Percentage of the top controls need to be shown before they will auto show. |
| const char kTopControlsShowThreshold[] = "top-controls-show-threshold"; |
| |
| // Number of worker threads used to rasterize content. |
| const char kNumRasterThreads[] = "num-raster-threads"; |
| |
| // Show rects in the HUD around layers whose properties have changed. |
| const char kShowPropertyChangedRects[] = "show-property-changed-rects"; |
| |
| // Show rects in the HUD around damage as it is recorded into each render |
| // surface. |
| const char kShowSurfaceDamageRects[] = "show-surface-damage-rects"; |
| |
| // Show rects in the HUD around the screen-space transformed bounds of every |
| // layer. |
| const char kShowScreenSpaceRects[] = "show-screenspace-rects"; |
| |
| // Show rects in the HUD around the screen-space transformed bounds of every |
| // layer's replica, when they have one. |
| const char kShowReplicaScreenSpaceRects[] = "show-replica-screenspace-rects"; |
| |
| // Show rects in the HUD wherever something is known to be drawn opaque and is |
| // considered occluding the pixels behind it. |
| const char kShowOccludingRects[] = "show-occluding-rects"; |
| |
| // Show rects in the HUD wherever something is not known to be drawn opaque and |
| // is not considered to be occluding the pixels behind it. |
| const char kShowNonOccludingRects[] = "show-nonoccluding-rects"; |
| |
| // Show metrics about overdraw in about:tracing recordings, such as the number |
| // of pixels culled, and the number of pixels drawn, for each frame. |
| const char kTraceOverdraw[] = "trace-overdraw"; |
| |
| // Logs all rendered frames. |
| const char kTraceAllRenderedFrames[] = "trace-all-rendered-frames"; |
| |
| // Re-rasters everything multiple times to simulate a much slower machine. |
| // Give a scale factor to cause raster to take that many times longer to |
| // complete, such as --slow-down-raster-scale-factor=25. |
| const char kSlowDownRasterScaleFactor[] = "slow-down-raster-scale-factor"; |
| |
| // Schedule rasterization jobs according to their estimated processing cost. |
| const char kUseCheapnessEstimator[] = "use-cheapness-estimator"; |
| |
| // Predict whether the tile will be either solid color or transparent. |
| const char kUseColorEstimator[] = "use-color-estimator"; |
| |
| // The scale factor for low resolution tile contents. |
| const char kLowResolutionContentsScaleFactor[] = |
| "low-resolution-contents-scale-factor"; |
| |
| // Causes the compositor to render to textures which are then sent to the parent |
| // through the texture mailbox mechanism. |
| // Requires --enable-compositor-frame-message. |
| const char kCompositeToMailbox[] = "composite-to-mailbox"; |
| |
| bool IsImplSidePaintingEnabled() { |
| const CommandLine& command_line = *CommandLine::ForCurrentProcess(); |
| |
| if (command_line.HasSwitch(cc::switches::kDisableImplSidePainting)) |
| return false; |
| else if (command_line.HasSwitch(cc::switches::kEnableImplSidePainting)) |
| return true; |
| |
| #if defined(OS_ANDROID) |
| return true; |
| #else |
| return false; |
| #endif |
| } |
| |
| } // namespace switches |
| } // namespace cc |