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

import("//flutter/impeller/tools/impeller.gni")

impeller_component("scene") {
  sources = [
    "animation/animation.cc",
    "animation/animation.h",
    "animation/animation_clip.cc",
    "animation/animation_clip.h",
    "animation/animation_player.cc",
    "animation/animation_player.h",
    "animation/property_resolver.cc",
    "animation/property_resolver.h",
    "camera.cc",
    "camera.h",
    "geometry.cc",
    "geometry.h",
    "material.cc",
    "material.h",
    "mesh.cc",
    "mesh.h",
    "node.cc",
    "node.h",
    "pipeline_key.h",
    "scene.cc",
    "scene.h",
    "scene_context.cc",
    "scene_context.h",
    "scene_encoder.cc",
    "scene_encoder.h",
    "skin.cc",
    "skin.h",
  ]

  public_deps = [
    "../renderer",
    "importer:conversions",
    "importer:importer_flatbuffers",
    "shaders",
  ]

  deps = [ "//flutter/fml" ]
}

impeller_component("scene_unittests") {
  testonly = true

  sources = [ "scene_unittests.cc" ]

  deps = [
    ":scene",
    "../fixtures",
    "../playground:playground_test",
    "//flutter/testing:testing_lib",
  ]
}
