1# Copyright 2017 The Chromium Authors. All rights reserved. 2# Use of this source code is governed by a BSD-style license that can be 3# found in the LICENSE file. 4 5import("//components/viz/viz.gni") 6import("//gpu/vulkan/features.gni") 7import("//skia/features.gni") 8import("//testing/test.gni") 9 10source_set("resource_format") { 11 sources = [ "resources/resource_format.h" ] 12} 13 14viz_component("resource_format_utils") { 15 output_name = "viz_resource_format_utils" 16 17 defines = [ "VIZ_RESOURCE_FORMAT_IMPLEMENTATION" ] 18 19 sources = [ 20 "resources/resource_format_utils.cc", 21 "resources/resource_format_utils.h", 22 "resources/resource_format_utils_vulkan.h", 23 "resources/resource_sizes.h", 24 "viz_resource_format_export.h", 25 ] 26 27 configs = [ "//third_party/khronos:khronos_headers" ] 28 29 public_deps = [ ":resource_format" ] 30 31 deps = [ 32 "//base", 33 "//cc/base:base", 34 "//gpu/vulkan:buildflags", 35 "//skia", 36 "//third_party/dawn/src/dawn:dawncpp_headers", 37 "//ui/gfx:buffer_types", 38 "//ui/gfx/geometry:geometry", 39 ] 40} 41 42# TODO(sgilhuly): To reduce link times, merge these context provider components 43# into a single gr_context_provider component. 44if (is_mac) { 45 viz_component("metal_context_provider") { 46 output_name = "viz_metal_context_provider" 47 48 defines = [ "VIZ_METAL_CONTEXT_PROVIDER_IMPLEMENTATION" ] 49 50 sources = [ 51 "gpu/metal_api_proxy.h", 52 "gpu/metal_api_proxy.mm", 53 "gpu/metal_context_provider.h", 54 "gpu/metal_context_provider.mm", 55 "viz_metal_context_provider_export.h", 56 ] 57 58 public_deps = [ "//skia" ] 59 60 deps = [ 61 "//base", 62 "//components/crash/core/common:crash_key", 63 "//components/metal_util", 64 "//gpu/config", 65 "//ui/gfx", 66 "//ui/gl", 67 ] 68 69 libs = [ 70 "Metal.framework", 71 "Foundation.framework", 72 ] 73 } 74} 75 76if (enable_vulkan) { 77 viz_component("vulkan_context_provider") { 78 output_name = "viz_vulkan_context_provider" 79 80 defines = [ "VIZ_VULKAN_CONTEXT_PROVIDER_IMPLEMENTATION" ] 81 82 # TODO(cblume): http://crbug.com/911313 83 # Abstract out the platform specific defines. Right now we need the android 84 # platform specific define here to be able to include android specific 85 # functions. 86 if (is_android) { 87 defines += [ "VK_USE_PLATFORM_ANDROID_KHR" ] 88 } 89 sources = [ 90 "gpu/vulkan_context_provider.h", 91 "gpu/vulkan_in_process_context_provider.cc", 92 "gpu/vulkan_in_process_context_provider.h", 93 "viz_vulkan_context_provider_export.h", 94 ] 95 configs = [ "//third_party/vulkan:vulkan_config" ] 96 97 public_deps = [ "//skia" ] 98 99 deps = [ 100 "//base", 101 "//gpu/vulkan", 102 "//gpu/vulkan:buildflags", 103 "//ui/gfx", 104 ] 105 } 106} 107 108if (skia_use_dawn) { 109 viz_component("dawn_context_provider") { 110 output_name = "viz_dawn_context_provider" 111 112 defines = [ "VIZ_DAWN_CONTEXT_PROVIDER_IMPLEMENTATION" ] 113 114 sources = [ 115 "gpu/dawn_context_provider.cc", 116 "gpu/dawn_context_provider.h", 117 "viz_dawn_context_provider_export.h", 118 ] 119 120 public_deps = [ 121 "//skia", 122 "//third_party/dawn/src/dawn:dawn_headers", 123 ] 124 125 deps = [ 126 "//base", 127 "//third_party/dawn:libdawn_native", 128 "//third_party/dawn:libdawn_native_sources", 129 "//third_party/dawn/src/dawn:dawncpp", 130 "//third_party/dawn/src/dawn:libdawn_proc", 131 ] 132 } 133} 134 135viz_component("common") { 136 output_name = "viz_common" 137 138 defines = [ "VIZ_COMMON_IMPLEMENTATION" ] 139 140 sources = [ 141 "constants.cc", 142 "constants.h", 143 "display/de_jelly.cc", 144 "display/de_jelly.h", 145 "display/overlay_strategy.cc", 146 "display/overlay_strategy.h", 147 "display/renderer_settings.cc", 148 "display/renderer_settings.h", 149 "display/update_vsync_parameters_callback.h", 150 "features.cc", 151 "features.h", 152 "frame_sinks/begin_frame_args.cc", 153 "frame_sinks/begin_frame_args.h", 154 "frame_sinks/begin_frame_source.cc", 155 "frame_sinks/begin_frame_source.h", 156 "frame_sinks/copy_output_request.cc", 157 "frame_sinks/copy_output_request.h", 158 "frame_sinks/copy_output_result.cc", 159 "frame_sinks/copy_output_result.h", 160 "frame_sinks/copy_output_util.cc", 161 "frame_sinks/copy_output_util.h", 162 "frame_sinks/delay_based_time_source.cc", 163 "frame_sinks/delay_based_time_source.h", 164 "frame_timing_details.h", 165 "frame_timing_details_map.h", 166 "gl_i420_converter.cc", 167 "gl_i420_converter.h", 168 "gl_scaler.cc", 169 "gl_scaler.h", 170 "gpu/context_cache_controller.cc", 171 "gpu/context_cache_controller.h", 172 "gpu/context_lost_observer.h", 173 "gpu/context_lost_reason.cc", 174 "gpu/context_lost_reason.h", 175 "gpu/context_provider.cc", 176 "gpu/context_provider.h", 177 "gpu/gpu_vsync_callback.h", 178 "gpu/raster_context_provider.cc", 179 "gpu/raster_context_provider.h", 180 "hit_test/aggregated_hit_test_region.h", 181 "hit_test/hit_test_region_list.cc", 182 "hit_test/hit_test_region_list.h", 183 "quads/compositor_frame.cc", 184 "quads/compositor_frame.h", 185 "quads/compositor_frame_metadata.cc", 186 "quads/compositor_frame_metadata.h", 187 "quads/content_draw_quad_base.cc", 188 "quads/content_draw_quad_base.h", 189 "quads/debug_border_draw_quad.cc", 190 "quads/debug_border_draw_quad.h", 191 "quads/draw_quad.cc", 192 "quads/draw_quad.h", 193 "quads/frame_deadline.cc", 194 "quads/frame_deadline.h", 195 "quads/largest_draw_quad.cc", 196 "quads/largest_draw_quad.h", 197 "quads/picture_draw_quad.cc", 198 "quads/picture_draw_quad.h", 199 "quads/render_pass.cc", 200 "quads/render_pass.h", 201 "quads/render_pass_draw_quad.cc", 202 "quads/render_pass_draw_quad.h", 203 "quads/render_pass_io.cc", 204 "quads/render_pass_io.h", 205 "quads/selection.h", 206 "quads/shared_quad_state.cc", 207 "quads/shared_quad_state.h", 208 "quads/solid_color_draw_quad.cc", 209 "quads/solid_color_draw_quad.h", 210 "quads/stream_video_draw_quad.cc", 211 "quads/stream_video_draw_quad.h", 212 "quads/surface_draw_quad.cc", 213 "quads/surface_draw_quad.h", 214 "quads/texture_draw_quad.cc", 215 "quads/texture_draw_quad.h", 216 "quads/tile_draw_quad.cc", 217 "quads/tile_draw_quad.h", 218 "quads/video_hole_draw_quad.cc", 219 "quads/video_hole_draw_quad.h", 220 "quads/yuv_video_draw_quad.cc", 221 "quads/yuv_video_draw_quad.h", 222 "resources/bitmap_allocation.cc", 223 "resources/bitmap_allocation.h", 224 "resources/platform_color.h", 225 "resources/release_callback.h", 226 "resources/resource_id.h", 227 "resources/resource_settings.cc", 228 "resources/resource_settings.h", 229 "resources/return_callback.h", 230 "resources/returned_resource.h", 231 "resources/shared_bitmap.cc", 232 "resources/shared_bitmap.h", 233 "resources/single_release_callback.cc", 234 "resources/single_release_callback.h", 235 "resources/transferable_resource.cc", 236 "resources/transferable_resource.h", 237 "skia_helper.cc", 238 "skia_helper.h", 239 "surfaces/child_local_surface_id_allocator.cc", 240 "surfaces/child_local_surface_id_allocator.h", 241 "surfaces/frame_sink_id.cc", 242 "surfaces/frame_sink_id.h", 243 "surfaces/frame_sink_id_allocator.cc", 244 "surfaces/frame_sink_id_allocator.h", 245 "surfaces/local_surface_id.cc", 246 "surfaces/local_surface_id.h", 247 "surfaces/local_surface_id_allocation.cc", 248 "surfaces/local_surface_id_allocation.h", 249 "surfaces/parent_local_surface_id_allocator.cc", 250 "surfaces/parent_local_surface_id_allocator.h", 251 "surfaces/scoped_surface_id_allocator.cc", 252 "surfaces/scoped_surface_id_allocator.h", 253 "surfaces/surface_id.cc", 254 "surfaces/surface_id.h", 255 "surfaces/surface_info.cc", 256 "surfaces/surface_info.h", 257 "surfaces/surface_range.cc", 258 "surfaces/surface_range.h", 259 "switches.cc", 260 "switches.h", 261 "traced_value.cc", 262 "traced_value.h", 263 "vertical_scroll_direction.h", 264 "viz_common_export.h", 265 "viz_utils.cc", 266 "viz_utils.h", 267 ] 268 269 deps = [ 270 "//base", 271 "//build:chromecast_buildflags", 272 273 # TODO(staraz): cc/base was added because SharedQuadState includes 274 # cc::MathUtil. Remove it once cc/base/math_util* are moved to viz. 275 "//cc/base", 276 "//cc/paint", 277 "//gpu/command_buffer/client:gles2_implementation", 278 "//gpu/command_buffer/client:gles2_interface", 279 "//gpu/command_buffer/client:raster", 280 "//gpu/command_buffer/client:raster_interface", 281 "//gpu/config", 282 "//gpu/ipc/common:common", 283 "//gpu/vulkan:buildflags", 284 "//mojo/public/cpp/base", 285 "//mojo/public/cpp/system", 286 "//services/tracing/public/cpp:cpp", 287 "//third_party/libyuv", 288 "//ui/gfx", 289 "//ui/gfx:color_space", 290 "//ui/gfx:geometry_skia", 291 "//ui/gfx/geometry", 292 "//ui/gl", 293 "//ui/latency", 294 ] 295 296 if (is_win) { 297 sources += [ 298 "display/use_layered_window.cc", 299 "display/use_layered_window.h", 300 ] 301 302 deps += [ "//ui/base" ] 303 } 304 305 if (is_android) { 306 deps += [ 307 ":common_jni_headers", 308 "//gpu/config", 309 ] 310 } 311 312 public_deps = [ 313 ":resource_format_utils", 314 "//gpu/command_buffer/client", 315 "//gpu/command_buffer/common", 316 "//mojo/public/cpp/bindings", 317 "//skia", 318 ] 319 if (enable_vulkan) { 320 public_deps += [ ":vulkan_context_provider" ] 321 } 322 if (is_mac) { 323 public_deps += [ ":metal_context_provider" ] 324 } 325 if (skia_use_dawn) { 326 public_deps += [ ":dawn_context_provider" ] 327 } 328} 329 330viz_source_set("unit_tests") { 331 # Not ready for jumbo compilation. Too much repeated test code. 332 never_build_jumbo = true 333 testonly = true 334 sources = [ 335 "display/overlay_strategy_unittest.cc", 336 "frame_sinks/begin_frame_args_unittest.cc", 337 "frame_sinks/begin_frame_source_unittest.cc", 338 "frame_sinks/copy_output_util_unittest.cc", 339 "frame_sinks/delay_based_time_source_unittest.cc", 340 "gl_i420_converter_pixeltest.cc", 341 "gl_i420_converter_unittest.cc", 342 "gl_scaler_overscan_pixeltest.cc", 343 "gl_scaler_pixeltest.cc", 344 "gl_scaler_shader_pixeltest.cc", 345 "gl_scaler_test_util.cc", 346 "gl_scaler_test_util.h", 347 "gl_scaler_unittest.cc", 348 "gpu/context_cache_controller_unittest.cc", 349 "quads/draw_quad_unittest.cc", 350 "quads/render_pass_io_unittest.cc", 351 "quads/render_pass_unittest.cc", 352 "resources/resource_sizes_unittest.cc", 353 "surfaces/child_local_surface_id_allocator_unittest.cc", 354 "surfaces/local_surface_id_unittest.cc", 355 "surfaces/parent_local_surface_id_allocator_unittest.cc", 356 "surfaces/scoped_surface_id_allocator_unittest.cc", 357 "surfaces/surface_range_unittest.cc", 358 "yuv_readback_unittest.cc", 359 ] 360 361 deps = [ 362 ":common", 363 "//base/test:test_support", 364 "//cc:test_support", 365 "//components/viz/test:test_support", 366 "//gpu/command_buffer/client:gles2_implementation", 367 "//gpu/command_buffer/client:gles2_interface", 368 "//gpu/ipc:gl_in_process_context", 369 "//gpu/ipc/common:surface_handle_type", 370 "//media", 371 "//testing/gmock", 372 "//testing/gtest", 373 "//ui/gfx", 374 "//ui/gfx:color_space", 375 "//ui/gfx/geometry", 376 ] 377} 378 379viz_source_set("perf_tests") { 380 testonly = true 381 sources = [ "quads/draw_quad_perftest.cc" ] 382 383 deps = [ 384 ":common", 385 "//base", 386 "//cc/base", 387 "//skia", 388 "//testing/gtest", 389 "//testing/perf", 390 ] 391} 392 393if (is_android) { 394 android_library("common_java") { 395 deps = [ "//base:base_java" ] 396 sources = [ 397 "java/src/org/chromium/components/viz/common/VizSwitches.java", 398 "java/src/org/chromium/components/viz/common/display/DeJellyUtils.java", 399 ] 400 } 401 402 generate_jni("common_jni_headers") { 403 sources = [ 404 "java/src/org/chromium/components/viz/common/display/DeJellyUtils.java", 405 ] 406 } 407} 408