1 # Copyright 2014 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.
5 import("//build/config/ui.gni")
6 import("//testing/test.gni")
9 import("//build/config/android/config.gni")
10 import("//build/config/android/rules.gni")
15 defines = [ "GL_GLEXT_PROTOTYPES" ]
20 output_name = "gl_wrapper" # Avoid colliding with OS X"s libGL.dylib.
23 "android/gl_jni_registrar.cc",
24 "android/gl_jni_registrar.h",
25 "android/scoped_java_surface.cc",
26 "android/scoped_java_surface.h",
27 "android/surface_texture.cc",
28 "android/surface_texture.h",
29 "android/surface_texture_listener.cc",
30 "android/surface_texture_listener.h",
33 "gl_bindings_autogen_gl.cc",
34 "gl_bindings_autogen_gl.h",
35 "gl_bindings_autogen_osmesa.cc",
36 "gl_bindings_autogen_osmesa.h",
37 "gl_bindings_skia_in_process.cc",
38 "gl_bindings_skia_in_process.h",
41 "gl_context_android.cc",
43 "gl_context_osmesa.cc",
44 "gl_context_osmesa.h",
47 "gl_context_stub_with_extensions.cc",
48 "gl_context_stub_with_extensions.h",
52 "gl_enums_implementation_autogen.h",
60 "gl_gl_api_implementation.cc",
61 "gl_gl_api_implementation.h",
65 "gl_image_ref_counted_memory.cc",
66 "gl_image_ref_counted_memory.h",
67 "gl_image_shared_memory.cc",
68 "gl_image_shared_memory.h",
71 "gl_implementation.cc",
72 "gl_implementation.h",
73 "gl_implementation_android.cc",
74 "gl_implementation_mac.cc",
75 "gl_implementation_win.cc",
76 "gl_osmesa_api_implementation.cc",
77 "gl_osmesa_api_implementation.h",
80 "gl_state_restorer.cc",
81 "gl_state_restorer.h",
84 "gl_surface_android.cc",
86 "gl_surface_osmesa.cc",
87 "gl_surface_osmesa.h",
95 "gpu_switching_manager.cc",
96 "gpu_switching_manager.h",
103 "scoped_make_current.cc",
104 "scoped_make_current.h",
105 "sync_control_vsync_provider.cc",
106 "sync_control_vsync_provider.h",
111 configs += [ "//build/config:precompiled_headers" ]
112 defines = [ "GL_IMPLEMENTATION" ]
115 "//third_party/switfshader/include",
116 "//third_party/mesa/src/include",
119 all_dependent_configs = [ ":gl_config" ]
121 public_configs = [ "//third_party/khronos:khronos_headers" ]
124 "//base/third_party/dynamic_annotations",
129 "//third_party/mesa:mesa_headers",
130 "//ui/events/platform",
135 if (is_win || is_android || is_linux) {
139 "gl_bindings_autogen_egl.cc",
140 "gl_bindings_autogen_egl.h",
151 if (is_android || is_linux) {
153 "gl_implementation_osmesa.cc",
154 "gl_implementation_osmesa.h",
158 deps += [ "//third_party/libevent" ]
162 "gl_bindings_autogen_glx.cc",
163 "gl_bindings_autogen_glx.h",
167 "gl_egl_api_implementation.cc",
168 "gl_egl_api_implementation.h",
169 "gl_glx_api_implementation.cc",
170 "gl_glx_api_implementation.h",
173 "gl_implementation_x11.cc",
180 "//build/config/linux:x11",
181 "//build/config/linux:xcomposite",
182 "//build/config/linux:xext",
185 deps += [ "//ui/gfx/x" ]
189 "angle_platform_impl.cc",
190 "angle_platform_impl.h",
191 "gl_bindings_autogen_wgl.cc",
192 "gl_bindings_autogen_wgl.h",
195 "gl_egl_api_implementation.cc",
196 "gl_egl_api_implementation.h",
199 "gl_wgl_api_implementation.cc",
200 "gl_wgl_api_implementation.h",
203 libs = [ "dwmapi.lib" ]
204 ldflags = [ "/DELAYLOAD:dwmapi.dll" ]
207 "//third_party/angle:libEGL",
208 "//third_party/angle:libGLESv2",
209 "//third_party/mesa:osmesa",
218 "gl_image_io_surface.h",
219 "gl_image_io_surface.mm",
225 "IOSurface.framework",
232 "gl_egl_api_implementation.cc",
233 "gl_egl_api_implementation.h",
234 "gl_image_surface_texture.cc",
235 "gl_image_surface_texture.h",
239 "GL_GLEXT_PROTOTYPES",
240 "EGL_EGLEXT_PROTOTYPES",
247 "//ui/android:ui_java",
252 "gl_context_ozone.cc",
253 "gl_egl_api_implementation.cc",
254 "gl_egl_api_implementation.h",
255 "gl_image_ozone_native_pixmap.cc",
256 "gl_image_ozone_native_pixmap.h",
257 "gl_implementation_ozone.cc",
258 "gl_surface_ozone.cc",
262 "//ui/ozone:ozone_base",
267 source_set("gl_unittest_utils") {
270 "gl_bindings_autogen_mock.cc",
271 "gl_bindings_autogen_mock.h",
274 "gl_mock_autogen_gl.h",
275 "gpu_timing_fake.cc",
279 configs += [ "//third_party/khronos:khronos_headers" ]
287 source_set("test_support") {
289 "test/gl_surface_test_support.cc",
290 "test/gl_surface_test_support.h",
293 configs += [ "//third_party/khronos:khronos_headers" ]
300 configs += [ "//build/config/linux:x11" ]
303 "//ui/platform_window/x11",
308 # TODO(GYP): Delete this after we've converted everything to GN.
309 # The _run targets exist only for compatibility w/ GYP.
310 group("gl_unittests_run") {
317 test("gl_unittests") {
319 "gl_api_unittest.cc",
320 "gpu_timing_unittest.cc",
321 "test/run_all_unittests.cc",
324 if (is_win || is_android || is_linux) {
326 "egl_api_unittest.cc",
327 "test/egl_initialization_displays_unittest.cc",
332 sources += [ "glx_api_unittest.cc" ]
335 include_dirs = [ "//third_party/khronos" ]
339 ":gl_unittest_utils",
342 "//base/test:test_support",
349 generate_jar_jni("surface_jni_headers") {
350 jni_package = "ui/gl"
351 classes = [ "android/view/Surface.class" ]
354 generate_jni("gl_jni_headers") {
356 ":surface_jni_headers",
359 "../android/java/src/org/chromium/ui/gl/SurfaceTextureListener.java",
360 "../android/java/src/org/chromium/ui/gl/SurfaceTexturePlatformWrapper.java",
362 jni_package = "ui/gl"