# Copyright 2014 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.

import("//build/config/ui.gni")

source_set("surfaces") {
  sources = [
    "display_compositor.cc",
    "display_compositor.h",
    "display_output_surface.cc",
    "display_output_surface.h",
  ]

  deps = [
    "//base",
    "//cc",
    "//cc/ipc:interfaces",
    "//cc/surfaces",
    "//components/display_compositor",
    "//gpu/command_buffer/client",
    "//gpu/command_buffer/client:gles2_interface",
    "//gpu/ipc:command_buffer",
    "//ui/display/types",
    "//ui/gfx",
    "//ui/gfx/geometry/mojo",
  ]

  if (use_ozone) {
    sources += [
      "display_output_surface_ozone.cc",
      "display_output_surface_ozone.h",
    ]
    deps += [
      "//gpu/command_buffer/common",
      "//ui/gl",
    ]
  }
}
