1CONFIG += simd no_batch object_parallel_to_source
2include(common.pri)
3
4INCLUDEPATH += \
5    $$OUT_PWD/.. \
6    $$ANGLE_DIR \
7    $$ANGLE_DIR/src/libANGLE
8
9# Remember to adapt src/gui/configure.* if the Direct X version changes.
10!winrt: \
11    QMAKE_USE_PRIVATE += d3d9
12winrt: \
13    QMAKE_USE_PRIVATE += d3dcompiler d3d11 dxgi
14
15QMAKE_USE_PRIVATE += dxguid
16
17STATICLIBS = translator preprocessor
18for(libname, STATICLIBS) {
19    # Appends 'd' to the library for debug builds and builds up the fully
20    # qualified path to pass to the linker.
21    staticlib = $$QT_BUILD_TREE/lib/$${QMAKE_PREFIX_STATICLIB}$$qtLibraryTarget($$libname).$${QMAKE_EXTENSION_STATICLIB}
22    LIBS_PRIVATE += $$staticlib
23    PRE_TARGETDEPS += $$staticlib
24}
25
26DEFINES += LIBANGLE_IMPLEMENTATION LIBGLESV2_IMPLEMENTATION GL_APICALL= GL_GLEXT_PROTOTYPES= EGLAPI=
27!winrt: DEFINES += ANGLE_ENABLE_D3D9 ANGLE_SKIP_DXGI_1_2_CHECK
28
29QT_FOR_CONFIG += gui-private
30include($$OUT_PWD/../../../gui/qtgui-config.pri)
31
32qtConfig(angle_d3d11_qdtd): DEFINES += ANGLE_D3D11_QDTD_AVAILABLE
33
34HEADERS += \
35    $$ANGLE_DIR/src/common/mathutil.h \
36    $$ANGLE_DIR/src/common/utilities.h \
37    $$ANGLE_DIR/src/common/version.h \
38    $$ANGLE_DIR/src/common/MemoryBuffer.h \
39    $$ANGLE_DIR/src/common/angleutils.h \
40    $$ANGLE_DIR/src/common/debug.h \
41    $$ANGLE_DIR/src/common/event_tracer.h \
42    $$ANGLE_DIR/src/libANGLE/angletypes.h \
43    $$ANGLE_DIR/src/libANGLE/AttributeMap.h \
44    $$ANGLE_DIR/src/libANGLE/BinaryStream.h \
45    $$ANGLE_DIR/src/libANGLE/Buffer.h \
46    $$ANGLE_DIR/src/libANGLE/Caps.h \
47    $$ANGLE_DIR/src/libANGLE/Compiler.h \
48    $$ANGLE_DIR/src/libANGLE/Config.h \
49    $$ANGLE_DIR/src/libANGLE/Constants.h \
50    $$ANGLE_DIR/src/libANGLE/Context.h \
51    $$ANGLE_DIR/src/libANGLE/Debug.h \
52    $$ANGLE_DIR/src/libANGLE/Device.h \
53    $$ANGLE_DIR/src/libANGLE/Display.h \
54    $$ANGLE_DIR/src/libANGLE/Error.h \
55    $$ANGLE_DIR/src/libANGLE/features.h \
56    $$ANGLE_DIR/src/libANGLE/Fence.h \
57    $$ANGLE_DIR/src/libANGLE/formatutils.h \
58    $$ANGLE_DIR/src/libANGLE/Framebuffer.h \
59    $$ANGLE_DIR/src/libANGLE/FramebufferAttachment.h \
60    $$ANGLE_DIR/src/libANGLE/HandleAllocator.h \
61    $$ANGLE_DIR/src/libANGLE/ImageIndex.h \
62    $$ANGLE_DIR/src/libANGLE/IndexRangeCache.h \
63    $$ANGLE_DIR/src/libANGLE/Program.h \
64    $$ANGLE_DIR/src/libANGLE/Query.h \
65    $$ANGLE_DIR/src/libANGLE/queryconversions.h \
66    $$ANGLE_DIR/src/libANGLE/RefCountObject.h \
67    $$ANGLE_DIR/src/libANGLE/Renderbuffer.h \
68    $$ANGLE_DIR/src/libANGLE/ResourceManager.h \
69    $$ANGLE_DIR/src/libANGLE/Sampler.h \
70    $$ANGLE_DIR/src/libANGLE/Shader.h \
71    $$ANGLE_DIR/src/libANGLE/State.h \
72    $$ANGLE_DIR/src/libANGLE/Surface.h \
73    $$ANGLE_DIR/src/libANGLE/Texture.h \
74    $$ANGLE_DIR/src/libANGLE/TransformFeedback.h \
75    $$ANGLE_DIR/src/libANGLE/Uniform.h \
76    $$ANGLE_DIR/src/libANGLE/validationEGL.h \
77    $$ANGLE_DIR/src/libANGLE/validationES.h \
78    $$ANGLE_DIR/src/libANGLE/validationES2.h \
79    $$ANGLE_DIR/src/libANGLE/validationES3.h \
80    $$ANGLE_DIR/src/libANGLE/VertexArray.h \
81    $$ANGLE_DIR/src/libANGLE/VertexAttribute.h \
82    $$ANGLE_DIR/src/libANGLE/renderer/d3d/BufferD3D.h \
83    $$ANGLE_DIR/src/libANGLE/renderer/d3d/CompilerD3D.h \
84    $$ANGLE_DIR/src/libANGLE/renderer/d3d/DeviceD3D.h \
85    $$ANGLE_DIR/src/libANGLE/renderer/d3d/DisplayD3D.h \
86    $$ANGLE_DIR/src/libANGLE/renderer/d3d/DynamicHLSL.h \
87    $$ANGLE_DIR/src/libANGLE/renderer/d3d/EGLImageD3D.h \
88    $$ANGLE_DIR/src/libANGLE/renderer/d3d/formatutilsD3D.h \
89    $$ANGLE_DIR/src/libANGLE/renderer/d3d/FramebufferD3D.h \
90    $$ANGLE_DIR/src/libANGLE/renderer/d3d/HLSLCompiler.h \
91    $$ANGLE_DIR/src/libANGLE/renderer/d3d/ImageD3D.h \
92    $$ANGLE_DIR/src/libANGLE/renderer/d3d/IndexBuffer.h \
93    $$ANGLE_DIR/src/libANGLE/renderer/d3d/IndexDataManager.h \
94    $$ANGLE_DIR/src/libANGLE/renderer/d3d/ProgramD3D.h \
95    $$ANGLE_DIR/src/libANGLE/renderer/d3d/RenderbufferD3D.h \
96    $$ANGLE_DIR/src/libANGLE/renderer/d3d/RendererD3D.h \
97    $$ANGLE_DIR/src/libANGLE/renderer/d3d/RenderTargetD3D.h \
98    $$ANGLE_DIR/src/libANGLE/renderer/d3d/ShaderD3D.h \
99    $$ANGLE_DIR/src/libANGLE/renderer/d3d/ShaderExecutableD3D.h \
100    $$ANGLE_DIR/src/libANGLE/renderer/d3d/SurfaceD3D.h \
101    $$ANGLE_DIR/src/libANGLE/renderer/d3d/SwapChainD3D.h \
102    $$ANGLE_DIR/src/libANGLE/renderer/d3d/TextureD3D.h \
103    $$ANGLE_DIR/src/libANGLE/renderer/d3d/TextureStorage.h \
104    $$ANGLE_DIR/src/libANGLE/renderer/d3d/VertexBuffer.h \
105    $$ANGLE_DIR/src/libANGLE/renderer/d3d/VertexDataManager.h \
106    $$ANGLE_DIR/src/libANGLE/renderer/BufferImpl.h \
107    $$ANGLE_DIR/src/libANGLE/renderer/CompilerImpl.h \
108    $$ANGLE_DIR/src/libANGLE/renderer/DeviceImpl.h \
109    $$ANGLE_DIR/src/libANGLE/renderer/DisplayImpl.h \
110    $$ANGLE_DIR/src/libANGLE/renderer/FenceNVImpl.h \
111    $$ANGLE_DIR/src/libANGLE/renderer/FramebufferImpl.h \
112    $$ANGLE_DIR/src/libANGLE/renderer/ProgramImpl.h \
113    $$ANGLE_DIR/src/libANGLE/renderer/QueryImpl.h \
114    $$ANGLE_DIR/src/libANGLE/renderer/RenderbufferImpl.h \
115    $$ANGLE_DIR/src/libANGLE/renderer/ShaderImpl.h \
116    $$ANGLE_DIR/src/libANGLE/renderer/SurfaceImpl.h \
117    $$ANGLE_DIR/src/libANGLE/renderer/TextureImpl.h \
118    $$ANGLE_DIR/src/libANGLE/renderer/TransformFeedbackImpl.h \
119    $$ANGLE_DIR/src/libANGLE/renderer/VertexArrayImpl.h \
120    $$ANGLE_DIR/src/libANGLE/ResourceManager.h \
121    $$ANGLE_DIR/src/libANGLE/Sampler.h \
122    $$ANGLE_DIR/src/libANGLE/Shader.h \
123    $$ANGLE_DIR/src/libANGLE/State.h \
124    $$ANGLE_DIR/src/libANGLE/Texture.h \
125    $$ANGLE_DIR/src/libANGLE/TransformFeedback.h \
126    $$ANGLE_DIR/src/libANGLE/Uniform.h \
127    $$ANGLE_DIR/src/libANGLE/validationES2.h \
128    $$ANGLE_DIR/src/libANGLE/validationES3.h \
129    $$ANGLE_DIR/src/libANGLE/validationES.h \
130    $$ANGLE_DIR/src/libANGLE/VertexArray.h \
131    $$ANGLE_DIR/src/libANGLE/VertexAttribute.h \
132    $$ANGLE_DIR/src/libGLESv2/entry_points_egl.h \
133    $$ANGLE_DIR/src/libGLESv2/entry_points_egl_ext.h \
134    $$ANGLE_DIR/src/libGLESv2/entry_points_gles_2_0_ext.h \
135    $$ANGLE_DIR/src/libGLESv2/global_state.h \
136    $$ANGLE_DIR/src/libGLESv2/resource.h
137
138SOURCES += \
139    $$ANGLE_DIR/src/common/mathutil.cpp \
140    $$ANGLE_DIR/src/common/utilities.cpp \
141    $$ANGLE_DIR/src/common/MemoryBuffer.cpp \
142    $$ANGLE_DIR/src/common/angleutils.cpp \
143    $$ANGLE_DIR/src/common/debug.cpp \
144    $$ANGLE_DIR/src/common/event_tracer.cpp \
145    $$ANGLE_DIR/src/common/Float16ToFloat32.cpp \
146    $$ANGLE_DIR/src/common/string_utils.cpp \
147    $$ANGLE_DIR/src/common/uniform_type_info_autogen.cpp \
148    $$ANGLE_DIR/src/common/third_party/smhasher/src/PMurHash.cpp \
149    $$ANGLE_DIR/src/common/third_party/base/anglebase/sha1.cc \
150    $$ANGLE_DIR/src/image_util/copyimage.cpp \
151    $$ANGLE_DIR/src/image_util/imageformats.cpp \
152    $$ANGLE_DIR/src/image_util/loadimage.cpp \
153    $$ANGLE_DIR/src/image_util/loadimage_etc.cpp \
154    $$ANGLE_DIR/src/libANGLE/angletypes.cpp \
155    $$ANGLE_DIR/src/libANGLE/AttributeMap.cpp \
156    $$ANGLE_DIR/src/libANGLE/Buffer.cpp \
157    $$ANGLE_DIR/src/libANGLE/Caps.cpp \
158    $$ANGLE_DIR/src/libANGLE/Compiler.cpp \
159    $$ANGLE_DIR/src/libANGLE/Config.cpp \
160    $$ANGLE_DIR/src/libANGLE/Context.cpp \
161    $$ANGLE_DIR/src/libANGLE/ContextState.cpp \
162    $$ANGLE_DIR/src/libANGLE/Debug.cpp \
163    $$ANGLE_DIR/src/libANGLE/Device.cpp \
164    $$ANGLE_DIR/src/libANGLE/Display.cpp \
165    $$ANGLE_DIR/src/libANGLE/Error.cpp \
166    $$ANGLE_DIR/src/libANGLE/es3_copy_conversion_table_autogen.cpp \
167    $$ANGLE_DIR/src/libANGLE/Fence.cpp \
168    $$ANGLE_DIR/src/libANGLE/formatutils.cpp \
169    $$ANGLE_DIR/src/libANGLE/format_map_autogen.cpp \
170    $$ANGLE_DIR/src/libANGLE/Framebuffer.cpp \
171    $$ANGLE_DIR/src/libANGLE/FramebufferAttachment.cpp \
172    $$ANGLE_DIR/src/libANGLE/HandleAllocator.cpp \
173    $$ANGLE_DIR/src/libANGLE/HandleRangeAllocator.cpp \
174    $$ANGLE_DIR/src/libANGLE/Image.cpp \
175    $$ANGLE_DIR/src/libANGLE/ImageIndex.cpp \
176    $$ANGLE_DIR/src/libANGLE/IndexRangeCache.cpp \
177    $$ANGLE_DIR/src/libANGLE/LoggingAnnotator.cpp \
178    $$ANGLE_DIR/src/libANGLE/MemoryProgramCache.cpp \
179    $$ANGLE_DIR/src/libANGLE/PackedGLEnums_autogen.cpp \
180    $$ANGLE_DIR/src/libANGLE/params.cpp \
181    $$ANGLE_DIR/src/libANGLE/Path.cpp \
182    $$ANGLE_DIR/src/libANGLE/Platform.cpp \
183    $$ANGLE_DIR/src/libANGLE/Program.cpp \
184    $$ANGLE_DIR/src/libANGLE/ProgramLinkedResources.cpp \
185    $$ANGLE_DIR/src/libANGLE/ProgramPipeline.cpp \
186    $$ANGLE_DIR/src/libANGLE/Query.cpp \
187    $$ANGLE_DIR/src/libANGLE/queryconversions.cpp \
188    $$ANGLE_DIR/src/libANGLE/queryutils.cpp \
189    $$ANGLE_DIR/src/libANGLE/Renderbuffer.cpp \
190    $$ANGLE_DIR/src/libANGLE/ResourceManager.cpp \
191    $$ANGLE_DIR/src/libANGLE/Sampler.cpp \
192    $$ANGLE_DIR/src/libANGLE/Shader.cpp \
193    $$ANGLE_DIR/src/libANGLE/State.cpp \
194    $$ANGLE_DIR/src/libANGLE/Stream.cpp \
195    $$ANGLE_DIR/src/libANGLE/Surface.cpp \
196    $$ANGLE_DIR/src/libANGLE/Texture.cpp \
197    $$ANGLE_DIR/src/libANGLE/Thread.cpp \
198    $$ANGLE_DIR/src/libANGLE/TransformFeedback.cpp \
199    $$ANGLE_DIR/src/libANGLE/Uniform.cpp \
200    $$ANGLE_DIR/src/libANGLE/validationEGL.cpp \
201    $$ANGLE_DIR/src/libANGLE/validationES.cpp \
202    $$ANGLE_DIR/src/libANGLE/validationES2.cpp \
203    $$ANGLE_DIR/src/libANGLE/validationES3.cpp \
204    $$ANGLE_DIR/src/libANGLE/validationES31.cpp \
205    $$ANGLE_DIR/src/libANGLE/VaryingPacking.cpp \
206    $$ANGLE_DIR/src/libANGLE/VertexArray.cpp \
207    $$ANGLE_DIR/src/libANGLE/VertexAttribute.cpp \
208    $$ANGLE_DIR/src/libANGLE/WorkerThread.cpp \
209    $$ANGLE_DIR/src/libANGLE/renderer/ContextImpl.cpp \
210    $$ANGLE_DIR/src/libANGLE/renderer/DeviceImpl.cpp \
211    $$ANGLE_DIR/src/libANGLE/renderer/DisplayImpl.cpp \
212    $$ANGLE_DIR/src/libANGLE/renderer/driver_utils.cpp \
213    $$ANGLE_DIR/src/libANGLE/renderer/Format_table_autogen.cpp \
214    $$ANGLE_DIR/src/libANGLE/renderer/load_functions_table_autogen.cpp \
215    $$ANGLE_DIR/src/libANGLE/renderer/renderer_utils.cpp \
216    $$ANGLE_DIR/src/libANGLE/renderer/SurfaceImpl.cpp \
217    $$ANGLE_DIR/src/libANGLE/renderer/TextureImpl.cpp \
218    $$ANGLE_DIR/src/libANGLE/renderer/d3d/BufferD3D.cpp \
219    $$ANGLE_DIR/src/libANGLE/renderer/d3d/CompilerD3D.cpp \
220    $$ANGLE_DIR/src/libANGLE/renderer/d3d/DeviceD3D.cpp \
221    $$ANGLE_DIR/src/libANGLE/renderer/d3d/DisplayD3D.cpp \
222    $$ANGLE_DIR/src/libANGLE/renderer/d3d/DynamicHLSL.cpp \
223    $$ANGLE_DIR/src/libANGLE/renderer/d3d/EGLImageD3D.cpp \
224    $$ANGLE_DIR/src/libANGLE/renderer/d3d/FramebufferD3D.cpp \
225    $$ANGLE_DIR/src/libANGLE/renderer/d3d/HLSLCompiler.cpp \
226    $$ANGLE_DIR/src/libANGLE/renderer/d3d/ImageD3D.cpp \
227    $$ANGLE_DIR/src/libANGLE/renderer/d3d/IndexBuffer.cpp \
228    $$ANGLE_DIR/src/libANGLE/renderer/d3d/IndexDataManager.cpp \
229    $$ANGLE_DIR/src/libANGLE/renderer/d3d/NativeWindowD3D.cpp \
230    $$ANGLE_DIR/src/libANGLE/renderer/d3d/ProgramD3D.cpp \
231    $$ANGLE_DIR/src/libANGLE/renderer/d3d/RenderbufferD3D.cpp \
232    $$ANGLE_DIR/src/libANGLE/renderer/d3d/RendererD3D.cpp \
233    $$ANGLE_DIR/src/libANGLE/renderer/d3d/RenderTargetD3D.cpp \
234    $$ANGLE_DIR/src/libANGLE/renderer/d3d/ShaderD3D.cpp \
235    $$ANGLE_DIR/src/libANGLE/renderer/d3d/ShaderExecutableD3D.cpp \
236    $$ANGLE_DIR/src/libANGLE/renderer/d3d/SurfaceD3D.cpp \
237    $$ANGLE_DIR/src/libANGLE/renderer/d3d/SwapChainD3D.cpp \
238    $$ANGLE_DIR/src/libANGLE/renderer/d3d/TextureD3D.cpp \
239    $$ANGLE_DIR/src/libANGLE/renderer/d3d/VertexBuffer.cpp \
240    $$ANGLE_DIR/src/libANGLE/renderer/d3d/VertexDataManager.cpp \
241    $$ANGLE_DIR/src/libGLESv2/entry_points_egl.cpp \
242    $$ANGLE_DIR/src/libGLESv2/entry_points_egl_ext.cpp \
243    $$ANGLE_DIR/src/libGLESv2/entry_points_gles_2_0_autogen.cpp \
244    $$ANGLE_DIR/src/libGLESv2/proc_table_autogen.cpp \
245    $$ANGLE_DIR/src/libGLESv2/entry_points_gles_2_0_ext.cpp \
246    $$ANGLE_DIR/src/libGLESv2/entry_points_gles_3_0_autogen.cpp \
247    $$ANGLE_DIR/src/libGLESv2/entry_points_gles_3_1_autogen.cpp \
248    $$ANGLE_DIR/src/libGLESv2/global_state.cpp \
249    $$ANGLE_DIR/src/libGLESv2/libGLESv2.cpp
250
251angle_d3d11 {
252    HEADERS += \
253        $$ANGLE_DIR/src/libANGLE/renderer/d3d/d3d11/Blit11.h \
254        $$ANGLE_DIR/src/libANGLE/renderer/d3d/d3d11/Buffer11.h \
255        $$ANGLE_DIR/src/libANGLE/renderer/d3d/d3d11/Clear11.h \
256        $$ANGLE_DIR/src/libANGLE/renderer/d3d/d3d11/DebugAnnotator11.h \
257        $$ANGLE_DIR/src/libANGLE/renderer/d3d/d3d11/dxgi_support_table.h \
258        $$ANGLE_DIR/src/libANGLE/renderer/d3d/d3d11/Fence11.h \
259        $$ANGLE_DIR/src/libANGLE/renderer/d3d/d3d11/Framebuffer11.h \
260        $$ANGLE_DIR/src/libANGLE/renderer/d3d/d3d11/formatutils11.h \
261        $$ANGLE_DIR/src/libANGLE/renderer/d3d/d3d11/Image11.h \
262        $$ANGLE_DIR/src/libANGLE/renderer/d3d/d3d11/IndexBuffer11.h \
263        $$ANGLE_DIR/src/libANGLE/renderer/d3d/d3d11/InputLayoutCache.h \
264        $$ANGLE_DIR/src/libANGLE/renderer/d3d/d3d11/NativeWindow11.h \
265        $$ANGLE_DIR/src/libANGLE/renderer/d3d/d3d11/PixelTransfer11.h \
266        $$ANGLE_DIR/src/libANGLE/renderer/d3d/d3d11/Query11.h \
267        $$ANGLE_DIR/src/libANGLE/renderer/d3d/d3d11/Renderer11.h \
268        $$ANGLE_DIR/src/libANGLE/renderer/d3d/d3d11/renderer11_utils.h \
269        $$ANGLE_DIR/src/libANGLE/renderer/d3d/d3d11/RenderTarget11.h \
270        $$ANGLE_DIR/src/libANGLE/renderer/d3d/d3d11/RenderStateCache.h \
271        $$ANGLE_DIR/src/libANGLE/renderer/d3d/d3d11/ShaderExecutable11.h \
272        $$ANGLE_DIR/src/libANGLE/renderer/d3d/d3d11/StateManager11.h \
273        $$ANGLE_DIR/src/libANGLE/renderer/d3d/d3d11/SwapChain11.h \
274        $$ANGLE_DIR/src/libANGLE/renderer/d3d/d3d11/TextureStorage11.h \
275        $$ANGLE_DIR/src/libANGLE/renderer/d3d/d3d11/Trim11.h \
276        $$ANGLE_DIR/src/libANGLE/renderer/d3d/d3d11/texture_format_table.h \
277        $$ANGLE_DIR/src/libANGLE/renderer/d3d/d3d11/VertexBuffer11.h
278
279    SOURCES += \
280        $$ANGLE_DIR/src/libANGLE/renderer/d3d/d3d11/Blit11.cpp \
281        $$ANGLE_DIR/src/libANGLE/renderer/d3d/d3d11/Buffer11.cpp \
282        $$ANGLE_DIR/src/libANGLE/renderer/d3d/d3d11/Clear11.cpp \
283        $$ANGLE_DIR/src/libANGLE/renderer/d3d/d3d11/Context11.cpp \
284        $$ANGLE_DIR/src/libANGLE/renderer/d3d/d3d11/DebugAnnotator11.cpp \
285        $$ANGLE_DIR/src/libANGLE/renderer/d3d/d3d11/dxgi_format_map_autogen.cpp \
286        $$ANGLE_DIR/src/libANGLE/renderer/d3d/d3d11/dxgi_support_table.cpp \
287        $$ANGLE_DIR/src/libANGLE/renderer/d3d/d3d11/Fence11.cpp \
288        $$ANGLE_DIR/src/libANGLE/renderer/d3d/d3d11/Framebuffer11.cpp \
289        $$ANGLE_DIR/src/libANGLE/renderer/d3d/d3d11/formatutils11.cpp \
290        $$ANGLE_DIR/src/libANGLE/renderer/d3d/d3d11/Image11.cpp \
291        $$ANGLE_DIR/src/libANGLE/renderer/d3d/d3d11/IndexBuffer11.cpp \
292        $$ANGLE_DIR/src/libANGLE/renderer/d3d/d3d11/InputLayoutCache.cpp \
293        $$ANGLE_DIR/src/libANGLE/renderer/d3d/d3d11/PixelTransfer11.cpp \
294        $$ANGLE_DIR/src/libANGLE/renderer/d3d/d3d11/ProgramPipeline11.cpp \
295        $$ANGLE_DIR/src/libANGLE/renderer/d3d/d3d11/Query11.cpp \
296        $$ANGLE_DIR/src/libANGLE/renderer/d3d/d3d11/Renderer11.cpp \
297        $$ANGLE_DIR/src/libANGLE/renderer/d3d/d3d11/renderer11_utils.cpp \
298        $$ANGLE_DIR/src/libANGLE/renderer/d3d/d3d11/RenderTarget11.cpp \
299        $$ANGLE_DIR/src/libANGLE/renderer/d3d/d3d11/RenderStateCache.cpp \
300        $$ANGLE_DIR/src/libANGLE/renderer/d3d/d3d11/ResourceManager11.cpp \
301        $$ANGLE_DIR/src/libANGLE/renderer/d3d/d3d11/ShaderExecutable11.cpp \
302        $$ANGLE_DIR/src/libANGLE/renderer/d3d/d3d11/StateManager11.cpp \
303        $$ANGLE_DIR/src/libANGLE/renderer/d3d/d3d11/StreamProducerNV12.cpp \
304        $$ANGLE_DIR/src/libANGLE/renderer/d3d/d3d11/SwapChain11.cpp \
305        $$ANGLE_DIR/src/libANGLE/renderer/d3d/d3d11/TextureStorage11.cpp \
306        $$ANGLE_DIR/src/libANGLE/renderer/d3d/d3d11/TransformFeedback11.cpp \
307        $$ANGLE_DIR/src/libANGLE/renderer/d3d/d3d11/Trim11.cpp \
308        $$ANGLE_DIR/src/libANGLE/renderer/d3d/d3d11/texture_format_table.cpp \
309        $$ANGLE_DIR/src/libANGLE/renderer/d3d/d3d11/texture_format_table_autogen.cpp \
310        $$ANGLE_DIR/src/libANGLE/renderer/d3d/d3d11/VertexArray11.cpp \
311        $$ANGLE_DIR/src/libANGLE/renderer/d3d/d3d11/VertexBuffer11.cpp
312}
313
314!winrt {
315    HEADERS += \
316        $$ANGLE_DIR/src/libANGLE/renderer/d3d/d3d9/Blit9.h \
317        $$ANGLE_DIR/src/libANGLE/renderer/d3d/d3d9/Buffer9.h \
318        $$ANGLE_DIR/src/libANGLE/renderer/d3d/d3d9/DebugAnnotator9.h \
319        $$ANGLE_DIR/src/libANGLE/renderer/d3d/d3d9/Fence9.h \
320        $$ANGLE_DIR/src/libANGLE/renderer/d3d/d3d9/Framebuffer9.h \
321        $$ANGLE_DIR/src/libANGLE/renderer/d3d/d3d9/formatutils9.h \
322        $$ANGLE_DIR/src/libANGLE/renderer/d3d/d3d9/Image9.h \
323        $$ANGLE_DIR/src/libANGLE/renderer/d3d/d3d9/IndexBuffer9.h \
324        $$ANGLE_DIR/src/libANGLE/renderer/d3d/d3d9/Query9.h \
325        $$ANGLE_DIR/src/libANGLE/renderer/d3d/d3d9/Renderer9.h \
326        $$ANGLE_DIR/src/libANGLE/renderer/d3d/d3d9/renderer9_utils.h \
327        $$ANGLE_DIR/src/libANGLE/renderer/d3d/d3d9/RenderTarget9.h \
328        $$ANGLE_DIR/src/libANGLE/renderer/d3d/d3d9/ShaderExecutable9.h \
329        $$ANGLE_DIR/src/libANGLE/renderer/d3d/d3d9/StateManager9.h \
330        $$ANGLE_DIR/src/libANGLE/renderer/d3d/d3d9/SwapChain9.h \
331        $$ANGLE_DIR/src/libANGLE/renderer/d3d/d3d9/TextureStorage9.h \
332        $$ANGLE_DIR/src/libANGLE/renderer/d3d/d3d9/VertexBuffer9.h \
333        $$ANGLE_DIR/src/third_party/systeminfo/SystemInfo.h
334
335    SOURCES += \
336        $$ANGLE_DIR/src/libANGLE/renderer/d3d/d3d9/Blit9.cpp \
337        $$ANGLE_DIR/src/libANGLE/renderer/d3d/d3d9/Buffer9.cpp \
338        $$ANGLE_DIR/src/libANGLE/renderer/d3d/d3d9/Context9.cpp \
339        $$ANGLE_DIR/src/libANGLE/renderer/d3d/d3d9/DebugAnnotator9.cpp \
340        $$ANGLE_DIR/src/libANGLE/renderer/d3d/d3d9/Fence9.cpp \
341        $$ANGLE_DIR/src/libANGLE/renderer/d3d/d3d9/Framebuffer9.cpp \
342        $$ANGLE_DIR/src/libANGLE/renderer/d3d/d3d9/formatutils9.cpp \
343        $$ANGLE_DIR/src/libANGLE/renderer/d3d/d3d9/Image9.cpp \
344        $$ANGLE_DIR/src/libANGLE/renderer/d3d/d3d9/IndexBuffer9.cpp \
345        $$ANGLE_DIR/src/libANGLE/renderer/d3d/d3d9/NativeWindow9.cpp \
346        $$ANGLE_DIR/src/libANGLE/renderer/d3d/d3d9/Query9.cpp \
347        $$ANGLE_DIR/src/libANGLE/renderer/d3d/d3d9/Renderer9.cpp \
348        $$ANGLE_DIR/src/libANGLE/renderer/d3d/d3d9/renderer9_utils.cpp \
349        $$ANGLE_DIR/src/libANGLE/renderer/d3d/d3d9/RenderTarget9.cpp \
350        $$ANGLE_DIR/src/libANGLE/renderer/d3d/d3d9/ShaderExecutable9.cpp \
351        $$ANGLE_DIR/src/libANGLE/renderer/d3d/d3d9/StateManager9.cpp \
352        $$ANGLE_DIR/src/libANGLE/renderer/d3d/d3d9/SwapChain9.cpp \
353        $$ANGLE_DIR/src/libANGLE/renderer/d3d/d3d9/TextureStorage9.cpp \
354        $$ANGLE_DIR/src/libANGLE/renderer/d3d/d3d9/VertexBuffer9.cpp \
355        $$ANGLE_DIR/src/libANGLE/renderer/d3d/d3d9/VertexDeclarationCache.cpp \
356        $$ANGLE_DIR/src/libANGLE/renderer/d3d/d3d11/win32/NativeWindow11Win32.cpp \
357        $$ANGLE_DIR/src/third_party/systeminfo/SystemInfo.cpp
358} else {
359    HEADERS += \
360        $$ANGLE_DIR/src/libANGLE/renderer/d3d/d3d11/winrt/CoreWindowNativeWindow.h \
361        $$ANGLE_DIR/src/libANGLE/renderer/d3d/d3d11/winrt/InspectableNativeWindow.h \
362        $$ANGLE_DIR/src/libANGLE/renderer/d3d/d3d11/winrt/SwapChainPanelNativeWindow.h
363
364    SOURCES += \
365        $$ANGLE_DIR/src/libANGLE/renderer/d3d/d3d11/winrt/CoreWindowNativeWindow.cpp \
366        $$ANGLE_DIR/src/libANGLE/renderer/d3d/d3d11/winrt/InspectableNativeWindow.cpp \
367        $$ANGLE_DIR/src/libANGLE/renderer/d3d/d3d11/winrt/NativeWindow11WinRT.cpp \
368        $$ANGLE_DIR/src/libANGLE/renderer/d3d/d3d11/winrt/SwapChainPanelNativeWindow.cpp
369}
370
371#load_functions.target = load_functions
372#load_functions.commands = python $$ANGLE_DIR/src/libANGLE/renderer/d3d/d3d11/gen_load_functions_table.py \
373#                > $$ANGLE_DIR/src/libANGLE/renderer/d3d/d3d11/gen_load_functions_table.cpp
374#QMAKE_EXTRA_TARGETS += load_functions
375
376# HLSL shaders
377BLITVS = $$ANGLE_DIR/src/libANGLE/renderer/d3d/d3d9/shaders/Blit.vs
378standardvs.input = BLITVS
379standardvs.type = vs_2_0
380standardvs.output = standardvs.h
381
382BLITPS = $$ANGLE_DIR/src/libANGLE/renderer/d3d/d3d9/shaders/Blit.ps
383passthroughps.input = BLITPS
384passthroughps.type = ps_2_0
385passthroughps.output = passthroughps.h
386luminanceps.input = BLITPS
387luminanceps.type = ps_2_0
388luminanceps.output = luminanceps.h
389luminancepremultps.input = BLITPS
390luminancepremultps.type = ps_2_0
391luminancepremultps.output = luminancepremultps.h
392luminanceunmultps.input = BLITPS
393luminanceunmultps.type = ps_2_0
394luminanceunmultps.output = luminanceunmultps.h
395componentmaskps.input = BLITPS
396componentmaskps.type = ps_2_0
397componentmaskps.output = componentmaskps.h
398componentmaskpremultps.input = BLITPS
399componentmaskpremultps.type = ps_2_0
400componentmaskpremultps.output = componentmaskpremultps.h
401componentmaskunmultps.input = BLITPS
402componentmaskunmultps.type = ps_2_0
403componentmaskunmultps.output = componentmaskunmultps.h
404
405PASSTHROUGH2D = $$ANGLE_DIR/src/libANGLE/renderer/d3d/d3d11/shaders/Passthrough2D11.hlsl
406VS_Passthrough2D.input = PASSTHROUGH2D
407VS_Passthrough2D.type = vs_4_0_level_9_3
408VS_Passthrough2D.output = passthrough2d11vs.h
409PS_PassthroughRGBA2D.input = PASSTHROUGH2D
410PS_PassthroughRGBA2D.type = ps_4_0_level_9_3
411PS_PassthroughRGBA2D.output = passthroughrgba2d11ps.h
412PS_PassthroughRGB2D.input = PASSTHROUGH2D
413PS_PassthroughRGB2D.type = ps_4_0_level_9_3
414PS_PassthroughRGB2D.output = passthroughrgb2d11ps.h
415PS_PassthroughRG2D.input = PASSTHROUGH2D
416PS_PassthroughRG2D.type = ps_4_0_level_9_3
417PS_PassthroughRG2D.output = passthroughrg2d11ps.h
418PS_PassthroughR2D.input = PASSTHROUGH2D
419PS_PassthroughR2D.type = ps_4_0_level_9_3
420PS_PassthroughR2D.output = passthroughr2d11ps.h
421PS_PassthroughLum2D.input = PASSTHROUGH2D
422PS_PassthroughLum2D.type = ps_4_0_level_9_3
423PS_PassthroughLum2D.output = passthroughlum2d11ps.h
424PS_PassthroughLumAlpha2D.input = PASSTHROUGH2D
425PS_PassthroughLumAlpha2D.type = ps_4_0_level_9_3
426PS_PassthroughLumAlpha2D.output = passthroughlumalpha2d11ps.h
427PS_PassthroughDepth2D.input = PASSTHROUGH2D
428PS_PassthroughDepth2D.type = ps_4_0
429PS_PassthroughDepth2D.output = passthroughdepth2d11ps.h
430PS_PassthroughRGBA2DUI.input = PASSTHROUGH2D
431PS_PassthroughRGBA2DUI.type = ps_4_0
432PS_PassthroughRGBA2DUI.output = passthroughrgba2dui11ps.h
433PS_PassthroughRGBA2DI.input = PASSTHROUGH2D
434PS_PassthroughRGBA2DI.type = ps_4_0
435PS_PassthroughRGBA2DI.output = passthroughrgba2di11ps.h
436PS_PassthroughRGB2DUI.input = PASSTHROUGH2D
437PS_PassthroughRGB2DUI.type = ps_4_0
438PS_PassthroughRGB2DUI.output = passthroughrgb2dui11ps.h
439PS_PassthroughRGB2DI.input = PASSTHROUGH2D
440PS_PassthroughRGB2DI.type = ps_4_0
441PS_PassthroughRGB2DI.output = passthroughrgb2di11ps.h
442PS_PassthroughRG2DUI.input = PASSTHROUGH2D
443PS_PassthroughRG2DUI.type = ps_4_0
444PS_PassthroughRG2DUI.output = passthroughrg2dui11ps.h
445PS_PassthroughRG2DI.input = PASSTHROUGH2D
446PS_PassthroughRG2DI.type = ps_4_0
447PS_PassthroughRG2DI.output = passthroughrg2di11ps.h
448PS_PassthroughR2DUI.input = PASSTHROUGH2D
449PS_PassthroughR2DUI.type = ps_4_0
450PS_PassthroughR2DUI.output = passthroughr2dui11ps.h
451PS_PassthroughR2DI.input = PASSTHROUGH2D
452PS_PassthroughR2DI.type = ps_4_0
453PS_PassthroughR2DI.output = passthroughr2di11ps.h
454PS_PassthroughA2D.input = PASSTHROUGH2D
455PS_PassthroughA2D.type = ps_4_0_level_9_3
456PS_PassthroughA2D.output = passthrougha2d11ps.h
457PS_PassthroughRGBA2DMS.input = PASSTHROUGH2D
458PS_PassthroughRGBA2DMS.type = ps_4_1
459PS_PassthroughRGBA2DMS.output = passthroughrgba2dms11ps.h
460
461CLEAR = $$ANGLE_DIR/src/libANGLE/renderer/d3d/d3d11/shaders/Clear11.hlsl
462VS_Clear_FL9.input = CLEAR
463VS_Clear_FL9.type = vs_4_0_level_9_3
464VS_Clear_FL9.output = clear11_fl9vs.h
465PS_ClearFloat_FL9.input = CLEAR
466PS_ClearFloat_FL9.type = ps_4_0_level_9_3
467PS_ClearFloat_FL9.output = clearfloat11_fl9ps.h
468VS_Clear.input = CLEAR
469VS_Clear.type = vs_4_0
470VS_Clear.output = clear11vs.h
471VS_Multiview_Clear.input = CLEAR
472VS_Multiview_Clear.type = vs_4_0
473VS_Multiview_Clear.output = clear11multiviewvs.h
474GS_Multiview_Clear.input = CLEAR
475GS_Multiview_Clear.type = gs_4_0
476GS_Multiview_Clear.output = clear11multiviewgs.h
477PS_ClearDepth.input = CLEAR
478PS_ClearDepth.type = ps_4_0
479PS_ClearDepth.output = cleardepth11ps.h
480PS_ClearFloat1.input = CLEAR
481PS_ClearFloat1.type = ps_4_0
482PS_ClearFloat1.output = clearfloat11ps1.h
483PS_ClearFloat2.input = CLEAR
484PS_ClearFloat2.type = ps_4_0
485PS_ClearFloat2.output = clearfloat11ps2.h
486PS_ClearFloat3.input = CLEAR
487PS_ClearFloat3.type = ps_4_0
488PS_ClearFloat3.output = clearfloat11ps3.h
489PS_ClearFloat4.input = CLEAR
490PS_ClearFloat4.type = ps_4_0
491PS_ClearFloat4.output = clearfloat11ps4.h
492PS_ClearFloat5.input = CLEAR
493PS_ClearFloat5.type = ps_4_0
494PS_ClearFloat5.output = clearfloat11ps5.h
495PS_ClearFloat6.input = CLEAR
496PS_ClearFloat6.type = ps_4_0
497PS_ClearFloat6.output = clearfloat11ps6.h
498PS_ClearFloat7.input = CLEAR
499PS_ClearFloat7.type = ps_4_0
500PS_ClearFloat7.output = clearfloat11ps7.h
501PS_ClearFloat8.input = CLEAR
502PS_ClearFloat8.type = ps_4_0
503PS_ClearFloat8.output = clearfloat11ps8.h
504PS_ClearUint1.input = CLEAR
505PS_ClearUint1.type = ps_4_0
506PS_ClearUint1.output = clearuint11ps1.h
507PS_ClearUint2.input = CLEAR
508PS_ClearUint2.type = ps_4_0
509PS_ClearUint2.output = clearuint11ps2.h
510PS_ClearUint3.input = CLEAR
511PS_ClearUint3.type = ps_4_0
512PS_ClearUint3.output = clearuint11ps3.h
513PS_ClearUint4.input = CLEAR
514PS_ClearUint4.type = ps_4_0
515PS_ClearUint4.output = clearuint11ps4.h
516PS_ClearUint5.input = CLEAR
517PS_ClearUint5.type = ps_4_0
518PS_ClearUint5.output = clearuint11ps5.h
519PS_ClearUint6.input = CLEAR
520PS_ClearUint6.type = ps_4_0
521PS_ClearUint6.output = clearuint11ps6.h
522PS_ClearUint7.input = CLEAR
523PS_ClearUint7.type = ps_4_0
524PS_ClearUint7.output = clearuint11ps7.h
525PS_ClearUint8.input = CLEAR
526PS_ClearUint8.type = ps_4_0
527PS_ClearUint8.output = clearuint11ps8.h
528PS_ClearSint1.input = CLEAR
529PS_ClearSint1.type = ps_4_0
530PS_ClearSint1.output = clearsint11ps1.h
531PS_ClearSint2.input = CLEAR
532PS_ClearSint2.type = ps_4_0
533PS_ClearSint2.output = clearsint11ps2.h
534PS_ClearSint3.input = CLEAR
535PS_ClearSint3.type = ps_4_0
536PS_ClearSint3.output = clearsint11ps3.h
537PS_ClearSint4.input = CLEAR
538PS_ClearSint4.type = ps_4_0
539PS_ClearSint4.output = clearsint11ps4.h
540PS_ClearSint5.input = CLEAR
541PS_ClearSint5.type = ps_4_0
542PS_ClearSint5.output = clearsint11ps5.h
543PS_ClearSint6.input = CLEAR
544PS_ClearSint6.type = ps_4_0
545PS_ClearSint6.output = clearsint11ps6.h
546PS_ClearSint7.input = CLEAR
547PS_ClearSint7.type = ps_4_0
548PS_ClearSint7.output = clearsint11ps7.h
549PS_ClearSint8.input = CLEAR
550PS_ClearSint8.type = ps_4_0
551PS_ClearSint8.output = clearsint11ps8.h
552
553PASSTHROUGH3D = $$ANGLE_DIR/src/libANGLE/renderer/d3d/d3d11/shaders/Passthrough3D11.hlsl
554VS_Passthrough3D.input = PASSTHROUGH3D
555VS_Passthrough3D.type = vs_4_0
556VS_Passthrough3D.output = passthrough3d11vs.h
557GS_Passthrough3D.input = PASSTHROUGH3D
558GS_Passthrough3D.type = gs_4_0
559GS_Passthrough3D.output = passthrough3d11gs.h
560PS_PassthroughRGBA3D.input = PASSTHROUGH3D
561PS_PassthroughRGBA3D.type = ps_4_0
562PS_PassthroughRGBA3D.output = passthroughrgba3d11ps.h
563PS_PassthroughRGBA3DUI.input = PASSTHROUGH3D
564PS_PassthroughRGBA3DUI.type = ps_4_0
565PS_PassthroughRGBA3DUI.output = passthroughrgba3dui11ps.h
566PS_PassthroughRGBA3DI.input = PASSTHROUGH3D
567PS_PassthroughRGBA3DI.type = ps_4_0
568PS_PassthroughRGBA3DI.output = passthroughrgba3di11ps.h
569PS_PassthroughRGB3D.input = PASSTHROUGH3D
570PS_PassthroughRGB3D.type = ps_4_0
571PS_PassthroughRGB3D.output = passthroughrgb3d11ps.h
572PS_PassthroughRGB3DUI.input = PASSTHROUGH3D
573PS_PassthroughRGB3DUI.type = ps_4_0
574PS_PassthroughRGB3DUI.output = passthroughrgb3dui11ps.h
575PS_PassthroughRGB3DI.input = PASSTHROUGH3D
576PS_PassthroughRGB3DI.type = ps_4_0
577PS_PassthroughRGB3DI.output = passthroughrgb3di11ps.h
578PS_PassthroughRG3D.input = PASSTHROUGH3D
579PS_PassthroughRG3D.type = ps_4_0
580PS_PassthroughRG3D.output = passthroughrg3d11ps.h
581PS_PassthroughRG3DUI.input = PASSTHROUGH3D
582PS_PassthroughRG3DUI.type = ps_4_0
583PS_PassthroughRG3DUI.output = passthroughrg3dui11ps.h
584PS_PassthroughRG3DI.input = PASSTHROUGH3D
585PS_PassthroughRG3DI.type = ps_4_0
586PS_PassthroughRG3DI.output = passthroughrg3di11ps.h
587PS_PassthroughR3D.input = PASSTHROUGH3D
588PS_PassthroughR3D.type = ps_4_0
589PS_PassthroughR3D.output = passthroughr3d11ps.h
590PS_PassthroughR3DUI.input = PASSTHROUGH3D
591PS_PassthroughR3DUI.type = ps_4_0
592PS_PassthroughR3DUI.output = passthroughr3dui11ps.h
593PS_PassthroughR3DI.input = PASSTHROUGH3D
594PS_PassthroughR3DI.type = ps_4_0
595PS_PassthroughR3DI.output = passthroughr3di11ps.h
596PS_PassthroughLum3D.input = PASSTHROUGH3D
597PS_PassthroughLum3D.type = ps_4_0
598PS_PassthroughLum3D.output = passthroughlum3d11ps.h
599PS_PassthroughLumAlpha3D.input = PASSTHROUGH3D
600PS_PassthroughLumAlpha3D.type = ps_4_0
601PS_PassthroughLumAlpha3D.output = passthroughlumalpha3d11ps.h
602
603SWIZZLE = $$ANGLE_DIR/src/libANGLE/renderer/d3d/d3d11/shaders/Swizzle11.hlsl
604PS_SwizzleF2D.input = SWIZZLE
605PS_SwizzleF2D.type = ps_4_0
606PS_SwizzleF2D.output = swizzlef2dps.h
607PS_SwizzleI2D.input = SWIZZLE
608PS_SwizzleI2D.type = ps_4_0
609PS_SwizzleI2D.output = swizzlei2dps.h
610PS_SwizzleUI2D.input = SWIZZLE
611PS_SwizzleUI2D.type = ps_4_0
612PS_SwizzleUI2D.output = swizzleui2dps.h
613PS_SwizzleF3D.input = SWIZZLE
614PS_SwizzleF3D.type = ps_4_0
615PS_SwizzleF3D.output = swizzlef3dps.h
616PS_SwizzleI3D.input = SWIZZLE
617PS_SwizzleI3D.type = ps_4_0
618PS_SwizzleI3D.output = swizzlei3dps.h
619PS_SwizzleUI3D.input = SWIZZLE
620PS_SwizzleUI3D.type = ps_4_0
621PS_SwizzleUI3D.output = swizzleui3dps.h
622PS_SwizzleF2DArray.input = SWIZZLE
623PS_SwizzleF2DArray.type = ps_4_0
624PS_SwizzleF2DArray.output = swizzlef2darrayps.h
625PS_SwizzleI2DArray.input = SWIZZLE
626PS_SwizzleI2DArray.type = ps_4_0
627PS_SwizzleI2DArray.output = swizzlei2darrayps.h
628PS_SwizzleUI2DArray.input = SWIZZLE
629PS_SwizzleUI2DArray.type = ps_4_0
630PS_SwizzleUI2DArray.output = swizzleui2darrayps.h
631
632BUFFERTOTEXTURE = $$ANGLE_DIR/src/libANGLE/renderer/d3d/d3d11/shaders/BufferToTexture11.hlsl
633VS_BufferToTexture.input = BUFFERTOTEXTURE
634VS_BufferToTexture.type = vs_4_0
635VS_BufferToTexture.output = buffertotexture11_vs.h
636GS_BufferToTexture.input = BUFFERTOTEXTURE
637GS_BufferToTexture.type = gs_4_0
638GS_BufferToTexture.output = buffertotexture11_gs.h
639PS_BufferToTexture_4F.input = BUFFERTOTEXTURE
640PS_BufferToTexture_4F.type = ps_4_0
641PS_BufferToTexture_4F.output = buffertotexture11_ps_4f.h
642PS_BufferToTexture_4I.input = BUFFERTOTEXTURE
643PS_BufferToTexture_4I.type = ps_4_0
644PS_BufferToTexture_4I.output = buffertotexture11_ps_4i.h
645PS_BufferToTexture_4UI.input = BUFFERTOTEXTURE
646PS_BufferToTexture_4UI.type = ps_4_0
647PS_BufferToTexture_4UI.output = buffertotexture11_ps_4ui.h
648
649MULTIPLYALPHA = $$ANGLE_DIR/src/libANGLE/renderer/d3d/d3d11/shaders/MultiplyAlpha.hlsl
650PS_FtoF_PM_RGBA.input = MULTIPLYALPHA
651PS_FtoF_PM_RGBA.type = ps_4_0
652PS_FtoF_PM_RGBA.output = multiplyalpha_ftof_pm_rgba_ps.h
653PS_FtoF_UM_RGBA.input = MULTIPLYALPHA
654PS_FtoF_UM_RGBA.type = ps_4_0
655PS_FtoF_UM_RGBA.output = multiplyalpha_ftof_um_rgba_ps.h
656PS_FtoF_PM_RGB.input = MULTIPLYALPHA
657PS_FtoF_PM_RGB.type = ps_4_0
658PS_FtoF_PM_RGB.output = multiplyalpha_ftof_pm_rgb_ps.h
659PS_FtoF_UM_RGB.input = MULTIPLYALPHA
660PS_FtoF_UM_RGB.type = ps_4_0
661PS_FtoF_UM_RGB.output = multiplyalpha_ftof_um_rgb_ps.h
662PS_FtoU_PT_RGBA.input = MULTIPLYALPHA
663PS_FtoU_PT_RGBA.type = ps_4_0
664PS_FtoU_PT_RGBA.output = multiplyalpha_ftou_pt_rgba_ps.h
665PS_FtoU_PM_RGBA.input = MULTIPLYALPHA
666PS_FtoU_PM_RGBA.type = ps_4_0
667PS_FtoU_PM_RGBA.output = multiplyalpha_ftou_pm_rgba_ps.h
668PS_FtoU_UM_RGBA.input = MULTIPLYALPHA
669PS_FtoU_UM_RGBA.type = ps_4_0
670PS_FtoU_UM_RGBA.output = multiplyalpha_ftou_um_rgba_ps.h
671PS_FtoU_PT_RGB.input = MULTIPLYALPHA
672PS_FtoU_PT_RGB.type = ps_4_0
673PS_FtoU_PT_RGB.output = multiplyalpha_ftou_pt_rgb_ps.h
674PS_FtoU_PM_RGB.input = MULTIPLYALPHA
675PS_FtoU_PM_RGB.type = ps_4_0
676PS_FtoU_PM_RGB.output = multiplyalpha_ftou_pm_rgb_ps.h
677PS_FtoU_UM_RGB.input = MULTIPLYALPHA
678PS_FtoU_UM_RGB.type = ps_4_0
679PS_FtoU_UM_RGB.output = multiplyalpha_ftou_um_rgb_ps.h
680PS_FtoF_PM_LUMA.input = MULTIPLYALPHA
681PS_FtoF_PM_LUMA.type = ps_4_0
682PS_FtoF_PM_LUMA.output = multiplyalpha_ftof_pm_luma_ps.h
683PS_FtoF_UM_LUMA.input = MULTIPLYALPHA
684PS_FtoF_UM_LUMA.type = ps_4_0
685PS_FtoF_UM_LUMA.output = multiplyalpha_ftof_um_luma_ps.h
686PS_FtoF_PM_LUMAALPHA.input = MULTIPLYALPHA
687PS_FtoF_PM_LUMAALPHA.type = ps_4_0
688PS_FtoF_PM_LUMAALPHA.output = multiplyalpha_ftof_pm_lumaalpha_ps.h
689PS_FtoF_UM_LUMAALPHA.input = MULTIPLYALPHA
690PS_FtoF_UM_LUMAALPHA.type = ps_4_0
691PS_FtoF_UM_LUMAALPHA.output = multiplyalpha_ftof_um_lumaalpha_ps.h
692
693RESOLVEDEPTHSTENCIL = \
694    $$ANGLE_DIR/src/libANGLE/renderer/d3d/d3d11/shaders/ResolveDepthStencil.hlsl
695VS_ResolveDepthStencil.input = RESOLVEDEPTHSTENCIL
696VS_ResolveDepthStencil.type = vs_4_1
697VS_ResolveDepthStencil.output = resolvedepthstencil11_vs.h
698PS_ResolveDepth.input = RESOLVEDEPTHSTENCIL
699PS_ResolveDepth.type = ps_4_1
700PS_ResolveDepth.output = resolvedepth11_ps.h
701PS_ResolveDepthStencil.input = RESOLVEDEPTHSTENCIL
702PS_ResolveDepthStencil.type = ps_4_1
703PS_ResolveDepthStencil.output = resolvedepthstencil11_ps.h
704PS_ResolveStencil.input = RESOLVEDEPTHSTENCIL
705PS_ResolveStencil.type = ps_4_1
706PS_ResolveStencil.output = resolvestencil11_ps.h
707
708# D3D11
709angle_d3d11: SHADERS = VS_Passthrough2D \
710    PS_PassthroughRGB2D PS_PassthroughRGB2DUI PS_PassthroughRGB2DI \
711    PS_PassthroughRGBA2D PS_PassthroughRGBA2DUI PS_PassthroughRGBA2DI \
712    PS_PassthroughRG2D PS_PassthroughRG2DUI PS_PassthroughRG2DI \
713    PS_PassthroughR2D PS_PassthroughR2DUI PS_PassthroughR2DI \
714    PS_PassthroughA2D \
715    PS_PassthroughLum2D PS_PassthroughLumAlpha2D PS_PassthroughDepth2D \
716    VS_Clear_FL9 PS_ClearFloat_FL9 VS_Clear VS_Multiview_Clear \
717    GS_Multiview_Clear PS_ClearDepth \
718    PS_ClearFloat1 PS_ClearFloat2 PS_ClearFloat3 PS_ClearFloat4 PS_ClearFloat5 \
719    PS_ClearFloat6 PS_ClearFloat7 PS_ClearFloat8 \
720    PS_ClearUint1 PS_ClearUint2 PS_ClearUint3 PS_ClearUint4 \
721    PS_ClearUint5 PS_ClearUint6 PS_ClearUint7 PS_ClearUint8 \
722    PS_ClearSint1 PS_ClearSint2 PS_ClearSint3 PS_ClearSint4 \
723    PS_ClearSint5 PS_ClearSint6 PS_ClearSint7 PS_ClearSint8 \
724    VS_Passthrough3D GS_Passthrough3D \
725    PS_PassthroughRGBA3D PS_PassthroughRGBA3DUI PS_PassthroughRGBA3DI \
726    PS_PassthroughRGB3D PS_PassthroughRGB3DUI PS_PassthroughRGB3DI \
727    PS_PassthroughRG3D PS_PassthroughRG3DUI PS_PassthroughRG3DI \
728    PS_PassthroughR3D PS_PassthroughR3DUI PS_PassthroughR3DI \
729    PS_PassthroughLum3D PS_PassthroughLumAlpha3D \
730    PS_SwizzleF2D PS_SwizzleI2D PS_SwizzleUI2D \
731    PS_SwizzleF3D PS_SwizzleI3D PS_SwizzleUI3D \
732    PS_SwizzleF2DArray PS_SwizzleI2DArray PS_SwizzleUI2DArray \
733    VS_BufferToTexture GS_BufferToTexture \
734    PS_BufferToTexture_4F PS_BufferToTexture_4I PS_BufferToTexture_4UI \
735    PS_FtoF_PM_RGBA PS_FtoF_UM_RGBA PS_FtoF_PM_RGB PS_FtoF_UM_RGB \
736    PS_FtoU_PT_RGBA PS_FtoU_PM_RGBA PS_FtoU_UM_RGBA \
737    PS_FtoU_PT_RGB PS_FtoU_PM_RGB PS_FtoU_UM_RGB \
738    PS_FtoF_PM_LUMA PS_FtoF_UM_LUMA \
739    PS_FtoF_PM_LUMAALPHA PS_FtoF_UM_LUMAALPHA \
740    VS_ResolveDepthStencil PS_ResolveDepth PS_ResolveDepthStencil PS_ResolveStencil
741
742# This shader causes an internal compiler error in mingw73. Re-enable it, when
743# our mingw version can handle it.
744!mingw: angle_d3d11: SHADERS += PS_PassthroughRGBA2DMS
745
746# D3D9
747!winrt: SHADERS += standardvs passthroughps \
748    luminanceps luminancepremultps luminanceunmultps \
749    componentmaskps componentmaskpremultps componentmaskunmultps
750
751# Generate headers
752for (SHADER, SHADERS) {
753    INPUT = $$eval($${SHADER}.input)
754    OUT_DIR = $$OUT_PWD/libANGLE/$$relative_path($$dirname($$INPUT), $$ANGLE_DIR/src/libANGLE)/compiled
755    fxc_$${SHADER}.commands = $$FXC -nologo -E $${SHADER} -T $$eval($${SHADER}.type) -Fh ${QMAKE_FILE_OUT} ${QMAKE_FILE_NAME}
756    fxc_$${SHADER}.output = $$OUT_DIR/$$eval($${SHADER}.output)
757    fxc_$${SHADER}.input = $$INPUT
758    fxc_$${SHADER}.dependency_type = TYPE_C
759    fxc_$${SHADER}.variable_out = HEADERS
760    fxc_$${SHADER}.CONFIG += target_predeps
761    QMAKE_EXTRA_COMPILERS += fxc_$${SHADER}
762}
763
764khr_headers.files = $$ANGLE_DIR/include/KHR/khrplatform.h
765khr_headers.path = $$[QT_INSTALL_HEADERS]/QtANGLE/KHR
766gles2_headers.files = \
767    $$ANGLE_DIR/include/GLES2/gl2.h \
768    $$ANGLE_DIR/include/GLES2/gl2ext.h \
769    $$ANGLE_DIR/include/GLES2/gl2ext_angle.h \
770    $$ANGLE_DIR/include/GLES2/gl2platform.h
771gles2_headers.path = $$[QT_INSTALL_HEADERS]/QtANGLE/GLES2
772gles3_headers.files = \
773    $$ANGLE_DIR/include/GLES3/gl3.h \
774    $$ANGLE_DIR/include/GLES3/gl3platform.h
775gles3_headers.path = $$[QT_INSTALL_HEADERS]/QtANGLE/GLES3
776INSTALLS += khr_headers gles2_headers
777angle_d3d11: INSTALLS += gles3_headers
778