mumble/overlay/overlay-shared.pro
Mikkel Krautz 3763d596c6 overlay: replace use of Effects11 with direct use of our split HLSL shaders.
Effects11 is quite heavy, in that it pulls D3DCompiler_43.dll (x86)
and D3DCompiler_47.dll (x64) into our Mumble installations on Windows.

Together, these two DLLs are ~6MB in size.

Also, the removal of the Effects11 library itself cuts the sizes of
the overlay DLLs by more than half:

  mumble_ol.dll with Effects11:         407 KB
  mumble_ol.dll without Effects11:      162 KB

  mumble_ol_x64.dll with Effects11:     497 KB
  mumble_ol_x64.dll without Effects11:  211 KB

Directly using the split shaders is just as easy, and uses less code than
using the Effects11 library. At least for our simple shaders.

And we gain a lot from it.

Done.
2015-11-28 10:05:07 +01:00

70 lines
1.9 KiB
Prolog

include (../compiler.pri)
VERSION = 1.3.0
TARGET_EXT = .dll
TEMPLATE = lib
CONFIG -= qt
CONFIG *= dll shared debug_and_release warn_on
CONFIG -= embed_manifest_dll
TARGET = mumble_ol
RC_FILE = mumble_ol.rc
SOURCES = lib.cpp d3d9.cpp dxgi.cpp d3d10.cpp d3d11.cpp ods.cpp opengl.cpp HardHook.cpp D11StateBlock.cpp
HEADERS = lib.h ods.h HardHook.h overlay_blacklist.h D11StateBlock.h ../3rdparty/GL/glext.h
EFFECTS = overlay.fx
DX11_PIXEL_SHADERS = overlay11.ps
DX11_VERTEX_SHADERS = overlay11.vs
DIST = overlay.h overlay.fx HardHook.h
DEFINES -= UNICODE
QMAKE_CXXFLAGS_RELEASE -= -MD
QMAKE_CXXFLAGS_DEBUG -= -MDd
QMAKE_CXXFLAGS_RELEASE *= -MT
QMAKE_CXXFLAGS_DEBUG *= -MTd
LIBS *= -ldxguid -luuid -lole32 -luser32 -ladvapi32
LIBS *= -ld3d9 -ld3d10 -ld3d11 -ld3dcompiler -ld3dx9 -ld3dx10 -ld3dx11 -ldxgi
CONFIG(force-x86_64-toolchain) {
DEFINES += USE_MINHOOK
INCLUDEPATH *= ../3rdparty/minhook-src/include
LIBS *= -lminhook
}
CONFIG(release, debug|release) {
DESTDIR = ../release
QMAKE_LIBDIR += ../release
}
CONFIG(debug, debug|release) {
DESTDIR = ../debug
QMAKE_LIBDIR += ../debug
DEFINES *= DEBUG
}
# Override fxc binary for the x86 build.
CONFIG(force-x86-toolchain) {
FXC = "\"$$(DXSDK_DIR)\Utilities\bin\x86\fxc.exe\""
} else {
FXC = fxc.exe
}
fxc.output = ${QMAKE_FILE_BASE}.hex
fxc.commands = $${FXC} /Tfx_4_0 /O3 /Fh${QMAKE_FILE_OUT} ${QMAKE_FILE_NAME}
fxc.input = EFFECTS
fxc.CONFIG *= no_link target_predeps
QMAKE_EXTRA_COMPILERS *= fxc
vs11.output = ${QMAKE_FILE_BASE}.ps.h
vs11.commands = $${FXC} /Tvs_5_0 /O3 /Vng_vertex_shader /Fh${QMAKE_FILE_OUT} ${QMAKE_FILE_NAME}
vs11.input = DX11_VERTEX_SHADERS
vs11.CONFIG *= no_link target_predeps
QMAKE_EXTRA_COMPILERS *= vs11
ps11.output = ${QMAKE_FILE_BASE}.vs.h
ps11.commands = $${FXC} /Tps_5_0 /O3 /Vng_pixel_shader /Fh${QMAKE_FILE_OUT} ${QMAKE_FILE_NAME}
ps11.input = DX11_PIXEL_SHADERS
ps11.CONFIG *= no_link target_predeps
QMAKE_EXTRA_COMPILERS *= ps11