blob: fb54b2e21b29f0f16d47ca007978b2e4fb083884 [file] [log] [blame]
# Copyright 2017 The Fuchsia 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("//third_party/flatbuffers/flatbuffer.gni")
declare_args() {
scenic_ignore_vsync = false
}
config("common_include_dirs") {
include_dirs = [
"//garnet",
"//third_party/glm",
]
}
config("swapchain") {
defines = [ "SCENIC_IGNORE_VSYNC=$scenic_ignore_vsync" ]
}
source_set("common_gfx_config_source_set") {
visibility = [
":gfx_always_optimized",
":gfx",
]
}
# These sources (all part of :gfx) are especially performance-sensitive, so we
# apply full optimization in debug as well as --release.
source_set("gfx_always_optimized") {
visibility = [ ":gfx" ]
sources = [
"util/image_formats.cc",
"util/image_formats.h",
]
cflags = [
# Always optimize regardless of debug or --release.
"-O3",
]
public_configs = [ ":common_include_dirs" ]
public_deps = [
"//src/ui/lib/escher",
]
deps = [
"//garnet/lib/ui/yuv",
"//sdk/lib/images/cpp",
]
}
source_set("gfx") {
sources = [
"engine/engine.cc",
"engine/engine.h",
"engine/engine_renderer.cc",
"engine/engine_renderer.h",
"engine/engine_renderer_visitor.cc",
"engine/engine_renderer_visitor.h",
"engine/gfx_command_applier.cc",
"engine/gfx_command_applier.h",
"engine/hardware_layer_assignment.cc",
"engine/hardware_layer_assignment.h",
"engine/hit.h",
"engine/hit_tester.cc",
"engine/hit_tester.h",
"engine/resource_linker.cc",
"engine/resource_linker.h",
"engine/resource_map.cc",
"engine/resource_map.h",
"engine/scene_graph.cc",
"engine/scene_graph.h",
"engine/session.cc",
"engine/session.h",
"engine/session_handler.cc",
"engine/session_handler.h",
"engine/session_manager.cc",
"engine/session_manager.h",
"engine/unresolved_imports.cc",
"engine/unresolved_imports.h",
"gfx_system.cc",
"gfx_system.h",
"resources/buffer.cc",
"resources/buffer.h",
"resources/camera.cc",
"resources/camera.h",
"resources/compositor/compositor.cc",
"resources/compositor/compositor.h",
"resources/compositor/display_compositor.cc",
"resources/compositor/display_compositor.h",
"resources/compositor/layer.cc",
"resources/compositor/layer.h",
"resources/compositor/layer_stack.cc",
"resources/compositor/layer_stack.h",
"resources/dump_visitor.cc",
"resources/dump_visitor.h",
"resources/gpu_image.cc",
"resources/gpu_image.h",
"resources/host_image.cc",
"resources/host_image.h",
"resources/image.cc",
"resources/image.h",
"resources/image_base.cc",
"resources/image_base.h",
"resources/image_pipe.cc",
"resources/image_pipe.h",
"resources/image_pipe_handler.cc",
"resources/image_pipe_handler.h",
"resources/import.cc",
"resources/import.h",
"resources/lights/ambient_light.cc",
"resources/lights/ambient_light.h",
"resources/lights/directional_light.cc",
"resources/lights/directional_light.h",
"resources/lights/light.cc",
"resources/lights/light.h",
"resources/lights/point_light.cc",
"resources/lights/point_light.h",
"resources/material.cc",
"resources/material.h",
"resources/memory.cc",
"resources/memory.h",
"resources/nodes/entity_node.cc",
"resources/nodes/entity_node.h",
"resources/nodes/node.cc",
"resources/nodes/node.h",
"resources/nodes/opacity_node.cc",
"resources/nodes/opacity_node.h",
"resources/nodes/scene.cc",
"resources/nodes/scene.h",
"resources/nodes/shape_node.cc",
"resources/nodes/shape_node.h",
"resources/nodes/traversal.h",
"resources/nodes/variable_binding.cc",
"resources/nodes/variable_binding.h",
"resources/nodes/view_node.cc",
"resources/nodes/view_node.h",
"resources/renderers/renderer.cc",
"resources/renderers/renderer.h",
"resources/resource.cc",
"resources/resource.h",
"resources/resource_context.h",
"resources/resource_type_info.h",
"resources/resource_visitor.cc",
"resources/resource_visitor.h",
"resources/shapes/circle_shape.cc",
"resources/shapes/circle_shape.h",
"resources/shapes/mesh_shape.cc",
"resources/shapes/mesh_shape.h",
"resources/shapes/planar_shape.cc",
"resources/shapes/planar_shape.h",
"resources/shapes/rectangle_shape.cc",
"resources/shapes/rectangle_shape.h",
"resources/shapes/rounded_rectangle_shape.cc",
"resources/shapes/rounded_rectangle_shape.h",
"resources/shapes/shape.cc",
"resources/shapes/shape.h",
"resources/snapshot/serializer.h",
"resources/snapshot/snapshotter.cc",
"resources/snapshot/snapshotter.h",
"resources/snapshot/version.h",
"resources/stereo_camera.cc",
"resources/stereo_camera.h",
"resources/variable.cc",
"resources/variable.h",
"resources/view.cc",
"resources/view.h",
"resources/view_holder.cc",
"resources/view_holder.h",
"screenshotter.cc",
"screenshotter.h",
"swapchain/display_swapchain.cc",
"swapchain/display_swapchain.h",
"swapchain/swapchain.h",
"swapchain/swapchain_factory.cc",
"swapchain/swapchain_factory.h",
]
public_configs = [ ":common_include_dirs" ]
configs += [ ":swapchain" ]
public_deps = [
":display",
":frame_scheduler",
":gfx_always_optimized",
":snapshot_fbs",
":util",
"//garnet/lib/ui/scenic",
"//garnet/public/lib/fostr/fidl/fuchsia.ui.gfx",
"//garnet/public/lib/fsl",
"//garnet/public/lib/ui/geometry/cpp",
"//garnet/public/lib/vulkan",
"//sdk/fidl/fuchsia.math",
"//sdk/fidl/fuchsia.ui.gfx",
"//sdk/fidl/fuchsia.ui.views",
"//sdk/lib/fidl/cpp",
"//sdk/lib/sys/cpp",
"//src/lib/fxl",
"//zircon/public/lib/fit",
]
deps = [
":object_linker",
"//garnet/lib/ui/gfx:validate_eventpair",
"//garnet/lib/ui/scenic/util",
"//garnet/public/lib/inspect",
"//garnet/public/lib/ui/scenic/cpp",
"//src/ui/lib/escher/util:check_vulkan_support",
"//zircon/public/fidl/fuchsia-sysmem",
"//zircon/public/lib/fbl",
"//zircon/public/lib/fzl",
"//zircon/public/lib/trace",
]
}
source_set("object_linker") {
sources = [
"engine/object_linker.cc",
"engine/object_linker.h",
]
public_deps = [
"//garnet/lib/ui/scenic/util",
"//garnet/public/lib/fsl",
"//src/lib/fxl",
"//zircon/public/lib/fit",
]
}
source_set("display") {
sources = [
"displays/color_transform.h",
"displays/display.cc",
"displays/display.h",
"displays/display_manager.cc",
"displays/display_manager.h",
"displays/display_watcher.cc",
"displays/display_watcher.h",
]
public_deps = [
"//zircon/public/fidl/fuchsia-hardware-display",
"//zircon/public/fidl/fuchsia-hardware-display:fuchsia-hardware-display_c",
]
deps = [
":util",
# TODO(SCN-1398): For displayOwned/NotOwnedSignal.
"//sdk/fidl/fuchsia.ui.scenic",
"//src/lib/fxl",
"//zircon/public/lib/fbl",
"//zircon/public/lib/fzl",
"//zircon/public/lib/trace",
]
}
source_set("frame_scheduler") {
sources = [
# TODO(SCN-1398): Move files out of engine/.
"engine/default_frame_scheduler.cc",
"engine/default_frame_scheduler.h",
"engine/duration_predictor.cc",
"engine/duration_predictor.h",
"engine/frame_predictor.cc",
"engine/frame_predictor.h",
"engine/frame_scheduler.h",
"engine/frame_timings.cc",
"engine/frame_timings.h",
# TODO(SCN-1398): IDs don't belong here, but this will work until we factor
# out another source_set that needs IDs but not frame_scheduler.
"id.cc",
"id.h",
]
deps = [
":display",
"//garnet/public/lib/inspect",
"//sdk/fidl/fuchsia.images",
"//src/lib/fxl",
# TODO(SCN-1398): FrameTimings inherits from escher::Reffable.
"//src/ui/lib/escher",
]
}
source_set("util") {
sources = [
"util/event_timestamper.cc",
"util/event_timestamper.h",
"util/time.h",
"util/unwrap.h",
"util/wrap.h",
]
deps = [
"//src/lib/fxl",
# TODO(SCN-1398): Needed by wrap/unwrap. Move to separate source_set?
"//src/ui/lib/escher",
# TODO(SCN-1398): Needed by EventTimestamper. Move to separate source_set?
"//zircon/public/fidl/fuchsia-scheduler",
]
}
source_set("validate_eventpair") {
sources = [
"util/validate_eventpair.cc",
"util/validate_eventpair.h",
]
deps = [
"//sdk/fidl/fuchsia.ui.views",
"//zircon/public/lib/zx",
"//zircon/system/public",
]
}
flatbuffer("snapshot_fbs") {
sources = [
"resources/snapshot/snapshot.fbs",
]
}