| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677 |
- #!/usr/bin/env python
- from misc.utility.scons_hints import *
- import methods
- Import("env")
- env_effects = env.Clone()
- # Thirdparty source files
- thirdparty_obj = []
- thirdparty_dir = "#thirdparty/amd-fsr2/"
- thirdparty_sources = ["ffx_assert.cpp", "ffx_fsr2.cpp"]
- thirdparty_sources = [thirdparty_dir + file for file in thirdparty_sources]
- env_effects.Prepend(CPPPATH=[thirdparty_dir])
- def areatex_builder(target, source, env):
- buffer = methods.get_buffer(str(source[0]))
- with methods.generated_wrapper(str(target[0])) as file:
- file.write(f"""\
- #define AREATEX_WIDTH 160
- #define AREATEX_HEIGHT 560
- #define AREATEX_PITCH (AREATEX_WIDTH * 2)
- #define AREATEX_SIZE (AREATEX_HEIGHT * AREATEX_PITCH)
- inline constexpr const unsigned char area_tex_png[] = {{
- {methods.format_buffer(buffer, 1)}
- }};
- """)
- env.CommandNoCache("smaa_area_tex.gen.h", "#thirdparty/smaa/AreaTex.png", env.Run(areatex_builder))
- def searchtex_builder(target, source, env):
- buffer = methods.get_buffer(str(source[0]))
- with methods.generated_wrapper(str(target[0])) as file:
- file.write(f"""\
- #define SEARCHTEX_WIDTH 64
- #define SEARCHTEX_HEIGHT 16
- #define SEARCHTEX_PITCH SEARCHTEX_WIDTH
- #define SEARCHTEX_SIZE (SEARCHTEX_HEIGHT * SEARCHTEX_PITCH)
- inline constexpr const unsigned char search_tex_png[] = {{
- {methods.format_buffer(buffer, 1)}
- }};
- """)
- env.CommandNoCache("smaa_search_tex.gen.h", "#thirdparty/smaa/SearchTex.png", env.Run(searchtex_builder))
- # This flag doesn't actually control anything GCC specific in FSR2. It determines
- # if symbols should be exported, which is not required for Godot.
- env_effects.Append(CPPDEFINES=["FFX_GCC"])
- env_thirdparty = env_effects.Clone()
- env_thirdparty.disable_warnings()
- env_thirdparty.add_source_files(thirdparty_obj, thirdparty_sources)
- env.servers_sources += thirdparty_obj
- # Godot source files
- module_obj = []
- env_effects.add_source_files(module_obj, "*.cpp")
- if env["metal"]:
- env_effects.add_source_files(module_obj, "metal_fx.mm")
- env.servers_sources += module_obj
- # Needed to force rebuilding the module files when the thirdparty library is updated.
- env.Depends(module_obj, thirdparty_obj)
|