chromium/skia/features.gni

# Copyright 2019 The Chromium Authors
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

import("//build/config/features.gni")
import("//printing/buildflags/buildflags.gni")

declare_args() {
  # Enable experimental Skia Graphite Dawn backend. Enabled on platforms where
  # the team has verified that at least basic rendering to the screen is
  # working.
  skia_use_dawn = is_mac || is_win ||
                  (is_android && target_cpu != "x86" && target_cpu != "x64") ||
                  (is_ios && use_blink) || (is_linux && !is_castos)

  # Enable experimental Skia Graphite Metal backend. Intended only for debugging
  # on non-official developer builds.
  skia_use_metal = (is_mac || (is_ios && use_blink)) && !is_official_build

  # Enable gtests using SkiaRenderer on Skia Graphite.
  enable_skia_graphite_gtests = is_mac || (is_ios && use_blink)
}

# Skia only needs to support GPU rasterization if we use the full Chromium
# rendering stack i.e. |use_blink| is true.
# TODO(crbug.com/40902173): Split out into separate enable_skia_ganesh flag.
skia_support_gpu = use_blink

# Skia Ganesh GL backend is always enabled on all platforms - applies only when
# GPU rasterization is enabled.
skia_use_gl = true

skia_support_pdf = use_blink && (enable_printing || enable_printing_tests)

# Skottie is not used on Android. To keep apk size small the skottie library is
# excluded from the binary. At the time this comment was written, it adds ~200KB
# to the APK.
skia_support_skottie = !is_android

# Skia needs XMP support for gainmap HDR image decoding in blink.
skia_support_xmp = use_blink