# Copyright 2017 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") import("//components/viz/viz.gni") import("//gpu/vulkan/features.gni") config("viz_service_implementation") { } viz_component("service") { sources = [ "display/bsp_tree.cc", "display/bsp_tree.h", "display/bsp_walk_action.cc", "display/bsp_walk_action.h", "display/ca_layer_overlay.cc", "display/ca_layer_overlay.h", "display/color_lut_cache.cc", "display/color_lut_cache.h", "display/dc_layer_overlay.cc", "display/dc_layer_overlay.h", "display/direct_renderer.cc", "display/direct_renderer.h", "display/display.cc", "display/display.h", "display/display_client.h", "display/display_scheduler.cc", "display/display_scheduler.h", "display/draw_polygon.cc", "display/draw_polygon.h", "display/dynamic_geometry_binding.cc", "display/dynamic_geometry_binding.h", "display/geometry_binding.cc", "display/geometry_binding.h", "display/gl_renderer.cc", "display/gl_renderer.h", "display/gl_renderer_copier.cc", "display/gl_renderer_copier.h", "display/gl_renderer_draw_cache.cc", "display/gl_renderer_draw_cache.h", "display/layer_quad.cc", "display/layer_quad.h", "display/output_surface.cc", "display/output_surface.h", "display/output_surface_client.h", "display/output_surface_frame.cc", "display/output_surface_frame.h", "display/overlay_candidate_validator.h", "display/overlay_processor.cc", "display/overlay_processor.h", "display/overlay_strategy_fullscreen.cc", "display/overlay_strategy_fullscreen.h", "display/overlay_strategy_single_on_top.cc", "display/overlay_strategy_single_on_top.h", "display/overlay_strategy_underlay.cc", "display/overlay_strategy_underlay.h", "display/overlay_strategy_underlay_cast.cc", "display/overlay_strategy_underlay_cast.h", "display/program_binding.cc", "display/program_binding.h", "display/shader.cc", "display/shader.h", "display/skia_renderer.cc", "display/skia_renderer.h", "display/software_output_device.cc", "display/software_output_device.h", "display/software_renderer.cc", "display/software_renderer.h", "display/static_geometry_binding.cc", "display/static_geometry_binding.h", "display/surface_aggregator.cc", "display/surface_aggregator.h", "display/texture_mailbox_deleter.cc", "display/texture_mailbox_deleter.h", "display_embedder/buffer_queue.cc", "display_embedder/buffer_queue.h", "display_embedder/compositor_overlay_candidate_validator.h", "display_embedder/display_output_surface.cc", "display_embedder/display_output_surface.h", "display_embedder/display_provider.h", "display_embedder/gpu_display_provider.cc", "display_embedder/gpu_display_provider.h", "display_embedder/in_process_gpu_memory_buffer_manager.cc", "display_embedder/in_process_gpu_memory_buffer_manager.h", "display_embedder/server_shared_bitmap_manager.cc", "display_embedder/server_shared_bitmap_manager.h", "display_embedder/shared_bitmap_allocation_notifier_impl.cc", "display_embedder/shared_bitmap_allocation_notifier_impl.h", "frame_sinks/compositor_frame_sink_impl.cc", "frame_sinks/compositor_frame_sink_impl.h", "frame_sinks/compositor_frame_sink_support.cc", "frame_sinks/compositor_frame_sink_support.h", "frame_sinks/compositor_frame_sink_support_manager.h", "frame_sinks/direct_layer_tree_frame_sink.cc", "frame_sinks/direct_layer_tree_frame_sink.h", "frame_sinks/frame_sink_manager_client.h", "frame_sinks/frame_sink_manager_impl.cc", "frame_sinks/frame_sink_manager_impl.h", "frame_sinks/primary_begin_frame_source.cc", "frame_sinks/primary_begin_frame_source.h", "frame_sinks/referenced_surface_tracker.cc", "frame_sinks/referenced_surface_tracker.h", "frame_sinks/root_compositor_frame_sink_impl.cc", "frame_sinks/root_compositor_frame_sink_impl.h", "frame_sinks/surface_resource_holder.cc", "frame_sinks/surface_resource_holder.h", "frame_sinks/surface_resource_holder_client.h", "gl/gpu_service_impl.cc", "gl/gpu_service_impl.h", "hit_test/hit_test_aggregator.cc", "hit_test/hit_test_aggregator.h", "hit_test/hit_test_aggregator_delegate.h", "hit_test/hit_test_manager.cc", "hit_test/hit_test_manager.h", "surfaces/direct_surface_reference_factory.cc", "surfaces/direct_surface_reference_factory.h", "surfaces/surface.cc", "surfaces/surface.h", "surfaces/surface_client.h", "surfaces/surface_deadline_client.h", "surfaces/surface_dependency_deadline.cc", "surfaces/surface_dependency_deadline.h", "surfaces/surface_dependency_tracker.cc", "surfaces/surface_dependency_tracker.h", "surfaces/surface_hittest.cc", "surfaces/surface_hittest.h", "surfaces/surface_hittest_delegate.h", "surfaces/surface_manager.cc", "surfaces/surface_manager.h", "surfaces/surface_reference.cc", "surfaces/surface_reference.h", "viz_service_export.h", ] defines = [ "VIZ_SERVICE_IMPLEMENTATION" ] configs = [ "//build/config/compiler:no_size_t_to_int_warning" ] deps = [ "//cc/paint", "//components/viz/common", # Note that dependency on //gpu/ipc/client is for GpuMemoryBufferImpl. This # dependency should not be in public_deps. "//gpu/ipc/client", "//gpu/ipc/service", "//gpu/vulkan:features", "//media", "//media/gpu/ipc/service", "//media/mojo/services", "//services/ui/gpu/interfaces", "//skia", "//ui/display/types", ] public_deps = [ "//base", "//cc", "//cc/debug", "//gpu/command_buffer/client:gles2_interface", "//gpu/ipc:command_buffer", "//services/viz/privileged/interfaces/compositing", "//services/viz/public/interfaces", "//ui/gfx", "//ui/gfx/geometry", "//ui/latency", ] if (is_mac) { sources += [ "display_embedder/compositor_overlay_candidate_validator_mac.h", "display_embedder/compositor_overlay_candidate_validator_mac.mm", ] } if (is_android) { sources += [ "display_embedder/compositor_overlay_candidate_validator_android.cc", "display_embedder/compositor_overlay_candidate_validator_android.h", ] } if (use_ozone) { sources += [ "display_embedder/compositor_overlay_candidate_validator_ozone.cc", "display_embedder/compositor_overlay_candidate_validator_ozone.h", "display_embedder/display_output_surface_ozone.cc", "display_embedder/display_output_surface_ozone.h", ] public_deps += [ "//ui/ozone" ] } if (is_win) { sources += [ "display_embedder/compositor_overlay_candidate_validator_win.cc", "display_embedder/compositor_overlay_candidate_validator_win.h", ] } if (enable_vulkan) { sources += [ "display/vulkan_renderer.cc", "display/vulkan_renderer.h", ] deps += [ "//gpu/vulkan" ] } } viz_source_set("unit_tests") { testonly = true sources = [ "display/bsp_tree_unittest.cc", "display/copy_output_scaling_pixeltest.cc", "display/display_scheduler_unittest.cc", "display/display_unittest.cc", "display/draw_polygon_unittest.cc", "display/gl_renderer_copier_pixeltest.cc", "display/gl_renderer_copier_unittest.cc", "display/gl_renderer_unittest.cc", "display/layer_quad_unittest.cc", "display/overlay_unittest.cc", "display/renderer_pixeltest.cc", "display/shader_unittest.cc", "display/software_renderer_unittest.cc", "display/surface_aggregator_pixeltest.cc", "display/surface_aggregator_unittest.cc", "display/texture_mailbox_deleter_unittest.cc", "display_embedder/buffer_queue_unittest.cc", "display_embedder/server_shared_bitmap_manager_unittest.cc", "frame_sinks/compositor_frame_sink_support_unittest.cc", "frame_sinks/direct_layer_tree_frame_sink_unittest.cc", "frame_sinks/frame_sink_manager_unittest.cc", "frame_sinks/referenced_surface_tracker_unittest.cc", "frame_sinks/surface_references_unittest.cc", "frame_sinks/surface_synchronization_unittest.cc", "gl/gpu_service_impl_unittest.cc", "hit_test/hit_test_aggregator_unittest.cc", "surfaces/surface_hittest_unittest.cc", "surfaces/surface_unittest.cc", ] if (!use_aura && !is_mac) { sources -= [ "display_embedder/buffer_queue_unittest.cc" ] } configs = [ "//build/config/compiler:no_size_t_to_int_warning", "//third_party/khronos:khronos_headers", ] deps = [ ":service", "//base", "//base/test:test_support", "//cc:test_support", "//cc/paint", "//components/viz/common", "//components/viz/host", "//components/viz/test:test_support", "//gpu/command_buffer/client", "//gpu/command_buffer/client:gles2_implementation", "//gpu/ipc:gl_in_process_context", "//media", "//services/ui/public/interfaces", "//services/viz/public/interfaces", "//skia", "//testing/gmock", "//testing/gtest", "//ui/display/types", "//ui/gfx:test_support", ] } viz_source_set("perf_tests") { testonly = true sources = [ "display/bsp_tree_perftest.cc", "display/surface_aggregator_perftest.cc", ] deps = [ ":service", "//base", "//cc", "//cc:test_support", "//cc/base", "//components/viz/test:test_support", "//testing/gtest", "//testing/perf", ] }