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