Files
wx_wherigo/libs/wxWidgets-3.3.1/utils/wxrc/GenerateBigXRCFile.sh
2026-02-14 09:47:24 +01:00

45 lines
1.6 KiB
Bash
Executable File

#!/bin/bash
# Usage example:
#
# The following command line:
# './GenerateBigXRCFile.sh' 2000 >'MyInputFileReferencingManyResources.xrc'
# will generate an XRC file referencing 2000 small PNG images.
#
# Compiling this XRC file using `wxrc` and further compiling the generated C++ source code
# can help us tune our code and avoid slow C++ compilation process
# (when thousands of input resource files have been given as input).
function GenerateExampleImages
{
set -e -o pipefail
local folder_images='ExampleImages'
mkdir -p "${folder_images}/"
local i
local n="${1:-10000}"
printf '<?xml version="1.0" encoding="UTF-8"?>\n'
printf '<resource xmlns="http://www.wxwidgets.org/wxxrc" version="2.5.3.0">\n'
for ((i = 0; i < n; ++i)); do
local pathname_image; printf -v pathname_image "%s/Example_%04Xh.png" "${folder_images}" "$((i))"
rm -f "${pathname_image}"
printf >>"${pathname_image}" \
'%s' \
"\x89\x50\x4E\x47\x0D\x0A\x1A\x0A\x00\x00\x00\x0D\x49\x48\x44\x52" \
"\x00\x00\x00\x10\x00\x00\x00\x10\x08\x02\x00\x00\x00\x90\x91\x68" \
"\x36\x00\x00\x00\x09\x70\x48\x59\x73\x00\x00\x0E\xC4\x00\x00\x0E" \
"\xC4\x01\x95\x2B\x0E\x1B\x00\x00\x00\x1A\x49\x44\x41\x54\x28\xCF" \
"\x63\x6C\x60\xF8\xCF\x40\x0A\x60\x62\x20\x11\x8C\x6A\x18\xD5\x30" \
"\x74\x34\x00\x00\xC5\xBF\x01\x9F\x22\x91\xFF\xBD\x00\x00\x00\x00"
"\x49\x45\x4E\x44\xAE\x42\x60\x82"
printf ' <object class="wxBitmap" name="Cat_%04Xh">%s</object>\n' "$((i))" "${pathname_image}"
done
printf '</resource>\n'
}
GenerateExampleImages "$@"