# Copyright 2013 The Flutter Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

flutter_defines = [
  # Flutter always wants this https://github.com/flutter/flutter/issues/11402
  "SK_ENABLE_DUMP_GPU",

  # Remove software rasterizers to save some code size.
  "SK_FORCE_AAA",

  # Staging
  "SK_LEGACY_IGNORE_DRAW_VERTICES_BLEND_WITH_NO_SHADER",
  "SK_RESOLVE_FILTERS_BEFORE_RESTORE",
  "SK_DISABLE_LEGACY_METAL_BACKEND_SURFACE",

  # Fast low-precision software rendering isn't a priority for Flutter.
  "SK_DISABLE_LEGACY_SHADERCONTEXT",
  "SK_DISABLE_LOWP_RASTER_PIPELINE",
  "SK_FORCE_RASTER_PIPELINE_BLITTER",

  # When running Metal, ensure that command buffers are scheduled before
  # returning from submit.
  "SK_METAL_WAIT_UNTIL_SCHEDULED",
]

if (!is_fuchsia) {
  flutter_defines += [ "SK_DISABLE_EFFECT_DESERIALIZATION" ]
}
