@@ -5,16 +5,25 @@ rem Licensed under the MIT License.
5
5
setlocal
6
6
set error = 0
7
7
8
+ if %PROCESSOR_ARCHITECTURE% .== ARM64. (set FXCARCH=arm64) else (if %PROCESSOR_ARCHITECTURE% .== AMD64. (set FXCARCH=x64) else (set FXCARCH=x86))
9
+
8
10
set FXCOPTS = /nologo /WX /Ges /Qstrip_reflect /Qstrip_debug
9
11
10
- set PCFXC = " %WindowsSdkVerBinPath% x86\fxc.exe"
12
+ if defined LegacyShaderCompiler goto fxcviaenv
13
+ set PCFXC = " %WindowsSdkVerBinPath%%FXCARCH% \fxc.exe"
11
14
if exist %PCFXC% goto continue
12
- set PCFXC = " %WindowsSdkBinPath%%WindowsSDKVersion% \x86 \fxc.exe"
15
+ set PCFXC = " %WindowsSdkBinPath%%WindowsSDKVersion% \%FXCARCH% \fxc.exe"
13
16
if exist %PCFXC% goto continue
14
- set PCFXC = " %WindowsSdkDir% bin\%WindowsSDKVersion% \x86 \fxc.exe"
17
+ set PCFXC = " %WindowsSdkDir% bin\%WindowsSDKVersion% \%FXCARCH% \fxc.exe"
15
18
if exist %PCFXC% goto continue
16
19
17
20
set PCFXC = fxc.exe
21
+ goto continue
22
+
23
+ :fxcviaenv
24
+ set PCFXC = " %LegacyShaderCompiler% "
25
+ if not exist %PCFXC% goto needfxc
26
+ goto continue
18
27
19
28
:continue
20
29
if not defined CompileShadersOutput set CompileShadersOutput = Shaders
@@ -23,45 +32,50 @@ set StrTrim=%StrTrim: ##=%
23
32
set CompileShadersOutput = %StrTrim:## =%
24
33
@ if not exist " %CompileShadersOutput% " mkdir " %CompileShadersOutput% "
25
34
26
-
27
- set FXC = %PCFXC% ddsview.fx %FXCOPTS% /EVS /Tvs_4_1 /Fh%CompileShadersOutput% \ddsview_vs.inc
35
+ set FXC = %PCFXC% ddsview.hlsl %FXCOPTS% /EVS /Tvs_4_1 /Fh%CompileShadersOutput% \ddsview_vs.inc
28
36
echo %FXC%
29
37
%FXC%
30
38
@ if ERRORLEVEL 1 goto error
31
39
32
- set FXC = %PCFXC% ddsview.fx %FXCOPTS% /EPS_1D /Tps_4_1 /Fh%CompileShadersOutput% \ddsview_ps1D.inc
40
+ set FXC = %PCFXC% ddsview.hlsl %FXCOPTS% /EPS_1D /Tps_4_1 /Fh%CompileShadersOutput% \ddsview_ps1D.inc
33
41
echo %FXC%
34
42
%FXC%
35
43
@ if ERRORLEVEL 1 goto error
36
44
37
- set FXC = %PCFXC% ddsview.fx %FXCOPTS% /EPS_1DArray /Tps_4_1 /Fh%CompileShadersOutput% \ddsview_ps1Darray.inc
45
+ set FXC = %PCFXC% ddsview.hlsl %FXCOPTS% /EPS_1DArray /Tps_4_1 /Fh%CompileShadersOutput% \ddsview_ps1Darray.inc
38
46
echo %FXC%
39
47
%FXC%
40
48
@ if ERRORLEVEL 1 goto error
41
49
42
- set FXC = %PCFXC% ddsview.fx %FXCOPTS% /EPS_2D /Tps_4_1 /Fh%CompileShadersOutput% \ddsview_ps2D.inc
50
+ set FXC = %PCFXC% ddsview.hlsl %FXCOPTS% /EPS_2D /Tps_4_1 /Fh%CompileShadersOutput% \ddsview_ps2D.inc
43
51
echo %FXC%
44
52
%FXC%
45
53
@ if ERRORLEVEL 1 goto error
46
54
47
- set FXC = %PCFXC% ddsview.fx %FXCOPTS% /EPS_2DArray /Tps_4_1 /Fh%CompileShadersOutput% \ddsview_ps2Darray.inc
55
+ set FXC = %PCFXC% ddsview.hlsl %FXCOPTS% /EPS_2DArray /Tps_4_1 /Fh%CompileShadersOutput% \ddsview_ps2Darray.inc
48
56
echo %FXC%
49
57
%FXC%
50
58
@ if ERRORLEVEL 1 goto error
51
59
52
- set FXC = %PCFXC% ddsview.fx %FXCOPTS% /EPS_3D /Tps_4_1 /Fh%CompileShadersOutput% \ddsview_ps3D.inc
60
+ set FXC = %PCFXC% ddsview.hlsl %FXCOPTS% /EPS_3D /Tps_4_1 /Fh%CompileShadersOutput% \ddsview_ps3D.inc
53
61
echo %FXC%
54
62
%FXC%
55
63
@ if ERRORLEVEL 1 goto error
56
64
57
- set FXC = %PCFXC% ddsview.fx %FXCOPTS% /EPS_Cube /Tps_4_1 /Fh%CompileShadersOutput% \ddsview_psCube.inc
65
+ set FXC = %PCFXC% ddsview.hlsl %FXCOPTS% /EPS_Cube /Tps_4_1 /Fh%CompileShadersOutput% \ddsview_psCube.inc
58
66
echo %FXC%
59
67
%FXC%
60
68
@ if ERRORLEVEL 1 goto error
61
69
62
70
@ echo --- Shaders built ok ---
63
- @ goto end
71
+ endlocal
72
+ exit /b 0
73
+
64
74
:error
65
75
@ echo --- ERROR: Shader build failed ---
66
76
exit /b 1
67
- :end
77
+
78
+ :needfxc
79
+ echo ERROR: CompileShaders requires FXC.EXE
80
+ exit /b 1
81
+ :end
0 commit comments