| # Copyright 2014 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") |
| if (is_android) { |
| import("//build/config/android/config.gni") |
| import("//build/config/android/rules.gni") |
| } |
| |
| config("gl_config") { |
| if (use_x11) { |
| defines = [ "GL_GLEXT_PROTOTYPES" ] |
| } |
| } |
| |
| component("gl") { |
| output_name = "gl_wrapper" # Avoid colliding with OS X"s libGL.dylib. |
| |
| sources = [ |
| "android/android_vsync_provider.cc", |
| "android/android_vsync_provider.h", |
| "android/gl_jni_registrar.cc", |
| "android/gl_jni_registrar.h", |
| "android/scoped_java_surface.cc", |
| "android/scoped_java_surface.h", |
| "android/surface_texture.cc", |
| "android/surface_texture.h", |
| "android/surface_texture_listener.cc", |
| "android/surface_texture_listener.h", |
| "egl_util.cc", |
| "egl_util.h", |
| "gl_bindings.cc", |
| "gl_bindings.h", |
| "gl_bindings_autogen_egl.cc", |
| "gl_bindings_autogen_egl.h", |
| "gl_bindings_autogen_gl.cc", |
| "gl_bindings_autogen_gl.h", |
| "gl_bindings_autogen_osmesa.cc", |
| "gl_bindings_autogen_osmesa.h", |
| "gl_bindings_skia_in_process.cc", |
| "gl_bindings_skia_in_process.h", |
| "gl_context.cc", |
| "gl_context.h", |
| "gl_context_android.cc", |
| "gl_context_egl.cc", |
| "gl_context_egl.h", |
| "gl_context_mac.mm", |
| "gl_context_osmesa.cc", |
| "gl_context_osmesa.h", |
| "gl_context_stub.cc", |
| "gl_context_stub.h", |
| "gl_context_stub_with_extensions.cc", |
| "gl_context_stub_with_extensions.h", |
| "gl_context_win.cc", |
| "gl_enums.cc", |
| "gl_enums.h", |
| "gl_enums_implementation_autogen.h", |
| "gl_export.h", |
| "gl_fence.cc", |
| "gl_fence.h", |
| "gl_fence_arb.cc", |
| "gl_fence_arb.h", |
| "gl_fence_egl.cc", |
| "gl_fence_egl.h", |
| "gl_fence_nv.cc", |
| "gl_fence_nv.h", |
| "gl_gl_api_implementation.cc", |
| "gl_gl_api_implementation.h", |
| "gl_image.h", |
| "gl_image_egl.cc", |
| "gl_image_egl.h", |
| "gl_image_memory.cc", |
| "gl_image_memory.h", |
| "gl_image_ref_counted_memory.cc", |
| "gl_image_ref_counted_memory.h", |
| "gl_image_shared_memory.cc", |
| "gl_image_shared_memory.h", |
| "gl_image_stub.cc", |
| "gl_image_stub.h", |
| "gl_implementation.cc", |
| "gl_implementation.h", |
| "gl_implementation_android.cc", |
| "gl_implementation_mac.cc", |
| "gl_implementation_win.cc", |
| "gl_osmesa_api_implementation.cc", |
| "gl_osmesa_api_implementation.h", |
| "gl_share_group.cc", |
| "gl_share_group.h", |
| "gl_state_restorer.cc", |
| "gl_state_restorer.h", |
| "gl_surface.cc", |
| "gl_surface.h", |
| "gl_surface_android.cc", |
| "gl_surface_egl.cc", |
| "gl_surface_egl.h", |
| "gl_surface_mac.cc", |
| "gl_surface_osmesa.cc", |
| "gl_surface_osmesa.h", |
| "gl_surface_stub.cc", |
| "gl_surface_stub.h", |
| "gl_surface_win.cc", |
| "gl_switches.cc", |
| "gl_switches.h", |
| "gl_version_info.cc", |
| "gl_version_info.h", |
| "gpu_switching_manager.cc", |
| "gpu_switching_manager.h", |
| "gpu_timing.cc", |
| "gpu_timing.h", |
| "scoped_binders.cc", |
| "scoped_binders.h", |
| "scoped_make_current.cc", |
| "scoped_make_current.h", |
| "sync_control_vsync_provider.cc", |
| "sync_control_vsync_provider.h", |
| ] |
| |
| defines = [ "GL_IMPLEMENTATION" ] |
| |
| include_dirs = [ |
| "//third_party/switfshader/include", |
| "//third_party/khronos", |
| "//third_party/mesa/src/include", |
| ] |
| |
| all_dependent_configs = [ ":gl_config" ] |
| |
| deps = [ |
| "//base/third_party/dynamic_annotations", |
| "//gpu/command_buffer/common", |
| "//skia", |
| ] |
| public_deps = [ |
| "//base", |
| "//third_party/mesa:mesa_headers", |
| "//ui/events/platform", |
| "//ui/gfx", |
| "//ui/gfx/geometry", |
| ] |
| |
| if (is_android || is_linux) { |
| sources += [ |
| "gl_implementation_osmesa.cc", |
| "gl_implementation_osmesa.h", |
| ] |
| } |
| if (is_linux) { |
| deps += [ "//third_party/libevent" ] |
| sources += [ |
| "gl_image_linux_dma_buffer.cc", |
| "gl_image_linux_dma_buffer.h", |
| ] |
| } |
| if (use_x11) { |
| sources += [ |
| "gl_bindings_autogen_glx.cc", |
| "gl_bindings_autogen_glx.h", |
| "gl_context_glx.cc", |
| "gl_context_glx.h", |
| "gl_context_x11.cc", |
| "gl_egl_api_implementation.cc", |
| "gl_egl_api_implementation.h", |
| "gl_glx_api_implementation.cc", |
| "gl_glx_api_implementation.h", |
| "gl_image_glx.cc", |
| "gl_image_glx.h", |
| "gl_implementation_x11.cc", |
| "gl_surface_glx.cc", |
| "gl_surface_glx.h", |
| "gl_surface_x11.cc", |
| ] |
| |
| configs += [ |
| "//build/config/linux:x11", |
| "//build/config/linux:xcomposite", |
| "//build/config/linux:xext", |
| ] |
| |
| deps += [ "//ui/gfx/x" ] |
| } |
| if (is_android) { |
| sources += [ |
| "gl_egl_api_implementation.cc", |
| "gl_egl_api_implementation.h", |
| "gl_image_linux_dma_buffer.cc", |
| "gl_image_linux_dma_buffer.h", |
| ] |
| |
| defines += [ |
| "GL_GLEXT_PROTOTYPES", |
| "EGL_EGLEXT_PROTOTYPES", |
| ] |
| |
| libs = [ "android" ] |
| |
| deps += [ ":gl_jni_headers" ] |
| } |
| if (use_ozone) { |
| if (is_android) { |
| sources -= [ |
| "gl_implementation_android.cc", |
| "gl_surface_android.cc", |
| ] |
| } |
| sources += [ |
| "gl_context_ozone.cc", |
| "gl_egl_api_implementation.cc", |
| "gl_egl_api_implementation.h", |
| "gl_implementation_ozone.cc", |
| "gl_surface_ozone.cc", |
| ] |
| deps += [ |
| "//ui/ozone", |
| "//ui/ozone:ozone_base", |
| ] |
| } |
| if (is_ios || is_mac) { |
| sources = [] |
| sources = [ |
| "gl_bindings_autogen_gl.cc", |
| "gl_bindings_autogen_gl.h", |
| "gl_bindings_skia_in_process.cc", |
| "gl_bindings_skia_in_process.h", |
| "gl_context.cc", |
| "gl_context.h", |
| "gl_context_ios.h", |
| "gl_context_ios.mm", |
| "gl_context_mac.mm", |
| "gl_context_stub.cc", |
| "gl_context_stub.h", |
| "gl_context_stub_with_extensions.cc", |
| "gl_context_stub_with_extensions.h", |
| "gl_enums.cc", |
| "gl_enums.h", |
| "gl_enums_implementation_autogen.h", |
| "gl_gl_api_implementation.cc", |
| "gl_gl_api_implementation.h", |
| "gl_implementation.cc", |
| "gl_implementation.h", |
| "gl_implementation_ios.cc", |
| "gl_implementation_mac.cc", |
| "gl_share_group.cc", |
| "gl_share_group.h", |
| "gl_surface.cc", |
| "gl_surface.h", |
| "gl_surface_ios.h", |
| "gl_surface_ios.mm", |
| "gl_surface_mac.cc", |
| "gl_surface_stub.cc", |
| "gl_surface_stub.h", |
| "gl_switches.cc", |
| "gl_switches.h", |
| "gl_version_info.cc", |
| "gl_version_info.h", |
| "gpu_timing.cc", |
| "gpu_timing.h", |
| ] |
| } |
| |
| if (is_mac) { |
| sources += [ |
| "gl_context_cgl.cc", |
| "gl_context_cgl.h", |
| "gpu_switching_manager.cc", |
| "gpu_switching_manager.h", |
| ] |
| |
| cflags = [ "-Wno-deprecated-declarations" ] |
| } |
| } |
| |
| source_set("gl_unittest_utils") { |
| testonly = true |
| sources = [ |
| "gl_bindings_autogen_mock.cc", |
| "gl_bindings_autogen_mock.h", |
| "gl_mock.cc", |
| "gl_mock.h", |
| "gl_mock_autogen_gl.h", |
| ] |
| |
| configs += [ "//third_party/khronos:khronos_headers" ] |
| |
| deps = [ |
| ":gl", |
| "//testing/gmock", |
| ] |
| } |
| |
| if (is_android) { |
| generate_jar_jni("surface_jni_headers") { |
| jni_package = "ui/gl" |
| classes = [ "android/view/Surface.class" ] |
| } |
| |
| generate_jni("gl_jni_headers") { |
| sources = [ |
| "android/java/src/org/chromium/ui/gl/SurfaceTextureListener.java", |
| "android/java/src/org/chromium/ui/gl/SurfaceTexturePlatformWrapper.java", |
| "android/java/src/org/chromium/ui/gl/VSyncProvider.java", |
| ] |
| public_deps = [ |
| ":surface_jni_headers", |
| ] |
| jni_package = "ui/gl" |
| } |
| |
| android_library("gl_java") { |
| java_files = [ |
| "android/java/src/org/chromium/ui/gl/RollingMedianComputer.java", |
| "android/java/src/org/chromium/ui/gl/SurfaceTextureListener.java", |
| "android/java/src/org/chromium/ui/gl/SurfaceTexturePlatformWrapper.java", |
| "android/java/src/org/chromium/ui/gl/VSyncProvider.java", |
| ] |
| |
| deps = [ |
| "//base:base_java", |
| ] |
| } |
| } |