The endian check in this tool was generating a GCC warning that the
array was being used uninitialised. Testing on amd64 which is little
endian returned failure which was incorrect. Have replaced with better
standard code for this function which now returns as expected on amd64
with no warnings.
make-fonts-archive.py: This script archives the fonts from
gui/themes/fonts to dists/engine-data/fonts.dat
devtools/module.mk: Add a build target for fonts.dat
The script would start trying to set the last-modified date for each
part of the output directory path (e.g. /home/). The previous code was
getting too complex so just do a simpler method.
Main changes:
- use bytes instead of ByteString
ByteString lacks a `decode` which we do call
- use newer python syntax `|` to not use Optional
- use newer python syntax to use lowercase list and tuple instead of
List and Tuple
- typing fixes where the incorrect type was used
Add Apple Accelerate framework to iOS and tvOS targets. The framework
utilizes NEON extensions on the ARM chip to accelerate calculations.
This will come to use when processing texture data.
Add Apple TV OS as a new target to the xcode project creator utility.
Make sure that TV OS specific files are not part of the iOS and macOS
targets and the other way around.
The TV OS project will utilize the same source code files as the iOS
project but will instead use the tvos dist files.
The Apple TV OS requires a different type of storyboard than iOS. Also,
the Info.plist file differ since the tvOS platform doesn't handle
different orientations.
The Apple TV OS also need a different set of icons with different
resolutions more suitable for TV screens.
The application icons are required to be of layered type, which means
that a single PNG file is not accepted as an icon file. The icons must
have at least two layers, hence the ScummVM icon is defined by a back
image with just the background color and a front image with the ScummVM
logo.
The icons are then put together when archiving the application in Xcode
to an Assets.car file. However the linux builds are not building the
application using Xcode. Therefore a pre-compiled Assets.car file
containing the image assets (icons, splash screen etc) is added to the
tvos folder. This file is copied to the application bundle. If the icons
are changed in the future a new Assets.car file has to be compiled. This
can only be done on a computer with Xcode installed. To compile run the
following command in the tvos folder:
xcrun actool ./Images.xcassets --compile build --platform appletvos \
--minimum-deployment-target 9.0 --app-icon AppIcon \
--output-partial-info-plist build/partial.plist \
--launch-image LaunchImage
The partial.plist file generated will show what to add to the Info.plist
and if something must be changed in the ports.mk section for the
tvosbundle.